「回帰テスト」の版間の差分

削除された内容 追加された内容
ページ「Regression testing」の翻訳により作成
 
m編集の要約なし
5行目:
ソフトウェアが更新または変更されたり、変更されたターゲットで再利用されたりすると、新しい障害の発生や古い障害の再発生が非常に一般的です。不十分な[[リビジョン管理]]手法(またはリビジョン管理における単純な[[ヒューマンエラー|人為的エラー]])によって修正が失われるために、再出現が発生することがある。多くの場合、問題の修正は「[[脆弱]]」であり、最初に観察された狭いケースでは問題が修正されるが、ソフトウェアの存続期間中に発生する可能性のあるより一般的なケースでは修正されない。多くの場合、ある領域の問題を修正すると、別の領域で[[バグ|ソフトウェアのバグ]]が発生する。最後に、一部の機能が再設計されると、その機能の元の実装で行われたのと同じ間違いのいくつかが再設計で行われる場合がある。
 
そのため、ほとんどのソフトウェア開発の状況では、コーディングのネストプラクティスとして、バグの修正を行ったら、バグを再現させたテストを実行して、さらにプログラムに以降の変更を行ったときに定期的にプログラムへの同じテストを再実行することが挙げられている<ref name="kolawa">{{Cite book|last=Kolawa|first=Adam|last2=Huizinga, Dorota|title=Automated Defect Prevention: Best Practices in Software Management|url=http://www.wiley.com/WileyCDA/WileyTitle/productCd-0470042125.html|year=2007|publisher=Wiley-IEEE Computer Society Press|page=73|isbn=978-0-470-04212-0}}</ref>。 これは、プログラミング手法を使用した[[手動テスト]]手順で実行できるが、多くの場合、[[テスト自動化|自動テスト]]ツールを使用して実行される<ref>[http://safari.oreilly.com/0201794292/ch08lev1sec4 Automate Regression Tests When Feasible], Automated Testing: Selected Best Practices, Elfriede Dustin, Safari Books Online</ref>。 このようなテストスイートには、テスト環境ですべての回帰[[テストケース|テストケースを]]自動的に実行できるようにするソフトウェアツールが含まれる。一部のプロジェクトでは、自動システムをセットアップして、指定された間隔ですべての回帰テストを再実行し、障害を報告する(これは回帰または古いテストを意味する可能性がある)<ref>{{Cite web|url=http://www.drdobbs.com/tools/change-code-without-fear/206105233|title=Change Code Without Fear: Utilize a Regression Safety Net|author=daVeiga|first=Nada|website=[[Dr. Dobb's Journal]]|date=2008-02-06|accessdate=2020-12-21}}</ref>。 一般的な戦略は、コンパイルが成功するたびに(小さなプロジェクトの場合)、毎晩、または週に1回、このようなシステムを実行することである。これらの戦略は、外部ツールによって自動化できる。
 
回帰テストは、[[エクストリーム・プログラミング|エクストリームプログラミング]]ソフトウェア開発手法の不可欠な部分です。この方法では、設計ドキュメントは、[[ソフトウェア開発工程|ソフトウェア開発プロセス]]の各段階を通じて、ソフトウェアパッケージ全体の広範囲にわたる反復可能な自動テストに置き換えられます。回帰テストは、機能テストが終了した後に実行され、他の機能が機能していることを確認する。
39行目:
 
== 用途 ==
回帰テストは、プログラムの''[[正当性 (計算機科学)|正当性]]''をテストするためだけでなく、多くの場合、その出力の品質を追跡するためにも使用できます。 <ref>{{Cite web|url=http://www.wrox.com/WileyCDA/Section/id-291252.html|title=Regression Testing, Programmer to Programmer|author=Kolawa|first=Adam|authorlink=Adam Kolawa|website=Wrox|accessdate=2020-12-21}}</ref>たとえば、[[コンパイラ]]の設計では、回帰テストでコードサイズと、テストスイートのケースをコンパイルして実行するのにかかる時間を追跡できます。
 
回帰テストは、広義に分類することができる[[機能テスト]]または[[単体テスト]]。機能テストは、さまざまな入力を使用してプログラム全体を実行します。単体テストは、個々の関数、[[サブルーチン]]、またはオブジェクトメソッドを実行します。機能テストツールと単体テストツールはどちらも自動化される傾向があり、多くの場合、コンパイラスイートの一部ではないサードパーティ製品です。機能テストは、スクリプト化された一連のプログラム入力である場合があり、マウスの動きとクリックを制御するための自動化されたメカニズムが含まれる場合もあります。単体テストは、コード自体内の個別の関数のセット、またはテスト対象のコードを変更せずにコードにリンクするドライバーレイヤーの場合があります。
56行目:
* [http://msdn.microsoft.com/en-us/library/aa292167(VS.71).aspx Microsoft回帰テストの推奨事項]
* [http://smartbear.com/products/qa-tools/what-is-regression-testing/ ScottBarberとTomHuston]による[http://smartbear.com/products/qa-tools/what-is-regression-testing/ 回帰テストとは何ですか]
 
{{デフォルトソート:かいきてすと}}
[[Category:エクストリーム・プログラミング]]
[[Category:ソフトウェアテスティング]]