今回は、テスト設計技法の代表格である「同値分割法」をテーマにお届けします。
「なんとなく」でテスト値を選んでいませんか?「なぜその値を選んだのか」を論理的に説明できることは、QAエンジニアにとって非常に重要なスキルです。47都道府県のプルダウンを例に、目的やリスクに応じた5つのアプローチを紹介しながら、現場で役立つ思考プロセスを整理していきます。
📌 今回のエピソードのポイント
- 同値分割法の定義とメリット
- 都道府県のテストで「沖縄県」や「神奈川県」を選ぶそれぞれの理由
- テストケース作成時に欠かせない「理由を言語化する」ことの大切さ
- 5つの回答例(スクロール、印刷反映、文字数、地域、コードの構造)
- リスナーからの感想紹介:QAとAIが共創する「建設的相互作用」の可能性
📕 参考文献
🕒 チャプター
- () オープニング
- () 同値分割法とは何か?
- () 例題:都道府県の項目、何個テストする?
- () 同値分割の手順と「理由」の重要性
- () 5つの回答例:スクロールや配列エラー、出力結果、文字数、地域、全件テストの使い分け
- () 感想ポスト紹介:QAとAIのシナジーと仮説検証
- () エンディング
📢 あなたのご意見をお聞かせください
皆さんは「都道府県」の項目をテストするとき、いつもどのような狙いで値を選んでいますか?「自分ならこう分ける!」というこだわりや、今回紹介した手法への感想など、ぜひお聞かせください。
X(旧Twitter):ハッシュタグ #b_testing でのポストをお待ちしています。
お便りフォーム:こちらからお気軽にどうぞ。
フォローのお願い:最新回を逃さないよう、Podcastアプリでのフォローをぜひお願いします!
感想
まだ感想はありません。最初の1件を書きましょう!
サマリー
今回のエピソードでは、テスト設計技法の基本である「同値分割法」について、都道府県のプルダウン選択を例に解説します。同値分割法とは、欠陥が同じように処理される値をグループ化し、代表値を選んでテストする手法です。単に値を選ぶだけでなく、「なぜその値を選んだのか」という理由を言語化することの重要性を強調し、スクロール、配列エラー、出力結果、文字数、地域、全件テストといった5つの異なるアプローチを紹介します。また、リスナーからの感想として、QAとAIが協働して仮説検証を進める「建設的相互作用」の可能性についても触れています。
オープニングとテスト設計技法への導入
皆さん、こんにちは。B-Testingのブロッコリーです。このB-Testing.fmは、QAエンジニアである私、ブロッコリーが、テストや品質に対する私なりの考えを、約10分間で語っていくポッドキャスト番組です。
今回からですね、ビデオをもう一回オンにしてみます。どうですかね。
ビデオオンは多分1回目以来ですね。1回目でビデオをオンにしてからは、ずっと主に音声でやってみましたが、とりあえずオンにしてみようかなという感じです。
とはいえ、本編では主にスライドを使って、またスライド中心で喋っていきます。
もしかしたら右下にポンと顔が出ているかもしれませんが、主にスライドの中心ですし、できるだけ音声だけでもわかるようにスライドに書いてあることとかも引き続き読みながらいろいろと説明していければなと思っています。
今回はついにテスト設計技法の中身に入っていきます。同値分割法について触れていきたいと思います。
ということで今回もbtesting.fmスタートです。
今日はテスト設計技法のうちの一つの同値分割法についてしゃべっていきたいと思います。
同値分割法の定義と特徴
まず同値分割っていうのは何かっていうところから考えていきます。
同値分割っていうのは見つけたい欠陥、バグとかについて、同じように処理される値同士を同値とみなしてグループ分け、同時パーテーションを作っていくっていうことですね。
要は同じようなグループをグループ分けしていくということが同時分割になります。
この特徴としては例えばある値を入力してそこでバグ、欠陥が見つかったとすると、
同じグループに属する他の値を入力しても同じ欠陥が出てくるはずだろうという仮定に立っていますし、
もしもそこで入力して欠陥が見つからなかったとしたら、
同じグループに属する他の値も入力しても欠陥が見つからないはずという前提においてグループ分けをしています。
このグループ分けの仕方としては入力値だけではなくて出力結果や状態などにも適用が可能になってきます。
いろいろ難しい言い方をしたかもしれませんが、あるいは同じような意味合いのものをグルーピング分けするというのが同時分割になっていきます。
例題:都道府県のテストと理由の重要性
一つ例題を持ってきます。何個の選択肢をテストするということで、
都道府県の項目、住所入力欄とかであったりすると思うんですけど、
都道府県の項目についてテストしたいといったときにどんな値を使ってテストしますかね。
あとは何個の選択肢をテストしますかね。都道府県だから47都道府県ありますけど、これ何個使いますかね。
どんな値使いますかね。ちょっと考えてほしいなと思うんですけれども、
これいろいろな回答が出てくるかなと思います。何個テストしますかと。
そのときに重要な考え方として、まず同時分割の手順ですね。
まずどの値に同時分割を適用するか考えて、同時と見なせる値ごとにグルーピング分けをします。
同時パーティションを分けますと。グループごとにテストに使う値、代表値っていうのを考えていくというのが同時分割の手順です。
このときにポイントとしては、ちょっと大喜利っぽい絵を持ってきましたけれども、テストケースを作成する人が何々のテストをしますと。
そしたら司会者は、それはどうしてだいというので、テストケースの作成者は理由を一言言ってくださいっていうような。
ここの理由を一言というのがすごい大事で、今回の同時分割に限らずですけれども、
どうしてそのテストをしたのか、いろいろ選択肢がある中でどうしてそれを選んだのか。
逆に言うと、どうしてこの値以外のやつは選ばなかったのかっていうのが言えるのが大事かなと思っています。
今回の47都道府県についてどういう例があるか。
同値分割法の5つの回答例
これ別に全部が全部、これが絶対正しいっていうわけではないんですが、回答例をいくつか持ってきました。
まず回答例の一つ目ですね。47都道府県プルダウンでバーッと出てくるとしたら、これの一番下の値を使いますよと。
例えば47都道府県だったら一番下は沖縄県ですよね。どうして沖縄県を使うんですか。
それはどうしてだいって言われたら、プルダウンで開いたときの47個の選択肢があったら一番下までちゃんとスクロールできるか確認したいからですとか、
あとはプルダウンの値っていうのは結局配列に格納されていたときに、
それがちゃんと配列に入っていくか、入力した値が入っていくかっていうのを確認するときによくあるやつですよね。
配列iが0番から46番までになってるとかっていうのがよくあったりすると思うんですけれども、
そこで間違えて、言語にもよるんですけれども、間違えて1からやってしまったと。
そしたら47番目、一番最後のものは1から47っていう風になってしまって、
iの0から46までなはずなのに47を選ぶことによって、
それでエラーが発生してしまうっていうのを確認したいがために一番下の値を選ぶ。
これも全然ありかなと思います。
続いて2つ目の考え方。都道府県の4つを使いますよと。
その中で言えば、例えば都だったら東京都、都だったら北海道、府だったら京都府もあるけれども大阪府。
県は神奈川県を選ぶみたいに4つ使いますと。
それはどうして使うのか。なんとなくではなくてどうしてかっていうと、
例えば選んだ都道府県によって、その後次の画面とかで印刷物が自動的に作られますよと。
公共の書類とかで印刷物に丸印を反映させるっていったときに、
ちゃんと都道府県のところで東京都のところに丸がついて、
北海道だったら北海道のところに丸がついてみたいに丸印を反映させたいっていうときは、
都道府県のそれぞれの値でテストすべきだからこの4つを使いますよっていうのが2つ目の回答例。
3つ目。文字列が3文字と4文字の選択肢。
東京都と神奈川県みたいなものを使いますと。どうしてかっていうと、
確認画面、次に行ったときにもう3文字が前提の表示欄になっていたら、
東京都とかだったら入るけど神奈川県ってなるとなんか変に開業されちゃっているとか、
あとは逆に4文字が前提になっていた横幅が固定だったときに、
東京都のそれぞれの間になんか変な妙なスペースができちゃうみたいな。
そういう文字数によるクゼラを見つけたいって言ったから、
文字数の違う値でテストしましょうみたいなことも考える。
4つ目。それぞれの地域の選択肢を使うと。
例えば東北地方、関東地方とか、北陸地方とか、そういうふうに各地域の選択肢を使う。
どうしてかっていうと、選ばれた都道府県によってその地域が、
例えば自分が選んだところが東北地方にあったときっていうのは、
その場合と関東地方にあった場合で、
例えば総量が違うみたいな地域によって価格が異なるみたいにいったときに、
価格ごとにテストしたいから各地域の選択肢を選ぶみたいなものも回答例としてはあると思います。
最後5つ目ですね。全ての選択肢を行いますと。
北海道も青森県も南京も全部やります。
どうしてかっていうと、そもそもプログラムのコードの中がスイッチ文で分岐されているっていったときに、
全選択肢テストしないと、ちゃんとスイッチ文がうまくいってるかわかんないですよね。
っていった場合は全部選択肢を選びます。
同値分割の手順と代表値の選択
っていうふうに、今回答例5つ挙げましたが、どれが絶対的に正しいとかじゃないんですよね。
ポイントは何を目的としてテストしているのかっていうのを考えて、
それに合わせて同地分割グルーピング分けをしてあげてほしいなと思います。
例えばその中でグルーピング分けしたら、
回答例2つ目で言ったように、例えば東府県の4つを使いますよって言ったら、
じゃあ都だったら東京都だよみたいな、そういうのを選べますよね。
そうすると県のところは43個県があるわけですよね。
その中でも1つ使おうって言って、例えば神奈川県を選ぶみたいな、
この神奈川県って選ばれたものを代表値と呼びます。
なので最初に言った同地分割の手順ですね。
どの値に同地分割を適用するか考えてグルーピングを分けました。
そのグループごとにテストに使う値代表値を選択するっていう、
この手順に従って同地分割をしていくといいかなと思います。
リスナーからの感想紹介:QAとAIの協働
ということで、ここまでで同地分割法についてしゃべってきました。
ここまで聞くと、今までやったことあるなと思う方もいるかもしれません。
もしかしたら今まで感覚的にやってたものをちゃんと説明したものが、
この同地分割法だったのかもしれません。
今まで感覚的にやってきた方はぜひ、こういうふうなちゃんとした考え方を
持続いてやってるんだなっていうのを意識してもらえるといいかなと思います。
続いてはここからはお便りのコーナーですね。
今回は感想のポストをいただいているので、それを紹介したいなと思います。
14回目のエピソードの感想ですね。
これはMaxさんのブログを紹介した回にはなるんですけれども、
それに対してMaxさん自身から感想のポストをいただきました。
初めてPodcastになるものを聞いたのですが、想像を超えてラジオでした。
これすごくいいですね。ありがとうございます。
ラジオ内でのフィードバックについてですが、確かに実行までAIにやらせてみると
AIなりの結果プラス自分の考えで一緒に仮説検証が進むので
思考が発散しやすそうです。QAとAIというシナジーは
プロセスエンジニアリングで解決できる部分もたくさんあると思っていて、
何かヒントになる抽象的なものを書けたらと思っていたので、
こういったフィードバックがあってとても嬉しかったですと、
改めてありがとうございました。こちらこそ感想までいただきありがとうございます。
AIの結果プラス自分の考えで一緒に仮説検証が進むというのは
すごい大切だと思っていて、これは別に対AIに関してだけじゃなくて、
QAエンジニアとしての自分が他のQAエンジニアと一緒に
仮説検証をするのと同じように、他のQAエンジニアの代わりに
同等な感じでAIと一緒にやるっていうのはすごい大事かなと思っています。
これは建設的相互作用とか呼んだりしますし、
それは今後のエピソードでも話していきたいなと思っている
テーマではあるんですけれども、それが対AIに対しても
十分に活用できるのかなと思っています。
ということで改めてお便りいただき、
お便りというか感想のポスターいただきありがとうございました。
エンディングとリスナーへの呼びかけ
ではエンディングです。
btesting.fmではリスナーさんからのお便りを募集しています。
エピソードの感想や私に聞いてみたい質問やテストのお悩みなど
どんなことでもかまいません。
投稿フォームは番組概要欄にあります。
またエピソードの感想は、
ハッシュタグBテスティング、Bアンスコテスティングで
X3ポストをお願いいたします。
今日の回で言えば、今日同時分割法というものを扱ってきましたが、
その中でも話した通り、実は自分今まで
なんとなく感覚的にやっていたよとか、そういうような話や
逆にもう同時分割法なんて当然のようにやってきたよとか
言う感想でもかまいません。
どんな感想でもかまいませんので、ぜひ感想いただけると嬉しいです。
もしもこれからも聞きたいという方は、
お手持ちのPodcastアプリで番組のフォローもお願いします。
最新回が上がったときにすぐ気づけると思います。
大変便利だと思いますので、ぜひフォローもよろしくお願いします。
ということで今回はここまでです。
それではまた次回。バイバイ。
13:43
コメント
スクロール