こんにちは。まーくー&くまねこです。

ゆるっとシリーズ第4話です。 今回はまたまたまーくーの学び直し!、今や古典といっても良い?書籍「基本から学ぶソフトウェアテスト」を読んで、初版から20年以上たった今でも活かせる内容があるのか?ないのか?会話形式でお話させて頂ければと思います。

最後まで楽しんで読んで頂ければ幸いです!

自己紹介

まーくー
QA業界経験2x年のベテラン(おじさん)エンジニア。
ソフトウェアテストの流れに、流れて、流れて・・・一日が街に恵む日差しで干からびそうになっている今日この頃です。

くまねこ
QA業界経験1x年のエンジニア。
アスファルトのキラキラを追いかけていたところ、干からびかけているまーくーに話しかける。

イラストby くまねこ

まーくー、どうしちゃったんでしょう…?今日も二人のやりとりをお楽しみください!

学び直し!の道は長く険しい???

くまねこあっ、まーくーさん。お疲れ様です。だいぶカラカラになっているようですが…どうしたんですか?

まーくーもう、ほんと心がカラカラだよ😢テストって、覚えることが多くて大変だよなぁって思ってたんだけど、我らが神?の本(知識ゼロから学ぶソフトウェアテスト)を読んでいたら、こんなことが書いてあって・・・

💡 ソフトウェアというものは四つの仕事しかしない。なので君らはその四つのふるまいをテストすれば良いのだ。

知識ゼロから学ぶソフトウェアテスト

とか、

💡 (前略)おいらたちテストの技術の進化は非常に遅いし、学んだ技術が陳腐化しないというのは非常に楽なことなんだよ

知識ゼロから学ぶソフトウェアテスト

とか、すごーく簡単なもの的にかいてあるんだけど、今でも全然簡単ではなくて・・・😢

くまねこなるほど…僕も「しっかりと理解してやれているかい?」って言われると自信が無いですね…

まーくーでも、泣き言ばっかり言ってられないし、陳腐化しないのなら20年以上前に神の師匠が書いた本が、確か家の本棚にあった気がしてて・・・いっそのことそれを読んでやれって思ってるんだよねー
くまねこ前々回、アジャイルソフトウェア開発技術者検定試験に挑戦した時の気持ちを思い出していきましょう!背水の陣!バックウォーターフォーメーション!タフになれって風が吹いてますよ!

基礎から学ぶソフトウェアテストとは

まーくー基本から学ぶソフトウェアテスト」という本は、本の紹介ページによると「世界で最もたくさん読まれているソフトウェアテスト/品質保証の実践的な教科書です。」らしく、神の師匠Cem Kanerさん他が書いているんだよね。
くまねこすごいですね…まーくーさんが今持っているのがその本なんですね。どんな感じの内容になっているんですか?
まーくー目次はみたいな感じで、テストの基本編、テスト技術編、テストのプロジェクトやテストチームの管理、付録としてよくあるソフトウェア不具合まで載っていて、460ページ以上ある辞書みたいな教科書なんだ(笑)

目次
第1部 基本編
 第1章 テストの進め方
 第2章 テストの目的と限界
 第3章 テストの種類と位置付け
 第4章 ソフトウェアエラー
 第5章 障害の報告と分析
第2部 テスト技術編
 第6章 障害管理システム
 第7章 テストケースの設計
 第8章 プリンタ(およびその他デバイス)のテスト
 第9章 ローカライゼーションテスト
 第10章 ユーザマニュアルのテスト
 第11章 テストのツール
 第12章 テストの計画とドキュメント
第3部 テストプロジェクトやテストチームの管理
 第13章 開発全体におけるテストの役割
 第14章 ソフトウェアの不具合に対する法的責任
 第15章 テストチームの管理
付録 よくあるソフトウェア不具合

基本から学ぶソフトウェアテスト
くまねこおおお…まさにバイブル!すべてはここにあり、ですね。でも今回でこのボリュームを学び直すには、少し大変じゃないでしょうか。(少しづつ進めてほしい気持ち…ニヤついてみよう…ニヤニヤ)
まーくーさすがにね、いっぺんに全部は・・・(私も無理)今回は古典と言ってよい基本から学ぶソフトウェアテストの第1部第1章、第2章を読んで、学んでいこうと思う!
くまねこYeah~! \🐼/(訳:気持ちが通じた~!)

序文を読んで

