MENU
未経験からテストエンジニアへ! click!!

JSTQB FL シラバス2023解説【第 1 章:テストの基礎】

当ページのリンクには広告が含まれています。
JSTQBシラバス解説1
  • URLをコピーしました!

PR

テストエンジニア大学
迷い人

JSTQB FL(FoundationLevel)のシラバスって難しくて初心者には難しいです。。
テスト経験が豊富且つJSTQB FL(FoundationLevel)の資格を持っている人にJSTQB FL シラバスを解説してほしい!

アオパパ学長

JSTQB FL(FoundationLevel)のシラバスは英語の文書を翻訳しているので少し読み辛い所もありますよね。

私はテスト経験が豊富且つJSTQB FL(FoundationLevel)の資格を持っている人なのでJSTQB FL シラバスを解説しますね!

こちらの記事では「第 1 章:テストの基礎」について解説していきます。

【この記事を書いた人】


アオパパ

私はテストエンジニアとしての経験が豊富で、以下の実績があります。
・テストエンジニア歴15年以上
・現役のテストリーダーとしての経験
・テストエンジニアの採用担当経験
・ソフトウェアテストの資格「JSTQB Foundation Level」保持
・テスターから派遣社員としてのキャリアチェンジ経験
これらの経験をもとに、信憑性の高い情報提供を心掛けております。

この記事の対象読者
・最新のシラバス「2023V4.0.J01」に対応した解説を探している
・JSTQB FL(FoundationLevel)のシラバスを勉強しようと思っている
・JSTQB FL(FoundationLevel)のシラバスの勉強方法が知りたい
・JSTQB FL(FoundationLevel)のシラバスを勉強しているけど意味がわからない
・JSTQB FL(FoundationLevel)のシラバスの問題集を探している

目次

JSTQB FL シラバスの解説の前に・・・

JSTQB FL シラバスの解説の前にシラバスの勉強方法をレクチャーしますね。

ほとんどの人が読み飛ばしてしまう箇所に大事な大切なことが書かれています。

0.5 試験対象の学習の目的と知識レベル

学習の目的はビジネス成果を支援し、テスト技術者資格制度 Foundation Level の試験問題作成を行うた
めに使用する。
全体を通して、本シラバスの 1 章から 6 章のすべての内容は、K1 レベルで試験対象である。つまり、受
験志願者は本シラバスの 6 つの章で説明されているキーワードと概念について認識し、記憶し、想起す
ることになる。本シラバスでは各章の先頭で以下の分類にて「学習の目的」を示している。
⚫ K1:記憶
⚫ K2:理解
⚫ K3:適用
学習の目的の詳細と例は付録Aに添付する。各章の章見出しの下にキーワードとしてリストアップされて
いるすべての用語の定義は、「学習の目的」には明示的に述べられていないとしても「記憶」しておく
べき(K1)レベルとなる。

出典: ISTQBテスト技術者資格制度 Foundation Level シラバス 日本語版 Version 2023V4.0.J01

上記の文章より、JSTQB Foundation Level の試験問題は学習の目的に沿って作成されることがわかりますね。
なので学習の目的をしっかりと確認・把握した上でシラバスを読み込み理解していく必要があります。

こちらの記事内のシラバス解説では学習の目的に沿って作成しています。
以下の3STEPを各章ごとに実施していくとスムーズに勉強できます。

STEP
学習の目的を確認・理解する。
STEP
解説を確認・理解する。

input

STEP
すぐに練習問題を実施する。

output

STEP
ISTQBが発行しているサンプル問題を実施する。

JSTQB Foundation Levelの詳細は以下の記事で解説しています。

第 1 章:テストの基礎の学習テーマ

第1章のテーマは以下になっています。
●テストに関わる基本的な原理、テストが必要となる理由、テスト目的について学ぶ。
●テストプロセス、主なテスト活動、テストウェアを理解する。
●テストに必要不可欠なスキルを理解する。

第 1 章:テストの基礎の学習の目的

第 1 章の学習の目的は以下になっています。
1.1 テストとは何か?
FL-1.1.1 (K1)典型的なテスト目的を識別する。
FL-1.1.2 (K2)デバッグとテストを区別する。
1.2 なぜテストが必要か?
FL-1.2.1 (K2)テストが必要な理由を例示する。
FL-1.2.2 (K1)テストと品質保証の関係を想起する。
FL-1.2.3 (K2)根本原因、エラー、欠陥、故障を区別する。
1.3 テストの原則
FL-1.3.1 (K2)テストにおける 7 原則を説明する。
1.4 テスト活動、テストウェア、そして役割
FL-1.4.1 (K2)さまざまなテスト活動とタスクを要約する。
FL-1.4.2 (K2)テストを取り巻くコンテキストがテストプロセスに与える影響を説明する。
FL-1.4.3 (K2)テスト活動を支援する多くのテストウェアを区別する。
FL-1.4.4 (K2)トレーサビリティを維持することの価値を説明する。
FL-1.4.5 (K2)テストにおけるさまざまな役割を比較する。
1.5 テストに必要不可欠なスキルとよい実践例
FL-1.5.1 (K2)テストを行うために求められる一般的なスキルについて例を挙げる。
FL-1.5.2 (K1)チーム全体アプローチの利点を想起する。
FL-1.5.3 (K2)テストの独立性の長所と短所を区別する。

