Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Concolic Testing用途紹介(回帰テストの場合)

3 439 vues

Publié le

SQiP2014, SIG

Publié dans : Technologie
  • Login to see the comments

Concolic Testing用途紹介(回帰テストの場合)

  1. 1. Concolic Tes+ngの用途紹介 【回帰テストの場合】 ソフトウェア品質シンポジウム2014 SIG12 “Let’s Concolic Tes+ng!” 2014/9/11 @東洋大学 Concolic Tes+ng研究会  井芹 洋輝 1
  2. 2. この資料について • SIGの構成 1. Concolic Tes+ngの概要説明 2. 活用事例の説明 3. Concolic Tes+ngの体験 4. ディスカッション • ここではオープンソースツールCRESTを使用す る場合での、Concolic Tes+ngの用途の事例を 紹介します 2 この資料の対象
  3. 3. 対象とする事例 • Concolic Tes+ngの歴史は古く、様々な活用方 法が提案されています。 • 今回は最もとっかかりやすいと考えられる、 回帰テストを用途とした事例を紹介します – (1)変更前のコードをテストオラクルに活用 – (2)既存コードから仕様やテストケースを抽出 3
  4. 4. 用途(1)変更前のコードを テストオラクルに活用 • 用途 – MC/DC 100%網羅の回帰テストを自動生成する • 手順の例 – 1:変更前のコードに対し、入力値のパターンを concolic testで抽出 – 2:変更後のコードに対し、入力値のパターンを concolic testで抽出 – 3:前述の1,2で抽出した入力値のパターンで、変 更前と変更後の実行結果を比較。変化していな いことを確認する 4
  5. 5. 用途(2) 変更前のコードから テストケースを抽出 • 用途 – 分岐構造を観点とした仕様やテスト条件の分析 を支援する • 手順 – 1:既存のコードやDSLに対してConcolic Testを実 行。入力値と実行結果のセットを取得 – 2:入力値と実行結果を元に、以下を行う • 該当する仕様のリバースを行う • テストの入力と期待値に展開する 5
  6. 6. 用途(2)のCRESTでの例 • 0. 前準備:変更前コードにCRESTおよび解析 用コードを挿入 解析対象変数を指定のAPIで指定する 6 生成された値の記録手段を追加(今回はわかりやすい暫定手段を実施)
  7. 7. 用途(2)のCRESTでの例 • 0. 前準備:変更前コードにCRESTおよび解析 用コードを挿入 出力値の記録手段を追加(今回はわかりやすい暫定手段を実施) 7
  8. 8. 用途(2)のCRESTでの例 • 1. CRESTで解析・実行。コードの入出力につい て値を取得する 8
  9. 9. 用途(2)のCRESTでの例 • 2. 仕様をリバースしながら、CRESTで得られた 入力をテストの入力に、出力をテストの期待 値に展開する 9
  10. 10. CRESTでの課題 • テスト設計〜テスト実施の完全自動化は可能 だが、独力のサポートが必要 – 世の中の話として、十分に自動化したツールは高 級なテストツールに限定される – CRESTの場合、型や構文解析の仕組みが要求さ れる 10
  11. 11. CRESTでの課題 • ツールの未対応部分のサポートが必要 – 分岐のみの構造ベースの解析しか行わない ループカバレッジや、文字列の同値分割など扱え ない – 解析対象の特定に手間がいる • ファイルをまたぐコードは、CILのマージ作業が必要 • ファイル内の対象外コンポーネントはTest Double化が 必要 – 割り込みなど、並行処理に対応できない • 設計の工夫による並行処理の影響範囲の局所化と いった、間接的な対策が必要となる 11

×