はじめに
このシリーズでは「JSTQB ALTTAを学びまくろう」というコンセプトで連載として続けたいと思っています。
このシリーズは、秋山さんの下記の連載をもとに、とにかく乗っかって勉強したいと思っています。
私自身はJSTQB ALのTAとTMを持っています。
そこで、最後に残されたピースを埋めるために、TTAに挑戦しよう思っています。
現状、日本では試験を行っていませんが、日本語でなくても英語でも受けるという強い気持ちで勉強を続けたいと思っています。
つまり、英語力もテストエンジニアリング力も両方ない私は、英語とシラバスの勉強が両方とも必要になります。
実は、英語については毎日勉強しています。
このシリーズではまずシラバスの内容を日本語で理解したいと思っています。
ステートメントテスト
言語の選択
今日はホワイトボックステスト技法のステートメントテストというところを勉強したいと思います。
秋山さんはPython を使ってソースコードを書くとのことです。
私も Python は多少書いたことがあるので、それはありがたいなと思います。
Python についてはかなり読みやすい言語であると思っています。
特にTTAの範囲であるホワイトボックステストを学習するというところであればかなり勉強しやすいと思います。
一方、 6章の勉強だと、コードレビューを行ったり、Pythonでは省略できる部分をレビューする必要があるので、そこは工夫して勉強する必要があるかなと思っています。
ステートメントテストとは
ステートメントテストというのは、処理を網羅するやつです。
秋山さんがおっしゃる通り。実行可能なステートメントというところは試験では重要なことだと思いました。
コメント行や空行は入りません。
一方気になったのは、到達不可能なコード、つまりデッドコードはステートメントに入るのかどうか?というところです。
ちょっとこれは、もともとのコンピューターサイエンス的なところを見ないとちょっとわからないかなと思ったりしました。
ちなみに、Geminiに聞いてみたら、到達不可能なコードはステートメントカバレッジの分母に入らないという結果が出ました。
ステートメントテストのポイント
if文
ステートメントテストのポイントとなると、if 文になるでしょう。
例えば、if 文だけのものと、if と else がある場合だと、前者は 1 つのテストケース、後者は 2 つのテストケースが必要ということになります。
ういったところを注意したら基本的にはステートメントテストのテストケースの数ということはわかるのではないかなと思っています。
例外処理とループ
例外処理というところもあるので、これについても if 文と同じように考える必要があると思います。
ループ文というところもあると思います。
ループ文は 0回で終わるんじゃなくて、ループ処理をやりたいので、多分1回はやるということになりそうです。
switch 文
試験にあるかどうかわからないんですが、switch 文にも少し注意が必要かもしれません。
それぞれの分岐に対してカバレッジする必要があるので、スイッチ文で分岐している分だけテストケースを用意する必要があるのではないかなと考えています。