1.1 テストとは何か?

FL-1.1.1 (K1)典型的なテスト目的を識別する。

テストを行う主な理由や目的は、以下のようなものがあります:

  1. 作業成果物の評価:テストは、要件やユーザーストーリー、設計、コードなど、ソフトウェア開発の過程で作成されるさまざまな成果物を評価するために行われます。
  2. 欠陥の発見:テストの一つの大きな目的は、ソフトウェアに存在する欠陥やバグを見つけることです。
  3. カバレッジの確保:テストを通じて、ソフトウェアのすべての部分が適切にテストされていることを確認します。
  4. リスクの低減:ソフトウェアの品質が不十分な場合のリスクを下げるためにテストが行われます。
  5. 要件の検証:テストは、ソフトウェアが仕様や要件に従って正しく動作しているかを確認するために行われます。
  6. 法律や規制の遵守:ソフトウェアが契約や法律、規制などの要件を満たしているかを確認するためのテストもあります。
  7. 情報提供:テストは、ステークホルダーにソフトウェアの品質や状態に関する情報を提供するために行われます。
  8. 信頼の構築:テストを通じて、ソフトウェアの品質に対する信頼を積み上げることができます。
  9. 妥当性の確認:テストは、ソフトウェアが期待通りに動作するかどうかを確認するために行われます。

ただし、テストの目的は、テスト対象やテストのレベル、リスク、ソフトウェア開発の方法、ビジネスの背景など、さまざまな要因によって異なることがあります。

筆者

筆者の見解
テストは単にソフトウェアのバグを見つけるだけではありません。
それは、品質の高いソフトウェアを提供するための重要なプロセスの一部です。
テストを通じて、開発チームはソフトウェアの弱点や問題点を早期に特定し、修正することができます。
また、テストはステークホルダーやエンドユーザーにソフトウェアの品質や信頼性に関する情報を提供する重要な手段でもあります。
私の経験から言うと、しっかりとしたテストプロセスを持つことは、ソフトウェア開発プロジェクトの成功に不可欠です。

FL-1.1.2 (K2)デバッグとテストを区別する。

テストとデバッグは、ソフトウェア開発の中で行われる異なる活動です。

  1. テスト:
    • 目的: ソフトウェアの欠陥を発見すること。
    • 動的テスト: ソフトウェアを実行して、欠陥による故障を発生させるテスト方法。
    • 静的テスト: ソフトウェアを実行せずに、コードやドキュメントを直接調査して欠陥を発見する方法。
  2. デバッグ:
    • 目的: 故障の原因(欠陥)を特定し、それを修正すること。
    • 手順:
      1. 故障の再現: 故障を確認する。
      2. 診断: 故障の根本原因を特定する。
      3. 修正: 原因となる欠陥を修正する。

デバッグの後、確認テストを行い、修正が正しく行われたかを確認します。
さらに、修正が他の部分に問題を引き起こしていないかを確認するためのリグレッションテストも実施されることがあります。

筆者

筆者の見解:
私は、テストとデバッグの違いを理解することが非常に重要だと感じています。
テストは、システムの品質を確保するための手段であり、欠陥を発見することが目的です。
一方、デバッグは、発見された欠陥の原因を特定し、それを修正するプロセスです。
両者は密接に関連していますが、それぞれ異なるスキルと知識が求められます。
初学者にとっては、これらの違いを明確に理解し、適切なタイミングでそれぞれの活動を行うことが、効果的なソフトウェア開発の鍵となります。

1.2 なぜテストが必要か?

FL-1.2.1 (K2)テストが必要な理由を例示する。

テストが必要な理由:

  1. 欠陥の検出と品質向上
    テストは、ソフトウェアや製品に存在する欠陥を見つけるための効果的な方法です。これらの欠陥を検出し、デバッグ(テストとは異なる活動)を通じて修正することで、製品の品質が向上します。
  2. 品質の評価
    ソフトウェア開発ライフサイクル(SDLC)の様々な段階で、テストは品質を直接評価する手段として機能します。この評価結果は、プロジェクト全体の管理や、次の開発段階への移行の判断などに役立ちます。
  3. ユーザーの視点の提供
    テストは、製品が実際にユーザーに使用される状況を模倣することができます。テスト担当者は、開発の過程でユーザーのニーズが適切に考慮されているかを確認します。理想的には、実際のユーザーを開発プロジェクトに関与させるのが最良ですが、これはコストがかかるため、また適切なユーザーを見つけるのが難しいため、通常は実現しづらいです。
  4. 契約や法律の要件の満足
    いくつかのケースでは、テストは契約や法律の要件を満たすため、または特定の規制基準に準拠するために行われます。
筆者