くまねこまずは序文からですね…ふむふむ。本書は、受入テストは別として、命に関わるようなソフトウェアについては対象外として記載がありますね。命に関わるようなソフトウェアだと、プロジェクトのプロセスとか厳格になってきますよね。本書の対象はそれ以外のソフトウェアテスト、という理解で読み進めた方が良さそうですね。
まーくーあ、そこ気付いた?そういう場合は他の本をお勧めしている(笑)。また面白いのが、

💡 この本が対象にするのは、必ずしもみんながルールを守らない、または守るつもりがない、もしくは守る必要がないときのテストの進め方だ

基本から学ぶソフトウェアテスト
まーくーって述べているんだよ。厳密にルール化して開発していて、それに則ってテストが出来るなんてそうそうないよね。どのプロジェクトでもルールはあるけど、より良くしようとか、まだルール化できていないとか、暗黙知とかがそれぞれにあって、把握するのに労力が必要だけど、それを前提としてくれているところがユニークだと思った。そういった状況下でも応用可能な視点で書かれてるんだろうな、と期待させてくれるよね。
くまねこ確かに…「こうあるべき!」という内容だと、実際の現場にうまく当てはまらなかったりして逆にカオスになっちゃう話とか、聞いたことあるかもです…。そういう意味でも、今回の学び直しによって、現在の業務に活かせる学びがありそうでワクワクしてきました!Exciting!
さっそく、第1部の第1章から読み進めましょう!
まーくーOK!Come on!↷

第1章 テストの進め方を読んで

まーくー第1章は「テストの進め方」について、簡単なプログラムに対する初期テストを題材に説明されているね。テストの段階という単位で説明がされているんだけど、書籍発行時の50年前の論文も参照して書かれていて歴史を感じると同時に、冒頭に書いた「学んだ技術は陳腐化しない」という神の言葉が思い返されるね…。
くまねこそうですね。実際にテスト業務を担当している立場からすると、テストの第一段階で「当たり前のテストから始めること」というところが基本にして真髄だな、と感じました。考え抜いた複雑なテストを早くやりたいところですが、まずはテスト対象のプログラムの「当たり前」のことがしっかりと動作しているかを確認し、徐々に複雑なテストを実施するっていうことは、私たちもやってましたが改めて大事なんだなぁって。
まーくーそうだねー。「当たり前」のところが動作してこそ、複雑なテストが意味を成すものね。複雑なテストとから実施して不具合が出てしまった場合、原因も掴みずらいし、手戻りが発生してしまうからね。
くまねこまた、境界値テストの重要性についても書かれていて、JSTQBのFLで取り上げられている技法ですし、改めて学び直しておきたいです。
まーくー初期テストという条件だからかもしれないけど、即興的にその場で考えたテストを行う、というところも興味深かったね。本能を信じて「くさい」部分をテストするなんて、ちょうど前回くまねこさんが話していた探索的テストにも通じる考え方なんじゃないかな…。
くまねこ確かに!なんだか、古来から伝わる伝説の技のようです。エンシェント!(ニヤニヤ)
まーくーそうだね!(しまった、変な方向に誘導してしまった💦まぁ楽しそうだからほっとこう笑)第1段階はここまでにして、第2段階の話もしてみようか。
くまねこここでは、不具合に関する記載がメインですね。報告した不具合に対する開発回答の捉え方の所は、現場でも参考になりそうです。例えば開発からの回答が「修正しない」だったとしても、ユーザーから見たら途轍もなく重要であることが伝わっていない可能性もあるから、そこは伝わるまで手を尽くす必要がある。開発とのコミュニケーションが大切ということを、ここでも改めて認識することができました。テストのメンテナンスや再テストなど、テストサイクルを繰り返していく上でのポイントも、参考になりました。
まーくーそうだね。現在はAIも登場してきて、色々とソフトウェアテストを取り巻く環境が変わっていく所だと思うけど、開発者やステークホルダーとの関係を良好にすることは、より良い品質の製品を作っていくためには大事だよね。(よし、第1章をきれいに仕上げた…!)
くまねこYeeeaaah~! \🐼/(訳:まーくーさん良いこと言ったぁ~!)この勢いで、今日は第2章までいけそうですか…?(今日はここまで…ここまで…祈!)
まーくーオゥーライ!第2章までいくよ!
くまねこYeeeeeeaaaaaah~! \🐼/(訳:うげぇえええ~!)

第2章 テストの目的と限界

