「テスターちゃん」で学ぶソフトウェアテスト①
「Qiitaに書いてた記事をnoteに移行しよう」シリーズと言うことで、Qiitaに投稿している記事の掘り起こしとなります。また、内容の整理も行う予定のため、Qiitaに投稿した記事をそのまま移行する形とならない場合もあります。ご了承ください。
■ 「テスターちゃん」とは
初心者(新人)向けに描かれたソフトウェアテストについてのマンガとなります。
作者のまつさんこと松谷峰生さんも現役のQAエンジニアの方で、このnoteの投稿を始めるきっかけとなったJaSST Online CloverにもLTとして登壇されていました。彼の場合、テスターちゃんがきっかけで人生が動き出したとおっしゃっていたのが印象的でした。
テスターちゃんを知ったきっかけですが、当時アサインしていた案件の案件管理者のお兄さんからソフトウェアテストの資格であるJSTQBのことをとある月の1on1の時に教えてもらったのですが(Aさん、ありがとう)、その帰り道にスマホでJSTQBについてググっていたら「JSTQBを取るメリット5選」と言うブログ記事を見付けたのがきっかけで、テスターちゃんのブログを読むようになりました。
元々はブログからスタートしたテスターちゃんですが、技術書のイベントやBOOTH等で同人誌版を販売し始め、その内書籍化され書店でも販売されるようになりました。
因みに、自分は今年の6月19日に行われた第5回技術書同人誌博覧会でまつさんと実際にお会いしました(まつさん、その節はどうもありがとうございました)。
このテスターちゃんは同人誌版・書籍版ともに物理本・電子書籍両方で買い揃える程大好きなソフトウェアテストの本であり、また何もわからずにソフトウェアテスト業界に飛び込んだ自分を支えてくれたブログ&本でもあります。
また、最近はYouTubeも始められています。
これからも色々学ばせてもらいますね!
■テスターちゃんの対象読者
テスターちゃんの対象読者としてまつさんは下記を挙げています。
・テスト部署に配属された新人社員
・テスト部署で新人社員の教育担当になった中堅
・テストの考え方を知りたい開発
・「テストって何をするの?」と言うプロジェクトマネージャー
これに自分は下記も加えたいと思っています。
テスト設計担当者やテストマネージャー等のテスト部署の経験者や管理者も含む全てのQAスタッフ(つまり新人や教育係以外の人も対象)
これは後ほど知りましたが、ソフトウェアテストについては冒頭でも述べたようにJSTQBと言うソフトウェアテスト技術者資格認定があります。大抵の場合基本的にJSTQBのシラバスの内容や用語集に則っていると思いますが、案件や現場等によって解釈が異なることもあるようです。
そう言った意味からも、ソフトウェアテスト初心者以外の現場の人間が読んでも新たな発見が出来ると思ったからです。また、初心を忘れないようにするためにもいい教材だと思います。
■QAとは何か
QA=Quality Assurance
日本語で言うと品質保証のこと。
プロダクトがユーザーにとって満足の出来る品質に至っていることを保証する。
■テストとは何ぞや
プロダクト(アプリ・Web等)を実際に動かして問題がないことを確認する。
・テストの確認の基本
1.バグの確認
テストとは、バグを含めて出来るものが出来ないこと、あるものがないこと=意図しない動きを確認する。
ソフトウェの動きは以下の4つ。
・入力
・計算
・出力
・データ保存
そこに注目する。
2.性能の確認
ユーザーに影響のあるバグが見付からなくなったとしてもそのプロダクトが大丈夫だとは限らない。
〔EX〕
とても挙動が遅い、とか
なので、性能の確認も必要である。
性能系は基本部分が多いので、早めに確認する。
→作り直しになる可能性がある。
3.ユーザー視点での確認
ユーザーとしてそのプロダクトが使い易いかも見る必要がある。
企画通りでも使ってみて改善した方がいいことも確認する。
ユーザーは絶対こう使うと言う思い込みもあるので、それに縛られないことが必要。
・気付くのって大変
QAが最後の砦と言われているのは、開発・企画が気付かなかったことに気付いて食い止めるから。
とは言え、何かおかしいと言うことに気付くのは大変なこと。
・プログラムの間違い易いところ
・端末のくせ
・データがどうやって保存されるのか……等
結構幅広い知識が必要となってくるようだ。
■マイヤーズの三角形
・課題
以下のプログラムで、テストケースを全て述べよ
【プログラム】
1.このプログラムは、3つの整数を入力出来る
2.この3つの値は、それぞれ三角形の3辺の長さを表すものとする
3.プログラムは三角形が以下のどれかを決めるメッセージを印字する
・不等辺三角形
・二等辺三角形
・正三角形
・確認してみる
出来ること
正常系確認
・不等辺三角形になるか
・二等辺三角形になるか
・正三角形になるか
出来ないこと
異常な入力値
・0を入力
→全部の辺が0の場合
→どれかの辺が0の場合
・マイナス値
→全部の辺がマイナス値の場合
→どれかの辺がマイナス値の場合
・小数点を用いた値
→全部の辺が数点を用いた値の場合
→どれかの辺が数点を用いた値の場合
・整数以外での確認
→文字(かな・カナ・漢字・記号・絵文字等)
・入力しない(空欄にする)
【見落とし易い?】
・A+B<Cの場合
→ちゃんとした整数でも1つの辺が他の辺の合計より長い場合は三角形にならない
・マイヤーズの三角形のまとめ
・まず正常値は必要。
・二等辺三角形はそれぞれの辺についても確認する。
・三角形の性質(テスト対象)をわかっていないと出ないテスト観点がある。
→盲点となっているところがあるかも。
→しっかり頭を回転させて考える必要がある。
■追記
・QAとテストについて
QA(品質保証)=テストではない
QAがテストを意味するために使われることがあるようですが、同じではありません。
JSTQBのシラバスによると、品質マネジメントと言う概念があり、それが両者を結びつけていると定義されています。品質マネジメントの中に品質保証と品質コントロールがあり、品質コントロールの中に開発プロセスがあり、その開発活動の中にテスト活動が入っていると言う認識のようです。そして品質保証は品質コントロールを支援する形のようです。
※以前QbookでJSTQB FLの試験対策講座が無料期間だった時に受講した際のメモなので、間違えて書いていた部分等あるかもしれません。
・マイヤーズの三角形
マイヤーズの三角形はテストの奥深さを語るエピソードの1つとして有名です。マイヤーズは「ソフトウェア・テストの技法」の著者です(現時点でまだ本を入手出来ていませんが…)。
これをテスターちゃんで知った時は正直理解が追い付けていなかったこともあり普通に読み流していたのですが、上記で挙げた【見落とし易い?】で取り上げている「A+B<Cの場合」については「マイヤーズの三角形 その④」で取り上げられており、わかり易かったのを覚えています。