筆者の見解:
テストは、ソフトウェア開発の非常に重要な部分です。
それは単に欠陥を見つけるためだけではなく、製品の品質を確保し、ユーザーの期待に応えるためのものです。
また、テストは開発チームにユーザーの視点を提供し、製品が実際の使用環境でどのように動作するかの洞察を与えます。
契約や法律の要件を満たすためのテストは、製品が特定の基準や規制に準拠していることを確認するためのもので、これにより企業は法的な問題を避けることができます。
全体として、テストは製品の成功とユーザーの信頼を確保するための不可欠なステップです。

FL-1.2.2 (K1)テストと品質保証の関係を想起する。

「テスト」と「品質保証」(QA)は、しばしば同じ意味で使われることがありますが、実際には異なる概念です。

  1. テスト:
    • テストは、品質コントロール(QC)の一部として行われる活動です。
    • QCは、製品の品質を確保するための活動に焦点を当てています。これは、製品が期待通りの品質を持っているかを確認するためのアプローチです。
    • テストはQCの主要な方法の一つで、他にも形式的手法やシミュレーション、プロトタイピングなどの方法があります。
  2. 品質保証(QA):
    • QAは、プロセスの品質を確保するための活動に焦点を当てています。
    • これは、良いプロセスが正しく実施されれば、良い製品が生まれるという考え方に基づいています。
    • QAは、開発プロセスとテストプロセスの両方に適用され、プロジェクトに関与するすべての人がその責任を持っています。

テストの結果は、品質の確保(QC)と品質保証(QA)の両方で使用されます。QCでは、欠陥を修正するために使用され、QAでは、開発とテストのプロセスがどれだけうまく機能しているかのフィードバックとして使用されます。

筆者

筆者の見解:
テストと品質保証は、品質を確保するための異なるアプローチを持っていますが、両方とも非常に重要です。
テストは、製品が期待通りに動作するかを確認するための具体的な手段を提供します。
一方、品質保証は、製品の品質を確保するためのプロセスや手順を改善することに焦点を当てています。
両方のアプローチが適切に実施されることで、高品質の製品を効率的に提供することができます。

FL-1.2.3 (K2)根本原因、エラー、欠陥、故障を区別する。

  1. エラー(誤り):人間が行う作業中に起こるミスや誤りのこと。例えば、プログラムを書いているときに、間違ったコードを書いてしまうこと。人はさまざまな理由(疲れ、トレーニング不足、時間的なプレッシャーなど)でエラーを起こすことがあります。
  2. 欠陥(フォールト、バグ):エラーが原因で生じるソフトウェアやドキュメントの問題点。例えば、要件仕様書やソースコードに間違いがある場合。欠陥は、特定の状況下でしか故障にならないものや、絶対に故障にならないものも含まれます。
  3. 故障:システムが正しく動作しない状態。欠陥が原因で起こることが多いが、環境条件(例:放射線や電磁波)によっても発生することがある。
  4. 根本原因:問題が発生する最も深い理由。例えば、なぜエラーが起こったのか、なぜ欠陥が生じたのかを探るときに、その背後にある主要な要因を指します。根本原因分析を行うことで、同様の問題を未来に防ぐための対策を考えることができます。
筆者

筆者の見解:
ソフトウェア開発の過程で、エラーや欠陥は避けられないものとして受け入れられています。
しかし、それらの背後にある根本原因を理解し、適切な対策を講じることで、品質の高いソフトウェアを提供することが可能となります。
特に、根本原因分析は問題の再発を防ぐための重要なステップであり、開発チーム全体が参加して行うことで、より効果的な結果を得ることができると考えられます。

練習問題

問題1:
ソフトウェア開発の過程で、人間が時間的なプレッシャーや疲れ、トレーニング不足などの理由で起こすミスや誤りを何と呼ぶか?

A) 欠陥

B) 故障

C) 根本原因

D) エラー

正解: D) エラー

1.3 テストの原則

FL-1.3.1 (K2)テストにおける 7 原則を説明する。

テストにおける7つの原則の説明:

  1. テストは欠陥があることは示せるが、欠陥がないことは示せない
    • テストはソフトウェアに問題があるかどうかを示すことができますが、完全に問題がないことを100%確認することはできません。
  2. 全数テストは不可能
    • すべてのシナリオや条件をテストすることは現実的ではありません。そのため、重要な部分やリスクが高い部分に焦点を当ててテストする必要があります。
  3. 早期テストで時間とコストを節約
    • プロジェクトの初期段階でのテストは、後の段階での問題やコストを削減するのに役立ちます。
  4. 欠陥の偏在
    • 一部のシステムコンポーネントには多くの問題が集中していることが多いです。これを理解することで、テストの効率を向上させることができます。
  5. テストの弱化
    • 同じテストを繰り返すと、新しい問題を見つける能力が低下します。そのため、テストの変更や新しいテストの追加が必要です。
  6. テストはコンテキスト次第
    • テストの方法やアプローチは、プロジェクトや状況によって異なります。
  7. 「欠陥ゼロ」の落とし穴
    • ソフトウェアが完全に問題がないと考えることは危険です。ユーザーのニーズやビジネスの目標を満たすためには、ただテストするだけでは不十分です。
筆者