くまねこ第2章は「テストの目的と限界」ですか…ちょっとセンセーショナルなタイトルですね。。。
まーくーここで述べられているのは、まず「完全なテストは出来ない」し、「プログラムの正当性の証明も出来ない」ということ。そのうえでテストの目的として、「不具合の検出」、「不良の修正」を挙げているね。詳しい戦略とかは、後段の章で述べるみたいだけど。
「完全なテスト」については、「全入力テスト」「全パステスト」「設計上の問題の全件検出」は不可能であると説明されていて、「完全なテスト」が不可能である時点で「プログラムの正当性の証明」も完全には出来ないと述べている。
くまねこふむふむ。この辺りの考え方は、ソフトウェアテストのテスト7原則の「全数テストは不可能」「テストは欠陥があることは示せるが、欠陥がないことは示せない」「「バグゼロ」の落とし穴」に通じる考え方ですね!
まーくー個人的にはテストに関するバイアスについての以下の説明が、ふむふむとなったよ。心理的なバイアスで、不具合に気付かなくなるってのはテスト管理の面でも気を付けなきゃだよね。

💡 プログラムは正常に動くと期待すると、プログラムは正しく動くように見える。と言うより、バグを見逃してしまう。プログラムは動かないと考えると、不具合を見つける可能性は高くなる。バグを報告すると罰せられるなら、不具合を見逃してしまう。報告しなくなるのではなく、不具合に気付かないのだ。

基本から学ぶソフトウェアテスト
くまねこふむふむふむふむ。
まーくーあっ…(また始まった…?)
くまねこふむふm…これは確かにそうですね。「プログラムは動かない~」のところ、エラー推測テストはこの考え方に近いのかな、と感じました。テスト担当者の心理的な面も書かれていて、共感できました!(あれっ…まーくさん、なんでちょっと意外なリアクションなんでしょ?)
まーくーオゥーケイ!第2章はこのぐらいにしようか!(良かった。今回はちゃんと考えてただけだった笑)
くまねこはーい!(干からびていたまーくさんもテンション上がって潤っている~!)

まとめ

まーくー基本編の最初の部分を読んだだけだけど、テストの進め方の「当たり前のテストから始める」や「完全テスト」は不可能といった、現在の考え方のベースになったであろう記述が多々あって、古典とは言え学び直しにとても有効そうだと感じたね。
くまねこそうですね。まだ序盤の序盤ですが、今までの我々の経験や知識は、なかなか陳腐化しないということが改めて理解できて良かったです。
まーくーとはいっても、時代を経るにつれ変わるところ変わらないところがあるはずだから、今後もしっかりと読み進めていこう!ちなみに・・・第2章「テストの目的-不良の修正」に出てくる、

💡 テストの担当者はプログラムを破壊するつもりでテストするが、大局的には建設的な仕事である。鍛え上げるために、しごいているようなものだ。

基本から学ぶソフトウェアテスト
まーくーって記述を読んで、テスト対象のプログラムに対して、厳しくも優しくテストして行く気持ちは大事なんだよなって、再認識できたよ。
くまねこまさにULTIMATE CRUSH!ですね。ララ Yeeeeeeeeeeaaaaaaaaaah~! \🐼/

次回予告

まーくー今回はここまでにして、次回の記事はどんな感じにしようか?
くまねこ次回のまーくー&くまねこは、
まーくー、JSTQB ALTM試験、本当に受けるの?どうでしょ!(仮)
くまねこ、JSTQB FL試験を通り過ぎる!(仮)
の2本でーす。
最後まで読んでいただき、ありがとうございました!よろしければ、過去のゆるっと♪シリーズもお楽しみください!次回もまた見てねー🐻ノシ 🐼ノシ
🐻ゆるっと♪シリーズ🐼

第1話 ゆるっと♪ファームウェアテストよもやま話
第2話 ゆるっと♪学び直し!アジャイルソフトウェア開発技術者検定試験
第3話 ゆるっと♪どうやってる?探索的テストの世界!
第4話 ゆるっと♪学び直し! [書籍]基本から学ぶソフトウェアテスト!
第5話 ゆるっと♪学び直し![書籍] 基本から学ぶソフトウェアテスト!②~あきらめてしまわないでね 難しさ感じても~

SHARE

  • facebook
  • twitter

SQRIPTER

AGEST Engineers

AGEST

記事一覧

AGESTのエンジニアが情報発信してます!

株式会社AGEST

Sqriptsはシステム開発における品質(Quality)を中心に、エンジニアが”理解しやすい”Scriptに変換して情報発信するメディアです

  • 新規登録/ログイン
  • 株式会社AGEST