「テスト技法を知ろう」 ~同値分割と境界値分析の練習~ / 九州ソフトウェアテスト勉強会 Vol.30に参加しました #q_te

「テスト技法を知ろう」 ~同値分割と境界値分析の練習~ / 九州ソフトウェアテスト勉強会 Vol.30に参加しました #q_te
2019/10/01

先日、九州ソフトウェアテスト勉強会 Vol.30に参加してきました。

概要

会場:株式会社 Fusic
日時:2019/09/25(水) 19:00 〜 21:00

内容

JSTQBの紹介

  • 次のFLの試験から新シラバス(2019年3月に公開)になるよ!
  • シラバスを解説した「ソフトウェアテスト教科書 JSTQB Foundation 第4版」はわかりやすいのでお勧めだよ!
  • 2月のALは「テストアナリスト」が受験できます
    • ALの中のテクニカルアナリストはまだ試験はやってないです (by リナさん)

テスト技法の紹介

  • 仕様ベース
  • 構造ベース
  • 経験ベース
    • このなかでも細分化されてていろんな技法がある
      仕様ベースのテスト技法
      テスト設計技法を活用するより引用
    • 九州ソフトウェアテスト勉強会の枠で、今後仕様ベースのテスト技法の勉強会をもっとやっていきたいなーと思っている(わーい)
  • テスト技法については、開発現場で役立つテスト「超」実践講座 (井芹 洋輝さん)がおすすめ。一読すべき。

同値分割について

  • 1〜9まで入力可能なformにおける、テストが必要な値のグループ分け
    • 例えば以下のように上げることがある
      • 2グループに分ける:有効な値と、それ以外
      • 3グループに分ける:無効な値(入力可能より小さい)、有効な値、無効な値(大きい)
      • 4グループに分ける:3グループに加えて数字以外
      • このなかで、同値分割!といわれると、3グループに分けるのが一般的(正解というわけではない)
  • テストしたい内容に着目して同値パーティションの分け方は変わってくる
    • 個数のバリデーションを確認したいなら3つ
    • 入力した個数により金額が変わることを確認したいなら4つ など
  • 何のテストが必要なのか?は、engineerの実装次第なところもある
    • 開発者とのコミュニケーション大事

境界値分析について

  • 同値分割したパーティションの、はじっこを狙ってテストする方法
    • 同値分割はテストを合理的に減らすためのもの
    • 境界値分析はバグを狙いに行く技法
  • プログラムは境界値に着目して実装されていることが多い
  • 以上,を超える,以下,未満…勘違いしやすいし、1文字の入力ミスが全然違う結果を生み出したりする

練習問題

パスワードは、アルファベットの大文字・小文字と数値のみを入力可能とする。また、パスワードの文字数は5~30文字とする。この時のパスワードのテストデータを作成しなさい。

ソフトウェアテスト技法ドリル―テスト設計の考え方と実際/秋山浩一著 P.23より
  • 数値は数値の境界値を出せばいい
  • 入力可能文字数も入力可能文字数の境界値を出せばいい
  • アルファベットや記号など”文字”の境界値って…?

グルーピングした結果

※制御文字は入力できないため除外する

~ /0~ 9: ~ @A ~ Z[ ~ `a ~ z{ ~
  • もちろん端っこが境界値になる!

まとめ

  • 同値分割はテストに応じて着眼点を変える。必要に応じてズームイン、ズームアウト
    • 文字の境界値分析!
      • 数字と数字以外で分ける
        • 英字、記号、全角文字の観点も含む
          • 英字も大文字小文字で分けてみる・・・えとせとらえとせとら
            • やりたいテストに応じて分け方を変える
  • 技法だけにとらわれる必要はない!

感想

やりたいテストによって技法を選択するの大事。
・効率よくテストケースを減らすなら同値分割
・バグを狙い撃ちするなら境界値分析

同値分割/境界値分析については、Tohokuに参加したこともあり、理解しているつもりだったが、
文字の同値分割!と言われてビビってしまった。

普段はアルファベット大文字、小文字、記号……くらいのざっくりした分け方しかしないが、
考え方の一つとして理解しておきたいところ。

とはいえ文字コードを意識したテスト設計をしても実装方法によっては過不足が出ることがあるので、
開発者とコミュニケーション取るのはめっちゃ大事!

リナさんが言ってた「福田の呪文」的な、入力欄のtestって言われたらとりあえず入力してみる!みたいなtest dataがあると便利そう。

文字のテストデータ「aaaaaa」「11111」みたいなのを使いがちだけど、それっぽい値や、混在させた値など、ちゃんと考えて使いたいところ。
→たとえば秋山さんの本に載っている「BbCcDdEeFfGgHhIiJjKkL1NnO23456~」みたいな、ただ連続して羅列するんじゃないデータ

参考

勉強会の中で出てきたイベントや、資料のリンクなど。
九州ソフトウェアテスト勉強会の勉強会 Vol.30「テスト技法を知ろう」
開発現場で役立つテスト「超」実践講座
4th 長崎 Software Quality and Development Gathering
JSTQB認定テスト技術者資格-シラバス(学習事項)・用語集
アスター標準テキスト/ASTER-ASTER 技術セミナー

次回イベントの紹介

【福岡開催】「テスト」の話を聞いてみようの会
※九州ソフトウェアテスト勉強会の勉強会ではないけど、@yoshitake さんが登壇するよ!