この記事について
ソフトウェア開発のテスト講座を受講した感想です。
講座の概要
開発を加速するためのテスト講座
〜アジャイル開発にも適用できるシフトレフトなアプローチ〜
開催日:2022年11月09日
講師は『Agile Testing Condensed』や『The BDD Books - Discovery』の翻訳者であるブロッコリーさんでした。
本は買ったけどまだ読めてないです
受講した目的
- 開発での不安 => 速くて信頼できるテストが必要
- テストについての知識を深めたい
講座での学び
テストの目的は?
改まって聞かれると「バグを検出する」とか「品質を測るため」くらいしか考えていなかったのですが、リリース可否などの「意思決定にため」や「欠陥の作り込み防止」も目的に含まれていました。
(同時にテスト技術者資格制度 Foundation Level シラバスなるもの存在を知りました)
テストを改善するにあたって、そもそもの目的を把握しておくのは大切ですね。
顧客へ価値を提供するためのテスト
パスワード認証のテストを考えたとき、私は「文字数の境界値テスト」や「異常値テスト」「極端値テスト」などを挙げていました。
(この視点は『セキュア・バイ・デザイン』の影響が大きい)
もちろんこうした機能に注目したテストも必要ではありますが、「顧客に価値を提供する」という視点も大切であると再認識しました。
ではパスワード認証がどんな価値を提供するのかというと、ユーザのアカウントや情報を守るものだと思います。となると「ユーザのアカウントや情報を守れているか」という視点でのテストが考えられそうです。
(『セキュア・バイ・デザイン』にも心配事(concern)という観点があったんですがね・・・)
テストはフェーズではなくアクティビティ
ワークでテストについて考えていると設計や要件定義に立ち返っているような事があり、テストが「工程(フェーズ)」よりもずっと近くにある感覚がありました。
これはTDDをやってる時と同じような感覚です。
テストという活動を通して洗練させていくイメージが得られました。
何をテストするか
バグの不在は証明できないので「十分に動いていることを証明できて、かつ最小のテストケース」を考える必要があります。
そのために「何をテストするか」や「なぜそのテストなのか」が大切になります。
"テストコードには What"
協力する
今回初めて「Three Amigos」という言葉を聞きました。
POと開発者、そしてQAの3者がそれぞれの視点から協力して要件を確認するということですが、特に「責任分担している訳ではない」という点が重要になりそうです。
個人のマインドはもちろん、組織体制や仕組みなどと一緒に実現していくことが大切だと思います。
まとめ
- テストの目的を知ろう
- 「顧客へ価値を提供できているか」に注目したテストもしよう
- テストをフェーズとして独立させず、あらゆるところで考えよう
- テスト分析やテスト設計で効果的なテストをしよう
- QAを含めた関係者と協力しよう
講座の内容は、講話を踏まえたワークを交えたもので、実際に体験できる点が素晴らしいと思いました。インプットも大切ですが、アウトプットしてフィードバックを得ることの大切さが実感できます。
テストを学ぶことのモチベーションがより上がったので、受講して良かったです。
謝辞
講師のブロッコリーさん、運営の皆様、一緒にワークショップをしたチームの皆様ありがとうございました。