「ソフトウェアテストの教科書 [増補改訂 第2版]」批判 〜2章 ソフトウェア開発の流れとテスト工程とは〜その1

はじめに

本記事は「ソフトウェアテストの教科書 [増補改訂 第2版]」という本について、ひとりのDirty Tester目線で批判する記事です。

本書はソフトウェアテストを勉強する上で入門書として紹介されることが多いですが、私の観測範囲内では批判的な意見を持っている人をよく見ます。

私もそのうちの一人です。

本シリーズでは具体的にどこが、どのように疑問を持つかを明らかにします。
それによって以下の効果を望みます。

  • 初学者の人が批判的な視点でこの本を読み、テストエンジニアとして成長する

  • この批判によって、より有益な第3版となって世に出る

  • 本当に「ソフトウェアテストの教科書」に相応しい書籍になる

2章 ソフトウェア開発の流れとテスト工程とはへのクダ

ウォーターフォール型開発モデル

ソフトウェアテストの教科書 [増補改訂 第2版]p15

僕は説明としていいとは思いますが、「ウォーターフォール」という言葉自体が議論の余地がある言葉で、いろいろウォーターフォールに思うところがある人が多いと思います。
wikipediaにも詳しく書いています。

上記のwikipediaを見て、ウォーターフォールモデル自体に疑いの目を持って欲しいです。

通常、モデル図のコーディング(実装)までの工程を「上流工程」と呼び、コーディングより後の工程を「下流工程」と呼びます。

ソフトウェアテストの教科書 [増補改訂 第2版]p15

これは知りませんでした。
要求定義あたりを上流って言ったりする文化もあるので、私自身は正しい定義はよく知りません。

要求定義
基本設計
詳細設計

ソフトウェアテストの教科書 [増補改訂 第2版]p17-21

ここは、具体的に表されていて、初学者向けとしてはGoodな部分だと思いました。
一方、詳細設計ではコーディングなどの実装に繋がる仕様がほとんどなく、要件定義を詳細にしただけに私には見えました。

詳細設計では、(略)どのような内部構造で機能を実現するのかを定義して行きます。

ソフトウェアテストの教科書 [増補改訂 第2版]p20

詳しくは書籍を見てほしいですが、p21に記載されている例には内部構造についての記述がなく、要件定義を具体的にしただけの記載になっています。

コーディング

ソフトウェアテストの教科書 [増補改訂 第2版]p21

コードの例とかもあったらよかったなーと思います。

結合テスト・機能テスト

ソフトウェアテストの教科書 [増補改訂 第2版]p22

テストレベルとテストタイプが混在していますね。
テストレベルとテストタイプが混在していて何が悲しいかは🥦先生が記述しています。

私も書いています。

機能テストでは、組合せたモジュールを1つの機能としてテストします。(略)本書では、結合テストと機能テストの両方を、V字モデル上の基本設計に対応するテスト工程として記しています

ソフトウェアテストの教科書 [増補改訂 第2版]p23

本書では機能テストをテストレベルの一つのみなすという意図を読み取りました。
それは私はOKだと思います。
だとしたら、「機能テストはテストタイプの場合もあるよ」「テストレベルもあるよ」ということを記載してもいいのかなと思いました。
そもそも本書ではテストレベルのことを「テスト工程」って言ってますね。

システムテストとは、個々のモジュールや機能を統合した状態で、要求定義の内容が実現されているかを確認するテストです。

ソフトウェアテストの教科書 [増補改訂 第2版]p23

これはそうかも

ソフトウェアシステムの発注者である顧客、あるいはソフトウェア搭載製品の企画担当や、製品やシステムを使用するユーザーの立場から、想定される限りの様々な使い方を試して欠陥を検出します。

ソフトウェアテストの教科書 [増補改訂 第2版]p24

ちょっと受け入れテストっぽい記述に見えました。
「立場から」なので、受け入れテスト前テストってことなのでしょうか。

W字モデルでは、類似したソフトウェアのテスト経験を持つエンジニアが、過去のテスト経験を踏まえて、これから作ろうとしているソフトウェアの要求定義書や基本設計書、詳細設計書を確認します。(略)
さらに、W字モデルでは、要求定義が終了するとすぐにシステムテストの計画や設計作業をはじめます。

ソフトウェアテストの教科書 [増補改訂 第2版]p24-25

これ、W字モデルの説明として合っています?
テストの経験持ってるのがW字モデルでしたっけ、、
要求定義が終了すると対応するテストレベルを始めるのはどのモデルでも一緒だと思っていました。
ここは審議が必要です。

総括して

すみません。この章は長いので一回では終わりませんでした。
この後さまざまなテストの分類を行っていますが、個人的には納得いっていません。
なので、別の記事で行いたいと思います。

この記事が気に入ったらサポートをしてみませんか?