|
テストから見えてくる グーグルのソフトウェア開発 ジェームズ・ウィテカー |
Software Engineer(SWE)
これまでのエンジニアと同様に、顧客に提供するための製品のコードを書く役割。ドキュメント、データ構造、アーキテクチャなどもこの役割が担当する。と同時に、品質の責任も負う。
Softweare Engineer in Test(SET)
テストのしやすさ(Testability)にフォーカスした役割。デザインレビューをし、品質やリスクをチェック。コードをテストしやすいようにリファクタリングする。ユニットテストや、テストフレームワーク、自動テストも書く。
Test Engineer(TE)
TEはSETとは逆の立場で、テストが最優先、開発は2番目と考える役割。ユーザーとして振る舞い、利用シナリオを考え、自動テストのスクリプトを書く。SWEやSETのテストへの取り組みを促進するようにし、結果を分かりやすく伝える。
最初の設計段階から品質が組込まれていなければ、製品は決してまともなものにはならない。
自動車のリコール後に品質を付け加えるのがいかに高くつくか。
品質はテストできないが、テストをしなければ品質の高いものを開発することができない。
SETはSWEが作った機能をテストするためのコードを書く
TEは全体的な品質チェックを組織し、テスト結果を解釈し、テストの実行を指揮してE2E自動化を書く
コード、統合、システムテストという区別をせず、Sテスト、Mテスト、Lテストという表現を使う
Sテスト:このコードは、するはずのことをしているか。データ破壊、エラー条件、off-by-oneエラー
Mテスト:最近傍関数は設計通りに相互作用しているか。
Lテスト:ユーザーが予期している通りに動作し、適切な結果を生成するか。
テストサーティファイドレベル
レベル1:テストカバレッジ、継続的ビルド、テストをSMLで分類、非決定論的テストを見極める、スモークテストスイート
レベル2:赤のリリースがない、スモークテストスイート合格をサブミットの条件、Sインクリカバレッジ10↑、一部統合テスト
レベル3:テスト必須、Sインクリカバレッジ50↑、統合テスト
レベル4:スモークテスト自動実行、スモークテストが30分以内、非決定論的テストがない、カバレッジ40↑
レベル5:バグフィックスのたびにテストを追加、利用できる分析ツール、カバレッジ60↑