無料マンガ・ラノベなど、豊富なラインナップで203万冊以上配信中!
ウォーターフォールでもアジャイルでも、
上流品質を上げまくって、よい製品を楽に作ろう!
テスト界の第一人者、高橋寿一氏執筆の
「開発者テスト」実践における必携書、アジャイル開発に完全対応!
本書では、アプリ・システム開発において、バグを減らすために
開発者が行うべきテスト(開発者テスト)についてわかりやすく解説します。
開発者テストを実施するために知っておくべき概念・手法や、
○単体テスト
○リファクタリング
○アジャイル開発での品質担保
○テストの自動化
などについて、実例を出しながら解説していきます。
旧版で言及の少なかったアジャイルテストの方法論にページを割き、
アジャイルの現場でも活躍する内容にパワーアップしました。
品質コンサルタントとして長年培ってきた筆者の経験をもとにした、
現場で必須の手法+学術的根拠のエッセンスを詰め込んだ一冊です。
□章構成
第1章 はじめに
第2章 上流品質向上のためのテスト
第3章 開発者テストの基本の基本
第4章 コードベースの単体テスト
第5章 単体テストの効率化――楽勝単体テスト
第6章 機能単位の単体テスト
第7章 リファクタリング
第8章 コードレビュー
第9章 統合テスト
第10章 システムテストの自動化
第11章 探索的テスト
第12章 まとめ――全体テストのデザイン
第13章 アジャイル・シフトレフトのメトリックス
第14章 アジャイルにおける要求仕様
第15章 開発者テストの実サンプル
※本電子書籍は同名出版物を底本として作成しました。記載内容は印刷出版当時のものです。
※印刷出版再現のため電子書籍としては不要な情報を含んでいる場合があります。
※印刷出版とは異なる表記・表現の場合があります。予めご了承ください。
※プレビューにてお手持ちの電子端末での表示状態をご確認の上、商品をお買い求めください。
※アプリの閲覧環境は最新バージョンのものです。
Posted by ブクログ
ソフトウェア品質を高める開発者テスト 改訂版 アジャイル時代の実践的・効率的でスムーズなテストのやり方
著:高橋 寿一
出版社:翔泳社
入門書的な書ですが、ソフトウエアのテストという観点からは、すくなからず、コーディングした人が対象かと思います。代表的なテスト手法を紹介し、その概要を説明するという流れです。
ちょっと、開発に携わった人が、読み物にテストを振り返るといった感じをうけました。
並べ方は、正直、まとまっていないので、あまり気に入らないです。
テストの基本とは、ユニットレビュー、コードレビューを徹底的に行うというのは、共感しました。
気になったのは、以下です。並べ替えました。
■上流品質
要求仕様、基本設計、アーキテクチャー設計などの品質のことをいっているかと
・ユーザストーリー
・クラス、関数構造をシンプルに整理する
■コードの品質向上
・リファクタリング 外部仕様を変えることなしに、コードを書き換えて改善すること
読みやすく
修正しやすく
バグを発見しやすく
拡張しやすく
重複コードの解消
・MVC分離
M:Model
V:View
C:Controller
■バグ検出の手法
・デザインレビュー
・デザインインスペクション ※厳格なレビューで定められた手順で決められた内容を確認する
・コードレビュー
・コードインスペクション
・モデル化、プロトタイプの作成
・ユニットテスト(単体テスト:UT)
・統合テスト(結合テストのことか:IT)
・システムテスト(SI)
境界値テスト
状態遷移テスト
命令網羅 C0
分岐網羅 CI
ブラックテスト
ホワイトテスト
ペアプログラミング
APIテスト
探索的テスト
ミューテーションテスト:単体テストで成果が上がらない場合のテスト
オペレーションプロファイル:ストーリー性、シナリオのことか?
■テストの統計的評価
バグ密度
試験密度
Hotspot バグの出やすさを数値化したもの
網羅率
命令網羅
処理の複雑度評価
信頼度成長曲線
■テストの自動化
TDD テスト駆動開発
コード網羅ツール
・JaCoCO
・IntelliJ Code Coverage
CI/CDのツールと手法の導入
目次
本書を手に取ってくださった皆様へ
増補・改定について
図目次
第1章 はじめに
1.1 上流品質
1.2 アジャイルでの品質
1.2.1 アジャイルテストとは
第2章 上流品質向上のためのテスト
2.1 上流品質活動
2.2 さぼる・逆らう人のための上流テスト講座
2.2.1 上流品質と出荷後の品質
2.2.2 上流品質と残バグのリスク
2.3 まとめ
第3章 開発者テストの基本の基本
3.1 開発者がこれだけは知っておくべきテスト手法
3.1.1 境界値テスト
3.1.2 状態遷移テスト
第4章 コードベースの単体テスト
4.1 コードベースの単体テストとは
4.2 命令網羅(C0カバレッジ)
4.3 分岐網羅(C1カバレッジ)
4.4 よくある単体テストの間違い――コードベースの単体テスト
4.5 知っているようで知らないコードベースの単体テストの書き方
4.5.1 一般的なテスト方法(TDD)
4.6 網羅率――コードベースの単体テストの成否を計測する
第5章 単体テストの効率化――楽勝単体テスト
5.1 コードの複雑度
5.2 どこを単体テストすればよいか?――単体テストやってる暇ありませんという人のために
5.2.1 単体テストのやる箇所を絞る
5.2.2 筆者の独自手法――ファイルを2つにぶった切る
5.2.3 明確なメリット
第6章 機能単位の単体テスト
6.1 開発者がやるべき単機能のテスト
6.1.1 ソート機能の単体テスト
6.2 ブラックボックステスト・ホワイトボックステスト
第7章 リファクタリング
7.1 やはり複雑です、そのコード!書けません、単体テスト
7.2 ファイルのコードのリファクタリング
7.3 ビッグクラスのリファクタリング
7.3.1 CKメトリックス
7.4 複雑度を下げるリファクタリング
7.5 出口は1つ
7.6 MVC分離
第8章 コードレビュー
8.1 コードレビューとは
8.2 ペアプログラミング
第9章 統合テスト
9.1 統合テストのパターン
9.1.1 統合テスト重視の実例
9.2 APIテストとAPIバグ密度の考え方
9.3 カオスエンジニアリング
9.3.1 カオスエンジニアリングと品質&生産性
第10章 システムテストの自動化
10.1 最悪のシステムテスト
10.2 キーワード駆動型自動テスト
10.3 妄想な自動化
第11章 探索的テスト
第12章 まとめ――テスト全体のデザイン
12.1 単体テストなしで疲弊する組織
第13章 アジャイル・シフトレフトのメトリックス
13.1 ミューテーションテスト
13.1.1 ミューテーションテストの考え方
13.1.2 ミュータントの中身
13.1.3 ミューテーションテストの問題点
13.1.4 ミューテーション網羅率という考え方
13.2 ユーザーストーリと信頼性メトリックス
13.2.1 オペレーションプロファイル
13.3 信頼度成長曲線のメトリックス
第14章 アジャイルにおける要求仕様
14.1 ユーザーストーリの利点
第15章 開発者テストの実サンプル
15.1 単体テスト
15.1.1 Setup――簡単なアプリを作る
15.1.2 単体テストを作る
15.2 コード網羅測定
15.2.1 コード網羅ツールの準備
15.2.2 一番簡単な網羅(命令網羅)
15.2.3 分岐網羅
最後に
あとがき
著者略歴
参考文献
索引
ISBN:9784798176390
判型:A5
ページ数:248ページ
定価:2480円(本体)
2022年06月15日 初版第1刷発行
Posted by ブクログ
上流品質を上げることでプロジェクト後半の大量のバグをなくそう、という主張には大きく同意した。どうしても開発工程では完成させるのが目的になってしまい、単体テストで網羅することを疎かにしがちだ。
ただ全体を見渡せばシステムテスト、ユーザーテストでバグが頻出するほうが切なく、同じバグでも解消に非常に時間を要すという経験もある。
本書では理論的な品質工学も交えながら、それでも平易に上流工程でのテストの進め方、心構えを短い章立てで教えてくれる。
少し各章のつながりが分かりづらく、まとまりがないようにも感じられるが、エッセンスを取り入れるという意味では本書の構成も有用と思えた。
Posted by ブクログ
開発者がやるべきテストの導入にしやすい内容。テストを書かない文化の会社にとって、全てを網羅するテストは必要なく現実的ではない。ではどの程度書いたらいいのか、そういったことの解決の糸口になりそうな内容でした。
ただ、詳細は書かれていないため組織が初歩的な品質のことも知らないレベルではマッチしない、現場でやっていることを否定するほどの数字的根拠がなく、内部から改革するようなアプローチは困難(筆者は品質コンサルなので外部である点、呼ばれている時点で課題意識がある状態)なのもあり、実際に現場で使ってみるとなると限られるように感じました。
初歩的な品質もわからず、数字的根拠を示すための静的解析は入れているって結構稀だなと。よっぽどの推進力があれば別ですが。
後半の品質担保も開発効率も落とさないやり方(割り切り)は開発者にささりそうでした。
スタートアップや新設された新しい少人数のチームでやるには良さそうです。
※アプリの閲覧環境は最新バージョンのものです。