ソフトウェアテスト自動化の教科書 〜現場の失敗から学ぶ設計プロセス

著者
林尚平はやししょうへい 著
定価
2,728円(本体2,480円+税10%)
発売日
2020.11.27
判型
A5
頁数
200ページ
ISBN
978-4-297-11736-8 978-4-297-11737-5

概要

「開発側は効率化されてきたのに,テストはいつも炎上ばかり」
「テストの数は増える一方なのに,コストを減らせと言われる」
「やっと自動テストを導入できたけど,逆に工数が増えている気がする」

開発技術の進化とともにテスト技術も着実に進化しているなか,テスト現場ではなぜこんな問題が絶えないのでしょうか? それは,自動テストに関する知識と設計方法を正しく知らないからだと言えるでしょう。
本書は,自動テストの基礎知識,設計・プロセスに焦点を当て,どのように進めればリスクを抑えながらコスト削減を実現できるかまとめた自動テストの教科書です。テスト会社のエンジニアとして数々の現場で自動テストを成功させてきた著者が,現場のさまざまな失敗例を交えながら,成功する設計ノウハウを伝授します。
テストに関わるすべてのエンジニア必携の1冊です。

こんな方にオススメ

  • ソフトウェア開発の現場でテストを担当するエンジニア
  • ITベンダーのテスト部門を担うSE
  • 自動テストに失敗した経験がある方

目次

  • はじめに

第1章 ソフトウェアテストとテストの課題を知る

1-1 ソフトウェアテストの現状と課題

  • ソフトウェアに求められるもの

1-2 テストの種類を押さえる

  • ソフトウェアテスト工程での分類
  • アジャイル開発と自動テスト

1-3 ソフトウェアテストの4つの工程を押さえる

  • 1. テスト計画
  • 2. テスト設計
  • 3. テスト実施
  • 4. 振り返り

1-4 自動テストに必要な6つのテスト技術

  • 同値分割
  • 境界値分析
  • ディシジョンテーブル
  • 組合せ技法
  • 状態遷移テスト
  • 回帰試験

1-5 テストツールの種類

  • テストツールとは
  • テストとテストウェアのマネジメント支援ツール
  • 静的テストの支援ツール
  • テスト設計とテスト実装の支援ツール
  • テスト実行と結果記録の支援ツール
  • 性能計測と動的解析の支援ツール
  • 特定のテストに対する支援ツール

第2章 自動テストの正しい知識を身につける

2-1 自動テストとは

  • 自動テストの目的と役割を押さえる
  • 【現場の失敗例】自動化する目的を誤ってしまった
  • 【現場の失敗例】自動テストの役割を誤ってしまった
  • 現場ではなぜ自動テストが根付かないのか
  • 工数削減の先にある自動テストの効果
  • 【現場の失敗例】工数削減を自動化担当者以外考えない

2-2 自動テストに必要な3つの技術

  • 開発技術
  • テスト技術
  • 【現場の失敗例】テストケースの手順,条件,期待結果が明確に記載されていない
  • 自動化の技術
  • 【現場の失敗例】テストの技術がない開発担当者が自動化する
  • 【現場の失敗例】自動テストの運用経験がない

2-3 現場で自動テストが失敗する理由を考える

  • 自動テストで誤りがちな2つの認識
  • 【現場の失敗例】自動テストをおこなうための何度も実施する試験が無い
  • 【現場の失敗例】時間が無いから自動テストを導入できない
  • 自動テストが失敗する5つの要因を押さえる

2-4 失敗しないために押さえておくべきポイント

  • 自動化に向くテスト
  • 自動化に向かないテスト
  • 自動テストと手動テストのメリット/デメリットを押さえる
  • ツール選定の方針
  • 【現場の失敗例】使えると考えた自動化ツールを全体に展開する
  • 自動化ツールを自作する
  • 【現場の失敗例】自動テストを理解せずツールを作成してしまった
  • 【現場の失敗例】作成した自動化ツールに結果確認を自動でおこなう機能が無い
  • 決めるべき自動化の方針と2つの自動化手法
  • ツールの選定基準を押さえる
  • 【現場の失敗例】キーワード駆動型の自動化ツールを導入してしまった
  • 【現場の失敗例】キャプチャー&リプレイツールを導入してしまった
  • 【現場の失敗例】自動テストで自動化ツールが主役になってしまう

第3章 自動化を成功させるための4つのプロセス