筆者の見解:
テストにおけるこれらの原則は、ソフトウェア開発の現場での経験や知識を基にしています。
これらの原則を理解し、適切に適用することで、テストの効率や品質を向上させることができます。
特に、早期テストやテストの弱化、コンテキストに応じたテストのアプローチなどは、実際のプロジェクトでのテストの効果を大きく左右する要因となります。
初学者にとっては、これらの原則を理解し、実際のテスト活動に取り入れることで、より効果的なテストを行うことができるでしょう。

練習問題

問題1:
以下の選択肢の中から、テストにおける原則として正しいものを選びなさい。

a) テストはソフトウェアに欠陥がないことを100%確認できる。

b) すべてのシナリオや条件をテストすることは現実的である。

c) テストは欠陥があることは示せるが、欠陥がないことは示せない。

d) テストの方法やアプローチは、プロジェクトや状況に関係なく常に同じである。

正解: c) テストは欠陥があることは示せるが、欠陥がないことは示せない。

問題2:
「全数テストは不可能」という原則に基づいて、テストの際にどのようなアプローチを取るべきか?

a) すべてのテストケースを実行する。

b) テストケースの優先順位付けやリスクベースドテストを用いる。

c) テストは不要である。

d) 一部のテストケースのみをランダムに選んで実行する。

正解: b) テストケースの優先順位付けやリスクベースドテストを用いる。

問題3:
プロジェクトのどの段階でテストを開始すると、時間とコストを節約できるとされているか?

a) プロジェクトの最終段階

b) プロジェクトの中間段階

c) プロジェクトの初期段階

d) プロジェクトの終了後

正解: c) プロジェクトの初期段階

問題4:
「テストの弱化」とは何を意味するか?

a) テストが弱いということ。

b) 同じテストを何回も繰り返すと、新たな欠陥の検出に対する効果が低下すること。

c) テストが不要であること。

d) テストの結果が不正確であること。

正解: b) 同じテストを何回も繰り返すと、新たな欠陥の検出に対する効果が低下すること。

1.4 テスト活動、テストウェア、そして役割

FL-1.4.1 (K2)さまざまなテスト活動とタスクを要約する。

テストプロセスの要点説明:

  1. テストプロセスの構成:
    • テストプロセスは、さまざまな主要な活動のグループで構成されます。これらの活動は、順番に行われるように見えますが、実際には繰り返しや同時に行われることが多いです。
  2. テスト計画:
    • テストの目的を定義し、その目的を最も効果的に達成する方法を選択します。詳細は5.1節で説明されています。
  3. テストのモニタリングとコントロール:
    • テスト活動を継続的にチェックし、進捗をテスト計画と比較します。目的を達成するための行動も取り入れます。詳細は5.3節で説明されています。
  4. テスト分析:
    • テストの基盤を分析し、テスト可能な特徴やテスト条件を定義します。テスト技術を使用して「何をテストするか?」を決定します。
  5. テスト設計:
    • テスト条件をテストケースやその他のテストウェアに変換します。「どのようにテストするか?」を決定します。
  6. テスト実装:
    • テスト実行に必要なテストウェアを作成または取得します。テスト環境を構築し、正しく設定されていることを確認します。
  7. テスト実行:
    • テスト実行スケジュールに従ってテストを行います。テスト結果は、期待される結果と比較されます。
  8. テスト完了の活動:
    • プロジェクトの重要な段階で行われ、未解決の問題や変更要求に対応します。テスト活動を分析し、教訓や改善点を識別します。
筆者

筆者の見解:
テストプロセスは、品質の高いソフトウェアを提供するための不可欠なステップです。
これらの活動を通じて、欠陥や問題点を早期に特定し、修正することができます。
特にテスト計画やテスト分析は、テストの方向性を明確にし、効果的なテストを行うための基盤を築く重要なステップです。
また、テストのモニタリングとコントロールは、テストの進捗を確認し、必要に応じて調整を行うためのキーとなる活動です。
全体として、これらのプロセスは、ソフトウェアの品質を確保し、ユーザーに安全で信頼性の高い製品を提供するための基盤を築くものです。

練習問題

問題1:
テスト計画の主な目的は何ですか?

A) テストの目的を達成するための行動を取る。

B) テストの基盤を分析し、テスト可能な特徴を特定する。

C) テストの目的を定義し、その目的を最も効果的に達成する方法を選択する。

D) テスト結果を記録し、不正を分析する。

正解:
C) テストの目的を定義し、その目的を最も効果的に達成する方法を選択する。

根拠: 「テスト計画は、テスト目的を定義することと、その後に全体のコンテキストにより課せられた制約下において目的を最も効果的に達成するアプローチを選択することから構成される。」

問題2:
テスト分析の活動では、何を支援するためにテスト技術を使用することが多いですか?

A) テスト結果の記録

B) テストの目的の定義

C) テストベースの分析とテスト可能なフィーチャーの識別

D) テスト環境の構築

正解:
C) テストベースの分析とテスト可能なフィーチャーの識別

根拠: 「テスト分析は、テストベースを分析して、テスト可能なフィーチャーを識別し、関連するテスト条件を定義して優先順位を付けるとともに、関連するリスクとリスクレベルを分析することを含む」。

FL-1.4.2 (K2)テストを取り巻くコンテキストがテストプロセスに与える影響を説明する。

