HOME > 活動報告 > イベント報告 > JaSST'18 Tohoku

イベント報告
 ソフトウェアテストシンポジウム 2018 東北

2018年5月25日(金) 於 仙台市中小企業活性化センター

ソフトウェアテストシンポジウム 2018 東北

JaSST'18 Tohokuは今年で6回目となる。募集から約10日間で参加枠が全て埋まってしまうという盛況ぶりであった。今回は1日を通して『HAYST法』について学ぶためのシンポジウムである。午前中は座学、午後は6時間におよぶワークショップであったことも特筆すべきことであろう。

S1)基調講演
「HAYST法によるテスト設計の考え方 因子・水準の抽出法まで」
秋山 浩一氏(富士ゼロックス)

基調講演は秋山氏によるHAYST法についての概要、各種用語、具体的なステップの解説が行われた。
以下、講演内容のポイントを記載する。

組み合わせテストについて

組み合わせテストのステップは以下である。

  1. 組み合わせる条件を決定する
  2. 組み合わせ表を作成してテストを実施する
  3. テスト結果を分析する

組み合わせテストについて3.のテスト結果分析までがステップに含まれていることに注意したい。

HAYST法が取り扱うもの/取り扱わないもの

HAYST法は全てを取り扱うわけではなく、取り扱うもの、取り扱わないものがある。
取り扱うものの代表として「アジャイル」がある。アジャイルはユーザーストーリーごとの組み合わせテストとナラティブフロー(ユーザーストーリーの順序)の組み合わせの2段で実施すると良い。
取り扱わないものの代表として「内部構造」が挙げられる。外部構造のテストが通ることを前提として、開発者がいつでも自由に内部構造を変更することを許容している。

ソフトウェア開発/テストを妨げる五悪とHAYST法による対策

開発を妨げる負のループが存在する。そのループに対してHAYST法による対策を示す。

  1. コード、テストの大規模・複雑化
    6W2Hで全体を把握、FV表でテスト対象を小さくしてから直交表で組み合わせを行う
  2. 変化を予測しない、できない
    3W(後述)および直交表で保証範囲内での限界部分を狙う
  3. ソースコードを読まない、読めない
    ラルフチャートを用いてモデル化
  4. テスト戦略なし、テストアーキテクチャなし
    D-Caseでテスト戦略、全体構造の合意を取る
  5. 個人、組織でノウハウを蓄積、活用しない
    FL表でノウハウを蓄積する
HAYST法のプロセス

HAYST法のプロセスは以下である。

  1. テスト戦略(D-Case)
  2. テスト要求分析(6W2H、ユーザーストーリー、FV表)
  3. テスト設計(ラルフチャート、FL表)
  4. テスト実装(HAYST法ツール、XGRAPHツール)
  5. テスト実行
  6. テスト結果分析(ラルフチャート分析)
6W2H

6W2Hはテスト対象、テストに対する要求の理解を行うために実施する。
以下3つの視座で対象の分解を行う。

  • 開発者(Why/What/How to)
  • ユーザー(When/Where/Who)
  • お客様のお客様(Whom/How much)

HAYST法での使用シーンとしては以下である。

  • When / Where / Who:ユーザーのコンテキスト作成に使用
  • Whom / How much : ユーザーストーリーの理由に使用
  • What : ユーザーストーリーとFV表に使用
  • How to:FV表、ラルフチャートに使用
3W

3WはWhen/Where/Whoを指す。
目的は3Wを通してユーザーストーリー、FV表を作成することである。
3Wでユーザーのコンテキストを作成するが、この時は直交表で機械的に組み合わせを行う。
直交表ができたら、その横一列がユーザーストーリーとなる。

FV表(Function Verification Table)

大きなテスト対象を適切に分割する、つまり目的機能単位で因子を洗い出して明確化することがFV表の目的である。
目的機能(仕様に書かれていないあるべき姿)やユーザーストーリーについて、仕様番号、検証内容、テスト技法を紐づけて整理した表である。

ラルフチャート

目的機能の理解、因子水準の洗い出しを行うことが目的である。
FV表の1行を以下に分類することで、テスト条件の抜け漏れを発見しやすくする。

  • 入力:ユーザーが行う操作
  • 出力:目的機能の動作結果
  • Read(状態変数):DBの値や、仕様にある動作環境等
  • Write(状態変数):機能が動作するにあたって内部に書き込むもの
  • ノイズ:入出力の関係を妨げる要因
  • アクティブノイズ:悪意を持った操作等
FL表(Factor Level Table)

組み合わせテスト技法を使用する項目について、因子・水準を確定することが目的である。
FL表には水準を選んだ意図を記載すると良い。
今後の保守の際、意図の記載があることで水準の削除判断等が容易となる。
また、組み合わせテストに異常値を含めないことにも注意する必要がある。

筆者感想

