テストのベストプラクティスに従う
学習の目的
この単元を完了すると、次のことができるようになります。
- ソフトウェア開発ライフサイクルにおけるテストの位置付けを説明する。
- テストが継続的なプロセスである理由を説明する。
- テストに関する考慮事項を挙げる。
テストを行うタイミング
テストの概要とテストが必要な理由がわかりました。次は、テストを行うタイミングについて学習します。テストはソフトウェア開発ライフサイクル (SDLC) の中で行われます。SDLC は、ソフトウェアプロジェクトの初期計画からメンテナンスまで、そのアクティビティを網羅したフレームワークです。
大半のソフトウェア開発チームは、開発フェーズとリリースフェーズの間にテストを実施します。ソフトウェア業界では、ソフトウェア開発の早い段階でテストが行われるようになっており、「テストの前倒し」と呼ばれています。前倒しによってお客様に提供する商品が向上します。
継続的なプロセスの一部にする
高品質の商品に許容されるリスクレベルに達するまで、テストを実施して問題を解決します。品質をどこまで追求するかは人それぞれ異なります。テストを続けるかどうかは、時間や予算にも左右されます。テストをいつ完了とするかを終了条件といいます。終了条件は、どの程度テストすれば十分か、いつの時点でテストの完了を宣言できるかを定義します。
あなたがテストを止めたからといって、お客様もそれ以上テストしないわけではありません。ユーザー側でテストが実施され、バグや欠陥が発見された場合にはサポートチームに報告されることが望まれます。
テストに関するその他の考慮事項
テストの計画やプロセスを作成するときは、次の点を考慮します。
- 受け入れ条件: 受け入れ条件は、お客様やユーザーに受け入れられるためにソフトウェアが満たさなければならない条件です。この条件はユーザーエクスペリエンスにおける商品の動作を定義し、こうした動作がユーザーストーリーに記録されます。受け入れ条件を満たすために、「この商品のビジネス用途は何か?」「お客様はこのアプリケーションを使用して、どのような課題を解決しようとしているか?」といった点を自問します。
-
トリアージ/リスク評価: テスト時にトリアージ/リスク評価を行うことが重要です。これは、商品の最大の欠陥やリスクに優先順位を付けるためのプロセスです。この評価を実施する最適な方法の 1 つが、協力してリスクを特定する RiskStorming という視覚的なアクティビティに取り組むことです。
- リスク評価を行うもう 1 つの方法は、テスト主導型開発 (TDD) を実施することです。このプロセスでは、まず失敗させるテストを記述し、次にテストに合格するために必要最小限のコードを記述します。このやり方で不具合を早期に発見し、テスト可能なコードを生成します。
- 使いやすさ: テスト時に、ソフトウェアを使用しているユーザーがどこで時間を費やすことが一番多いか検討します。どのようなユーザーエラーが発生する可能性があり、そのエラーの重大度はどのくらいか、商品が使いやすく、使用目的に合っているかを評価します。
テストの心理学
エラーなど見つかるはずがないと決めてかからないようにします。正当で予想されるエラーだけでなく、正当性のない予期せぬエラーがないかテストします。一例として、メールのログインページを正しいユーザー名とパスワードでテストします。これは正当な予想される動作です。他方、間違ったユーザー名とパスワードでも忘れずにテストします。これは正当性のない予期せぬ動作で、ネガティブテストと呼ばれることがあります。
まとめ
このモジュールでは、品質の概要と、テストを実施して高品質のソフトウェアを実現する方法について学びました。テストが高額になることもありますが、ユーザーがソフトウェアやサービスに満足し、繰り返し使用してもらうためにはテストが不可欠です。最終的には、品質によってお客様との関係が育まれます。ですから、継続的にテストを実施します!