テストは、開発の一部として行われる活動です。つまり、ソフトウェアやアプリケーションを作成する過程の中で、その品質を確認するためのステップとしてテストが行われます。このテストの方法やアプローチは、さまざまな要因によって変わることがあります。

  1. ステークホルダー: これはプロジェクトに関わる人々のことを指します。彼らのニーズや期待、要件などによって、テストの方法が変わることがあります。
  2. チームメンバー: チームのスキルや経験、トレーニングの必要性などによって、テストのアプローチが変わることがあります。
  3. ビジネスドメイン: これはテストする製品やサービスの業界や分野のことを指します。このドメインの重要性やリスク、市場のニーズなどによって、テストの方法が変わることがあります。
  4. 技術的要因: 使用するソフトウェアの種類やアーキテクチャ、技術などによって、テストの方法が変わることがあります。
  5. プロジェクトの制約: プロジェクトのスコープや時間、予算などの制約によって、テストのアプローチが変わることがあります。
  6. 組織的要因: 組織の構造やポリシー、実践例などによって、テストの方法が変わることがあります。
  7. ソフトウェア開発ライフサイクル: 開発の方法や実践例によって、テストのアプローチが変わることがあります。
  8. ツール: 使用するツールの利用可能性や使用性、標準適合性などによって、テストの方法が変わることがあります。

これらの要因は、テストの戦略や技法、自動化の度合い、ドキュメントの詳細度、レポート作成など、テストに関する多くの点で影響を与えます。

筆者

筆者の見解:
テストは単なる技術的な活動ではなく、ビジネス、組織、技術などの多くの要因に影響を受ける複雑なプロセスです。

これを理解することで、テストの真の価値やその重要性をより深く認識することができます。

テストは、品質を確保するためだけでなく、ステークホルダーのニーズを満たすための手段としても行われます。

したがって、テストのアプローチや方法は、上記の要因を考慮して適切に選択する必要があります。

練習問題

問題1:
テスト活動がどのように行われるかは、どのような要因に依存しますか?

A. ステークホルダーの協力の意思とソフトウェアの種類

B. チームメンバーの空き状況とビジネスドメインの特定の法的規制

C. プロジェクトのスコープと組織の構造

D. ソフトウェア開発ライフサイクルのエンジニアリングの実践例とツールの使用性

正解: A, B, C, D

問題2:
テストの最終ゴールは何ですか?

A. チームメンバーのスキルを向上させること
B. プロジェクトの制約を最小限にすること
C. ステークホルダーのビジネスニーズの充足を支援すること
D. ソフトウェアの種類を特定すること

正解: C
根拠: “テストはステークホルダーによって資金提供され、その最終ゴールは、ステークホルダーのビジネスニーズの充足を支援することである。”

FL-1.4.3 (K2)テスト活動を支援する多くのテストウェアを区別する。

テストウェアの説明:

テストウェアは、テスト活動を行う際に作成されるさまざまな作業成果物を指します。これらの作業成果物は、テストの各段階で必要となるもので、組織やプロジェクトによってその内容や形式が異なることがあります。以下に、主なテストウェアの種類とその内容を示します:

  • テスト計画の作業成果物:テストの全体的な計画やスケジュール、リスクの一覧や評価、テストを開始や終了するための基準などが含まれます。
  • テストのモニタリングとコントロールの作業成果物:テストの進行状況やリスク情報、コントロールの指示などが文書化されています。
  • テスト分析の作業成果物:テスト条件やテストベース内の欠陥に関する報告などが含まれます。
  • テスト設計の作業成果物:具体的なテストケースやテストデータ、テスト環境の要件などがまとめられています。
  • テスト実装の作業成果物:テストの手順や自動テストのスクリプト、テストデータ、テスト環境などが含まれます。
  • テスト実行の作業成果物:テストの結果や発見された欠陥に関する報告などがまとめられています。
  • テスト完了の作業成果物:テストの終了報告や得られた教訓、改善のための提案などが含まれます。
筆者

筆者の見解:
テストウェアは、テストプロセスを効果的に進めるための重要なツールとして機能します。

それぞれの作業成果物は、テストの各段階での活動を明確にし、品質を確保するための基盤となります。

特に、テスト計画やテスト結果の文書化は、プロジェクトの進行状況を把握し、関係者とのコミュニケーションを円滑にするために不可欠です。

また、テストウェアを適切に管理することで、テスト活動の一貫性と整合性を確保することができ、高品質なソフトウェアの開発に貢献します。

練習問題

問題1:
テストウェアの中で、テストの進行状況やリスク情報、コントロールの指示などが文書化されている作業成果物は何でしょうか?

A. テスト計画の作業成果物

B. テストのモニタリングとコントロールの作業成果物

C. テスト分析の作業成果物

D. テスト実装の作業成果物

正解: B. テストのモニタリングとコントロールの作業成果物
根拠: 「テストのモニタリングとコントロールの作業成果物には、テストの進行状況やリスク情報、コントロールの指示などが文書化されています。」

問題2:
テスト実装の作業成果物には、テストの手順や自動テストのスクリプトの他に、何が含まれていますか?

A. テスト結果記録および欠陥レポート