HAYST法の概要やステップがわかりやすくまとまっており、初めてHAYST法に触れる人でもどのようにHAYST法を用いたテスト設計を進めていけばよいか流れがわかるわかりやすい講義であった。また、それぞれのステップに対して行う理由が説明されていたため、なぜそういったステップを踏む必要があるのか腹落ちした状態で次のワークショップへと臨むことができた。

S3)HAYST法のワークショップ
JaSST'18 Tohoku実行委員会

午後からは6時間に渡るHAYST法のワークショップが行われた。
ワークショップは以下の順で実施された。なおワークショップ内容はJaSST'18 Tohoku版であり、これまで販売されている書籍とは異なる部分が存在している。

  1. 6W2H作成ワークショップ
  2. ユーザーストーリー作成ワークショップ
  3. FV表作成ワークショップ
  4. ラルフチャート作成ワークショップ

ワークショップでのテスト対象となったものは「キッズ携帯」であった。
ワークショップ課題の「キッズ携帯」の仕様は、子ども用の最低限の機能が付いた形態で、防犯ブザーの機能がついた携帯電話である。

6W2H作成ワークショップ

6W2H作成ワークショップでは、3WおよびWhomの導出、因子水準表への機械的な割り付けを行った。
流れは以下であった。

  1. Whenを個人で導出する
  2. 個人で出したWhenを3つ選択する。その際1つは標準としての内容、他2つが保証範囲内の限界値としての内容である
  3. Whenの個人ワーク終了ののちグループと共有し、ワークショップ手法自体の認識合わせを行う
  4. 続いて、Where/Who/Whomを個人で出す
  5. 個人ワーク後、グループにてWhere/Who/Whomをまとめる
  6. まとめた後、グループで出た内容を直交表に機械的に割り付けを行う

筆者グループの直交表の一部を以下に示す

  • 12月(When) / 山(Where) / 小学生(Who)
ユーザーストーリー作成ワークショップ

直交表の1行を選択し、そこからユーザーストーリーの作成を行った。
作成の際はフォーマットがあり、それに合わせる形で内容を考えた。

  • 「ユーザー(When/Where/Who)」として
  • 「ゴール(What)」を達成したい。それは
  • 「理由(Whom)」ためだ

筆者グループの例を記載する。

  • 「冬休みに家族でスキー場に行き、コースアウトした小学生」として
  • 「通話で現在地を伝える」を達成したい。それは
  • 「親に救助されたい」ためだ
FV表作成ワークショップ

FV表作成ワークショップでは、ユーザーストーリーから検証内容についての意見をグループで出し合った。併せて検証内容を確認するためのテスト技法についても記載を行った。

筆者グループの内容を一部記載する。

  • 検証内容
    • 温度
    • 電波
    • 手袋をつけていてもボタンが押せるか
  • テスト技法
    • 負荷テスト
    • 組み合わせテスト
    • ユーザビリティテスト
ラルフチャート作成ワークショップ

FV表の1行を中心に置き、左に「入力」、右に「出力」、上に「ノイズ」「アクティブノイズ」、下に「Read」「Write」の項目を置きラルフチャートを作成した。
情報の整理、因子の洗い出しが目的である。分類後に再度確認を行い因子の抜けを発見するのがよい。
筆者グループの内容を一部記載する。

  • 入力
    • 電話番号を選択
    • ボタン押下で発信ができる
  • 出力
    • 通話ができる
    • 画面表示(選択した相手であること)
  • Read
    • 電話帳
  • Write
    • なし
  • ノイズ
    • 電波状況
    • 空の明るさ
    • 天候
  • アクティブノイズ
    • 決定ボタン連打

筆者感想

午前の秋山氏の講演で得た知識を、一つずつ確認しながら実践していく形のワークショップであった。HAYST法は難しいテスト設計技法であると思うが、非常にわかりやすく、各ステップを理解と納得をしながら一歩ずつ進めることができた。グループでステップの理解に悩む瞬間もあったが、ファシリテーターからのヒントによって、自分たちで答えを導き出すことができた。HAYST法の理解の助けとなったのはファシリテーターの適切な誘導あったからこそと言っても過言ではない。参加者が技法を理解をするためにはどうしたら良いかが追及された、他所では真似することができない素晴らしいワークショップであった。

まとめ

JaSST Tohokuのワークショップは毎回完成度が高く、今回も参加枠が時をおかずして埋まってしまったことが頷ける素晴らしいワークショップとなっていた。
HAYST法の難しいワークショップであったが、JaSST'18 Tohoku実行委員全員の成熟度が高くスムーズなファシリテートであったためワークショップ進行で困ることがなかった。
それにより参加者はHAYST法の習得に集中でき、かつ不明点は実行委員の説明により明確にすることができ非常に満足度が高いワークショップであった。

記:松谷 峰生 (JaSST Kyushu 実行委員会)

[ページトップへ]