3-1 プロセス1:計画

  • 自動化の方針を決める
  • 【現場の失敗例】不具合を出す試験を自動化してしまった
  • 【現場の失敗例】自動化できるからといって広範囲の試験を自動化する
  • 【現場の失敗例】自動化のゴールを決めない
  • 試験項目の内容を分析する
  • 【現場の失敗例】自動化担当者がテストを理解していなかった
  • 自動化ツールの品質・仕様や評価対象のシステムを分析する
  • 【現場の失敗例】評価対象の仕様を知り尽くしていなかった
  • 自動化設計手法を決め,テストツールを選定する
  • テスト計画を作成する
  • 自動化のリスク
  • 【現場の失敗例】自動テストのリスクを考えずに進めてしまった
  • 【現場の失敗例】実行する回数を考えていなかった
  • 【現場の失敗例】上層部/お客様に自動テストとは何かを説明できていない

3-2 プロセス2:設計

  • 自動化の処理概要をまとめる
  • 自動化のスクリプト構成を考える
  • 【現場の失敗例】スクリプトの構成を考えていなかった
  • 【現場の失敗例】スクリプト作成のルールが無い

3-3 プロセス3:テストの実施

  • スクリプトを作成する
  • 作成したスクリプトを実行する

3-4 プロセス4:振り返り

  • 計画に対しての実績の検証
  • 【現場の失敗例】1回の失敗であきらめる
  • 【現場の失敗例】自動テストの振り返りをおこなわない

第4章 データ駆動型テストの自動化を実践する

4-1 データ駆動型テストの自動化の全体像

  • データ駆動型テストとは
  • 自動化するメリット
  • 【現場の失敗例】スクリプト作成段階で自動化できないことがわかった
  • 自動化プロセスの流れを押さえる

4-2 テストを計画する

  • 自動化する試験を決定する
  • ツール選定
  • 【現場の失敗例】自動化したい処理内容が実際に自動化できるツールがなかった
  • 【現場の失敗例】ツールを選ぶときにコストを考えていなかった
  • 作業内容と工数を比較する
  • 電卓アプリで自動テストを実践する

4-3 テストを設計し実行する

  • テストを設計する
  • データを作成する
  • PictMasterを用いて電卓アプリのデータを作成する
  • スクリプトの事前条件を設定する
  • スクリプトを作成する
  • 【現場の失敗例】確認するデータパターンをソースコードに記載する
  • スクリプトを実行する
  • コラム PictMasterの使い方

4-4 テストを振り返る

  • 計画に対する実績を検証する
  • 電卓アプリのテスト振り返り
  • コラム おすすめツール「Autoit」

第5章 順次実行型テストの自動化を実践する

5-1 順次実行型テストの自動化の全体像

  • 順次実行型テストの自動化とは
  • 自動化するとどんなメリットがあるのか
  • テスト計画前に整理する内容を押さえる
  • 自動化プロセスの流れを押さえる

5-2 テストを計画する

  • 自動化の方針を明確にする
  • 【現場の失敗例】自動化比率を100%にしてしまった
  • 自動化の進め方を決める
  • 【現場の失敗例】1度にすべての試験を自動化する
  • 自動化する箇所を明確にする
  • ツールを選定する
  • 【現場の失敗例】コストを抑制だけを考えて無償ツールを選んだ
  • 【現場の失敗例】使用している自動化ツールがサービス停止に
  • 工数を見積もり手動と自動化の工数比較をする
  • 【現場の失敗例】手動テストとの工数比較をおこなわない
  • Webサイトの評価で自動テストを実践する

5-3 テストを設計する

  • 決めた優先順位で試験項目を抽出する
  • 命名規約を設定する
  • 共通関数を設計する
  • Webサイトテストの共通関数を洗い出す
  • 【現場の失敗例】結果の判定は自動で実施したログを見て確認する
  • スクリプトを作成する
  • 試験を実施する

5-4 テストを振り返る

  • 計画に対しての実績の検証
  • Webサイトのテストを振り返る
  • 【現場の失敗例】順次実行型テストの自動化で振り返りをおこなわない
  • 【現場の失敗例】振り返りの内容を思い出せない
  • コラム その他の自動化ツール適用例
  • コラム RPAと自動テスト技術
  • おわりに
  • 著者プロフィール

プロフィール

林尚平はやししょうへい

1979年生まれ,兵庫県出身,41歳。大学院卒業後,システムエンジニアとして業務系システムの開発に従事し,その後にテストエンジニアに転向し自動テストに出会う。自動テストを始めた当初は何もわからない状況だったが,試行錯誤をくり返し,現在の自動テストのプロセスを作り上げた。10を超える自動化ツールを使いこなし,現場に最適な自動化内容や自動化ツールの提案,業務系/組み込み系問わず自動テストの導入提案をおこなうなど,テスト工数削減に悩む数々の現場で自動テストの導入,運用,支援などをおこなう。現在もテストエンジニアとして自動テストを担当。

facebook:https://www.facebook.com/hayashi1979