B. テストデータ、テスト実行スケジュール、およびテスト環境

C. テスト完了レポート、後続するプロジェクトのアクションアイテム

D. テスト条件、およびテストベース内の欠陥についての欠陥レポート

正解: B. テストデータ、テスト実行スケジュール、およびテスト環境
根拠: 「テスト実装の作業成果物には、テストプロシジャー、自動テストスクリプト、テストスイート、テストデータ、テスト実行スケジュール、およびテスト環境が含まれる。」

FL-1.4.4 (K2)トレーサビリティを維持することの価値を説明する。

トレーサビリティの価値についての説明:

トレーサビリティとは、テストの各段階や要素がどのように関連しているかを明確にすることです。具体的には、テストの基盤となる要素(テストベース)と、それに関連するテストウェア(テスト条件、リスク、テストケースなど)、テストの結果、そして見つけた欠陥との関係をしっかりとつなげることを指します。

このトレーサビリティがあると、以下のような利点があります:

  1. カバレッジの評価:トレーサビリティは、テストがどの程度の範囲をカバーしているか(カバレッジ)を評価するのに役立ちます。例えば、テストケースと要件の関連性を確認することで、特定の要件がテストケースできちんとテストされているかを確認できます。
  2. リスクの評価:テスト結果とリスクの関連性を通じて、テスト対象の残存リスクのレベルを評価することができます。
  3. 変更の影響の判断:トレーサビリティがあると、何か変更があったときにその影響を判断しやすくなります。
  4. テストの監査の容易化:トレーサビリティは、テストの監査を行う際に、どの要素がどのように関連しているかを明確にするので、監査が容易になります。
  5. 情報の提供:トレーサビリティは、プロダクトの品質やプロジェクトの進捗に関する情報を提供し、ステークホルダーにテストの技術的な側面をわかりやすく伝えるのに役立ちます。
筆者

筆者の見解:
トレーサビリティは、テストの透明性と整合性を保つための非常に重要な要素です。

それにより、テストの全体的な流れや、各要素がどのように関連しているかを一目で理解することができます。

特に大規模なプロジェクトや複数のチームが関与する場合、トレーサビリティがしっかりと確立されていると、コミュニケーションの効率が向上し、誤解やミスを防ぐことができます。

練習問題

問題1:
トレーサビリティを確立および維持することの主な目的は何ですか?

A. テストの技術的な側面をステークホルダーに伝えるため

B. テストケースと要件の関連性を確認し、要件がテストケースでカバーされているかを検証するため

C. テストの監査を行う際のコストを削減するため

D. テストベースの各要素の状況を含めることで、テスト進捗や完了レポートをよりわかりやすくするため

正解: B. テストケースと要件の関連性を確認し、要件がテストケースでカバーされているかを検証するため
根拠: “テストケースと要件のトレーサビリティにより、要件がテストケースでカバーされていることを検証することができる。”

問題2:
優れたトレーサビリティがある場合、どのような利点が得られるとされていますか?

A. テストの技術的な側面をステークホルダーにわかりやすく伝えることができる。

B. テストベースの各要素の状況を含めることで、テスト進捗や完了レポートをよりわかりやすくする。

C. テストの監査を容易にし、IT ガバナンスの基準を満たすのに役立つ。

D. すべての上記

正解: D. すべての上記
根拠: “優れたトレーサビリティは、変更の影響を判断することができ、テストの監査を容易にし、IT ガバナンスの基準を満たすのに役立つ。また、テストベースの各要素の状況を含めることで、テスト進捗や完了レポートをよりわかりやすくする。テストの技術的な側面をステークホルダーにわかりやすく伝えることにも役立つ。”

FL-1.4.5 (K2)テストにおけるさまざまな役割を比較する。

テストには主に2つの役割があります。一つは「テストをする役割」、もう一つは「テストマネジメントをする役割」です。

  1. テストマネジメントをする役割:
    • この役割はテストの全体的な管理やリーダーシップを担当します。
    • 主な活動はテスト計画の作成、テストの進行状況のモニタリングとコントロール、そしてテストが完了したときの活動に焦点を当てています。
    • この役割の具体的なタスクは状況によって異なります。例として、アジャイルソフトウェア開発の環境では、テストマネジメントの一部のタスクはアジャイルチームが担当することがあります。しかし、複数のチームや組織をまたがる大きなタスクは、専門のテストマネージャーが担当することもあります。
  2. テストをする役割:
    • この役割はテストの技術的な側面を担当します。
    • 主な活動はテストの分析、設計、実装、そして実行に重点を置いています。
    • さまざまな人がこの役割を担うことがあります。例えば、テストの管理タスクはチームリーダーやテストマネージャー、時には開発マネージャーが行うことがあります。また、一人の人がテストとテストマネジメントの両方の役割を同時に担うことも考えられます。
筆者

筆者の見解:
テストの役割は非常に重要で、プロジェクトの成功に直接的な影響を与えます。

テストマネジメントとテスト実行の役割は異なるスキルセットと知識を要求されるため、それぞれの役割を理解し、適切な人材を配置することが必要です。

