ソフトウェア品質を高める開発者テスト アジャイル時代の実践的・効率的なテストのやり方

3.75
  • (0)
  • (3)
  • (1)
  • (0)
  • (0)
本棚登録 : 14
レビュー : 5
著者 :
amano225さん 職場の所有物   読み終わった 

上流工程でバグを減らそうという考えにもとづいた、ソフトウェアテストについての本。
普段、テストというと、ソフトを開発した後にテストを行い、バグを見つけたら改修するというようにやっているけれど、テストコードを書くことが良いということが書かれてあった。
ようは、テスト駆動開発(TDD)だし、今までそういうやり方があるというのは何度も聞いて知ってるけれども、テストコードの書き方を学ぶのも、テスト用の関数の書き方を考えるのも、テストコードを書くのも工数がかかるのを考えるとどうにもやる気が起きないのだけど、品質があがることを考えるとこういうことも考えたほうがいいのだろうなと思う。
特に、使用がはっきりと決まっておらず、プロトタイプを先に作ってしまおうという開発とはどうにも相性があわないような気がするし、自分が関わるプロジェクトにはそういうのが多いので、使いたいと思わないのだけど、これからはこういう開発手法も考えたほうがいいのだろうな…。
ところで、単体テストという言葉を、間違って使っていたように思う。一つのプログラムにたいしてのテストが単体テストであって、APIなど他のプログラムも含めたテストを連携テストと思ってたのだけど、一般的には、単体テストというのは、コードベースの単体テスト、すなわちホワイトボックステストのことをいうらしい。なので、プログラム単位というよりはむしろ関数単位やファイル(クラス)単位のテストと考えるほうがあってるのかもしれないと思った。勉強不足を実感する。
網羅率というのは、手動かテストコードかに限らず、重要な概念だとは思うのだけど、いまいち何をもって100%というのか分からなかった。コードに書いてあるすべての行をテストしたら100%ということなのか? それとも、境界値のテストも考慮する必要があるのか? このあたり、もっと調べたほうがよさそう。
あるファイルが一定期間に直近何回変更されたか、その回数が多いファイルにバグがでやすいというのはなるほどと思った。重点的にそういうファイルのテストやコードレビューは行ったほうがいいのだろうなと思う。
複雑なファイルについては、2つにぶったぎっただけで品質の向上を感じるという話も面白かった。ただ、ぶった切るといっても、同じプライベート変数を様々なメソッドで使ってるクラスファイルだと、難しいだろうなと思う。簡単にいうけど、2つに分けるだけでもコツがいりそう。
ただ、そもそも複雑度というのもいまいちわかりにくいなという印象。ifやswitchが多いと複雑ということでいいのだろうか。このあたりはなんとなくでやったほうがいいのかな。多分、使わない関数とかは消したほうがいいのだろうなと思う(残してるってことよくあるけど)。
「バグを入れないようにする仕組みではなく、入れてもすぐに発見できる仕組みを入れることが重要」というのは、まさにそうだろうなと思った。まあ、言うは易く行うは難しだけど。
なお、全体、特に8章以降は、一つの章のページが短いように思った。コードレビューや要求仕様といったところに一章分割り当てられてはいるのだけど、それがどういうものかについては書いてあるものの、具体的な方法については書かれてないイメージ。特に、要求仕様については、はじめに「本章は最初あまり書くつもりはありませんでした。なぜなら、要求仕様の書き方なんて、プロの開発者である皆さんに対して説明する必要ありませんよね…。」と書かれてあるものの、要求仕様はこうあるべきなところに終始していて、結局どう書けばいいのかよく分からなかった。
最後の15章は開発者テストの実サンプルについて。いろいろ書いてあったけど、単体テストはやっぱり少しハードルが高いらしい。何より、プログラミング言語ごとに使うツールが異なるというのは、ツールの使い方を覚えるコストもやっぱりかかるというわけで、面倒だよなと思った。まあでも、なにか一つの言語で使えるようにはなっていきたい。
ところで本題とは関係ないけど、「maintenance」を「メインテナンス」と書かれてあるのがちょっと気になった。だいたい「メンテナンス」と呼ばないかと思ったのだけど、英語の発音的には「メインテナンス」のほうが近かったりするのだろうか。

レビュー投稿日
2021年3月28日
読了日
2021年3月27日
本棚登録日
2021年3月28日
1
ツイートする
このエントリーをはてなブックマークに追加

『ソフトウェア品質を高める開発者テスト ア...』のレビューをもっとみる

『ソフトウェア品質を高める開発者テスト アジャイル時代の実践的・効率的なテストのやり方』のレビューへのコメント

まだコメントはありません。

コメントをする場合は、ログインしてください。

『ソフトウェア品質を高める開発者テスト アジャイル時代の実践的・効率的なテストのやり方』にamano225さんがつけたタグ

いいね!してくれた人

ツイートする