Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ソフトウェアテスト2025

Avatar for Cybozu Cybozu
July 06, 2025
13

 ソフトウェアテスト2025

Avatar for Cybozu

Cybozu

July 06, 2025
Tweet

Transcript

  1. • 単体テスト(ユニットテスト、コンポーネントテスト) • 個々のコンポーネントやモジュールが正しく動作するかを確認 • 結合テスト(インテグレーションテスト) • 複数のコンポーネントが連携して正しく動作するかを確認 • 総合テスト(システムテスト)

    • システム全体が要件を満たしているかを確認 • 受け入れテスト(ユーザーアクセプタンステスト) • システム全体が要件を満たしているかを確認 ソフトウェアテストの種類 7 ソフトウェアテスト
  2. • 静的テスト • ソフトウェアを実行せずに行うテスト • 要件定義書や仕様書、設計書などのドキュメントから欠陥を見つけるテスト • 例 • コードレビュー

    • 静的解析 • 動的テスト • ソフトウェアを実際に実行して行うテスト • 例 • 単体テスト • 結合テスト • 統合テスト • 受け入れテスト ソフトウェアテストを行うタイミング 11 ソフトウェアテスト
  3. 欠陥の早期発見 • 静的テストをソフトウェアを動かすテスト(動的テスト)の前から行うことで、欠陥を早期発見 • 修正コストが大幅に削減 • 後期に発見される欠陥は修正にコストがかかる • 作業成果物の更新や確認 •

    影響範囲の調査 • 再テスト • 静的テストで早期発見した欠陥は、欠陥箇所のみを修正するだけで完了する場合も • 開発プロセスの早い段階で行う単体テストや結合テストも大事!! ソフトウェアテストを行うタイミング 12 ソフトウェアテスト
  4. 1. テストは欠陥があることは示せるが、欠陥がないことは示せない 2. 全数テストは不可能 3. 早期テストで時間とコストを節約 4. 欠陥の偏在 5. テストの弱化

    6. テストはコンテキスト次第 7. 「欠陥ゼロ」の落とし穴 ソフトウェアテストの7原則 14 ソフトウェアテストの7原則
  5. 1. テストは欠陥があることは示せるが、欠陥がないことは示せない • 欠陥が見つからないとしても、テスト対象の正しさを証明できない 2. 全数テストは不可能 • すべての事前条件、入力を網羅するのは難しい • テストすべき箇所絞り込む必要がある

    3. 早期テストで時間とコストを節約 • 早期に検出することで手戻りが少なくなる 4. 欠陥の偏在 • 欠陥は特定の箇所に集中する • リスクに応じてテストの優先度や細かさを変えていくとよい ソフトウェアテストの7原則 15 ソフトウェアテストの7原則
  6. 5. テストの弱化 • 同じテストを繰り返すと新たな欠陥を検出しずらくなる場合がある • ※ 自走化されたリグレッションテストなど、繰り返すことで意味があるものもある • テストとテストデータを入れ替える •

    新規でテストを作成する 6. テストはコンテキスト次第 • 必ず適用できるテストは存在しない 7. 「欠陥ゼロ」の落とし穴 • バグが0でも、ユーザーのニーズや期待を満たさないシステムになることもある。 ソフトウェアテストの7原則 16 ソフトウェアテストの7原則
  7. 1. テストは欠陥があることは示せるが、欠陥がないことは示せない 2. 全数テストは不可能 3. 早期テストで時間とコストを節約 4. 欠陥の偏在 5. テストの弱化

    6. テストはコンテキスト次第 7. 「欠陥ゼロ」の落とし穴 ソフトウェアテストの7原則 17 ソフトウェアテストの7原則
  8. 「テスト実行」だけがテストではない。 > テストに関するよくある誤解の 1 つは、テストはテスト実行(すなわち、ソフトウェアを実行しテスト 結果を確認する)だけだというものである。 しかし、ソフトウェアテストには他の活動も含まれる。 そし て、ソフトウェア開発ライフサイクルと整合させなければばらない。 (JSTQB

    FL) テスト実行以外にも様々な活動が... • どんなテストをするか計画を立る • テストに必要なデータや環境を準備する • テストの結果を分析 テストはソフトウェア開発のプロセス全体と連携して進める テストに関するよくある誤解 19 テストプロセス
  9. • テスト計画 • テスト分析 • テスト設計 • テスト実装 • テスト実行

    • テスト完了 • テストのモニタリングとコントロール ソフトウェアテストのプロセス 20 テストプロセス
  10. 「何を」「いつまでに」「どのように」テストするかを計画する • テストの目的と範囲の明確化 • 何を • スケジュール管理 • いつまでに •

    リソースの最適化 • どのように • リスクの特定と対策 • 事前に分かったものは、事前に対策 • メトリクスの計画 • モニタリングする測定基準 (ヘルス情報や、パフォーマンス情報)を計画 テスト計画 21 テストプロセス
  11. • モニタリングの目的 • テスト進捗の把握 • 問題の早期発見 • リソースの最適化 • コントロールの目的

    • テストプロセスの調整(見直し) • リスクの管理 • 品質基準の維持 テストプロセスの継続的な改善を図る テストのモニタリングとコントロール 22 テストプロセス
  12. テスト実装で作成したテストを実行する • テストケースの実行 • 手動テスト・自動テストの実行 • 記録を残す • 細かなことでもログを残すと、不足の事態に対応できることも •

    不具合の報告 • 不具合の再現に必要な情報を報告する • どのような条件で • どのような問題が発生するか • 不具合が修正されたら、再度テストする テスト実行 26 テストプロセス
  13. • テスト計画 • テスト分析 • テスト設計 • テスト実装 • テスト実行

    • テスト完了 • テストのモニタリングとコントロール ソフトウェアテストのプロセス 28 テストプロセス
  14. • 以下のパターンの場合、ログインが成功すること • パスワードが8文字以上、100文字以下の場合 (8文字・50文字・100文字) 手順 1.「.com ログイン画面」を開き、(ログイン名フィールドにログイン名を入力する) 2.パスワードフィールドに以下のデータパターンの文字数で入力を行う 1.

    8文字 2. 50文字 3. 100文字 3. ログインボタンを押下する 期待結果 3. ログインが成功し、cybozu.comにアクセスできること 観点 : 条件を満たすときログインが成功すること 42 テスト設計とテスト技法
  15. • 以下のパターンの場合、ログインが失敗すること • パスワードが7文字以下の場合 (7文字) • パスワードが101文字以上の場合 (101文字) 手順 1..com

    ログイン画面を開き、(ログイン名フィールドにログイン名を入力する) 2.パスワードフィールドに以下のデータパターンの文字数で入力を行う 1. 7文字 2. 101文字 3. ログインボタンを押下する 期待結果 3. ログインが失敗し、「〇〇〇〇〇〇」のエラーが表示されること 観点 : 条件を満たさないときログインが失敗すること 43 テスト設計とテスト技法