特に大規模なプロジェクトや複数のチームが関与する場合、役割の明確化と適切な人材の配置はプロジェクトの品質と効率を向上させる鍵となります。

練習問題

問題1:
テストにおける2つの主要な役割として、どのようなものが取り上げられていますか?

A. テスト計画とテスト実行

B. テストをする役割とテストマネジメントをする役割

C. テスト分析とテスト設計

D. テストモニタリングとテスト完了

正解: B
根拠: 本シラバスでは、テストにおける 2 つの主要な役割である、テストをする役割とテストマネジメントをする役割を取り上げる。

問題2:
アジャイルソフトウェア開発の環境では、テストマネジメントのタスクの一部をどのチームが担当することがあるか?

A. 開発チーム

B. アジャイルチーム

C. テストチーム

D. プロダクトチーム

正解: B
根拠: 例えば、アジャイルソフトウェア開発では、テストマネジメントのタスクの一部をアジャイルチームが担当することがある。

1.5 テストに必要不可欠なスキルとよい実践例

FL-1.5.1 (K2)テストを行うために求められる一般的なスキルについて例を挙げる。

テストを行う際には、特定のスキルや知識が求められます。以下は、テスト担当者にとって特に重要なスキルや知識の一部です:

  1. テスト知識:テスト技法を活用して、テストの有効性を高めることができます。
  2. 徹底さ、慎重さ、好奇心、細部へのこだわり、理路整然さ:これらの特質は、特に発見しにくい欠陥を見つけるために役立ちます。
  3. コミュニケーションスキル、積極的な傾聴、チームプレーヤー:すべての関係者と効果的にコミュニケーションをとることができ、欠陥を報告し議論するためには、これらのスキルが必要です。
  4. 分析的思考、批判的思考、創造性:これらの思考方法を持つことで、テストの有効性をさらに高めることができます。
  5. 技術的な知識:適切なテストツールを使用することで、テストの効率を向上させることができます。
  6. ドメイン知識:エンドユーザーやビジネス側の代表者を理解し、彼らとコミュニケーションをとるためには、この知識が必要です。

テスト担当者は、しばしば「悪い知らせ」を伝える役割を持っています。
人は、悪い知らせを伝える人を非難することがあります。
そのため、テスト担当者としては、コミュニケーションスキルが非常に重要です。
テスト結果を伝える際には、それがプロダクトやその作成者への批判と受け取られないように注意が必要です。欠陥や故障に関する情報は、建設的な方法で伝えるべきです。

筆者

筆者の見解
テストは、単にソフトウェアや製品の欠陥を見つけるだけの活動ではありません。

それは、製品の品質を確保し、エンドユーザーに最高の体験を提供するための重要なステップです。
テスト担当者が持つべきスキルや知識は、この目的を達成するためのものです。

特に、コミュニケーションスキルは、テストの結果や発見した欠陥を効果的に伝えるために不可欠です。テスト担当者は、チームの一員として、製品の品質向上に貢献する重要な役割を果たしています。

練習問題

問題1:
テスト担当者が持つべき汎用的なスキルとして、以下のうちどれが含まれていないか?

A. テスト知識

B. 優れたコミュニケーションスキル

C. 積極的な傾聴

D. 高速なタイピングスキル

正解: D
根拠: 「汎用的ではあるが、テスト担当者に特に関連するスキルとして以下のようなものがある:⚫ テスト知識… ⚫ 優れたコミュニケーションスキル、積極的な傾聴…」より、高速なタイピングスキルに関する記載はありません。

問題2:
テスト担当者が「悪い知らせ」を伝える際に注意すべきことは何ですか?

A. テスト結果をプロダクトやその作成者への批判と受け取られないようにする

B. テスト結果を速やかに伝える

C. テスト結果を隠す

D. テスト結果を誇張する

正解: A
根拠: 「テスト結果を伝えると、プロダクトやその作成者に対する批判と受け取られる可能性がある。」より、テスト結果を伝える際には、それがプロダクトやその作成者への批判と受け取られないように注意が必要です。

FL-1.5.2 (K1)チーム全体アプローチの利点を想起する。

チーム全体アプローチとは?
チーム全体アプローチは、エクストリームプログラミングに由来する考え方で、チームの全員が品質に対して責任を持つというアプローチです。
この考え方では、チームメンバーは特定の役割に縛られず、必要な知識とスキルを持っていればどの仕事でも行うことができます。

その利点は?

  1. 情報伝達とコラボレーションの強化:チームメンバーが同じワークスペースを共有することで、情報の伝達や相互作用が活性化されます。
  2. チームダイナミクスの向上:チーム全体アプローチは、チームの協力と連携を強化し、さまざまなスキルセットをプロジェクトの利益のために活用することができます。
  3. テスト担当者の役割の拡大:テスト担当者は、他のチームメンバーとの連携を深めることで、品質レベルの達成をサポートし、テストに関する知識を広めることができます。

ただし、すべてのコンテキストでチーム全体アプローチが適切であるわけではありません。例えば、セーフティクリティカルな状況では、高いレベルのテストの独立性が求められることがあります。

筆者

筆者の見解:
チーム全体アプローチは、現代のアジャイルな開発環境において非常に効果的な方法として認識されています。

特に、迅速に変化する要件や環境に対応するためには、チームメンバー間の柔軟性やコラボレーションが不可欠です。

しかし、このアプローチを採用する際には、チームの文化やコンテキストを考慮することが重要です。

適切な状況と環境で適切に実施されれば、プロジェクトの成功に大きく寄与することができるでしょう。

問題1:
エクストリームプログラミングに由来する「チーム全体アプローチ」に関して、以下の選択肢の中から正しいものを選びなさい。

A. チーム全体アプローチでは、特定の役割に縛られず、必要な知識とスキルを持つチームメンバーはどの仕事でも行うことができる。

B. チーム全体アプローチは、エクストリームプログラミングとは関係なく独自に発展した考え方である。

C. チーム全体アプローチでは、情報伝達や相互作用は重要視されていない。

D. チーム全体アプローチは、チームメンバーが異なるワークスペースで働くことを推奨している。

正解: A
根拠: 「チーム全体アプローチでは、必要な知識とスキルを持つチームメンバーであれば、どの仕事を行ってもよく、全員が品質に対して責任を持つ。」

問題2:
テスト担当者がチーム全体アプローチを採用する際の役割に関して、以下の選択肢の中から正しいものを選びなさい。

A. テスト担当者は、他のチームメンバーとの連携を避けるべきである。

B. テスト担当者は、テストに関する知識を他のチームメンバーに広めることができる。

C. テスト担当者は、ビジネス側の代表者と協力して受け入れテストを無視することを推奨している。

D. テスト担当者は、テストの独立性を重視し、チーム全体アプローチを採用しない方が良い。

正解: B
根拠: 「テスト担当者は、こうしてテストに関する知識を他のチームメンバーに広めることができ、プロダクトの開発に影響を与えることができる。」

FL-1.5.3 (K2)テストの独立性の長所と短所を区別する。

テストの独立性とは、テストを行う人が開発を行った人とは異なる、つまりテスト担当者が開発者とは別の立場でテストを行うことを指します。この独立性には、以下のような長所と短所があります。

長所:

  1. 異なる視点でのテスト: テスト担当者は開発者とは異なる経歴や技術的視点、バイアスを持っているため、開発者が見逃してしまうような異なる種類の故障や欠陥を見つけることができます。
  2. 仮定の検証: テスト担当者は、システムの仕様策定や実装時に設定された仮定を検証し、異議を唱えることができます。

短所:

  1. 協調性の欠如: テスト担当者が開発チームから孤立してしまうと、情報伝達の問題や開発チームとの関係が悪化する可能性があります。
  2. 品質に対する責任感の喪失: 開発者がテストを他者に任せることで、自らの品質に対する責任感を失うことがあります。
  3. ボトルネックの認識: 独立したテスト担当者がリリースの遅れの原因として見られることがあります。
筆者

筆者の見解:
テストの独立性は、品質を確保する上で非常に重要な要素です。

異なる視点からのテストは、多様な問題点を発見するのに役立ちます。

しかし、独立性を持たせることで生じるコミュニケーションの問題や責任感の喪失は、プロジェクトの進行に悪影響を及ぼす可能性があります。

そのため、独立性を持たせる際には、開発者とテスト担当者のコミュニケーションを密にすることや、双方の役割と責任を明確にすることが重要です。

練習問題

問題1:
テストの独立性に関して、以下の選択肢の中から正しいものを選んでください。

A.テスト担当者は、開発者と比較して同じ種類の故障や欠陥を認識する可能性が高い。

B.独立したテスト担当者は、システムの仕様策定や実装の際にステークホルダーが設定した仮定を検証し、異議を唱えることができる。

C.独立したテスト担当者が開発チームとの関係が良好であることは、テストの独立性の欠点である。

D.開発者は自分のコードにある欠陥を発見することができない。

正解: B
根拠: 「独立したテスト担当者は、システムの仕様策定や実装の際にステークホルダーが設定した仮定を検証し、異議を唱え、あるいは反証することができる。」

問題2:
テストの独立性の欠点として、以下の選択肢の中から正しいものを選んでください。

A.テスト担当者が開発チームから孤立してしまい、情報伝達の問題や開発チームとの関係が悪化する可能性がある。

B.独立したテスト担当者は、開発者と比較して異なる種類の故障や欠陥を認識する可能性が低い。

C.テスト担当者は、システムの仕様策定や実装の際にステークホルダーが設定した仮定を検証することができない。

D.開発者はテストを他者に任せることで、自らの品質に対する責任感を高めることができる。

正解: A
根拠: 「独立したテスト担当者が開発チームから孤立してしまい、協調性の欠如、情報伝達の問題、または開発チームとの敵対関係に陥る可能性がある。」

おわりに

JSTQB FL シラバスを解説してきましたが、いかがでしたでしょうか?
シラバスを読むだけでは、頭に入ってこなですし、眠くなりますよね。

そうならない為の工夫として今回は各項目に練習問題を追加しました。
では次の章のJSTQB FL シラバス解説でお会いしましょう!

最後までご覧頂き、ありがとうございました。
良いテストエンジニアライフを!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次