<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ソフトウェアテスト - 株式会社QualityCube</title>
	<atom:link href="https://qualitycube.jp/category/blog/software-test/feed/" rel="self" type="application/rss+xml" />
	<link>https://qualitycube.jp</link>
	<description>ソフトウェア品質向上のプロフェッショナル</description>
	<lastBuildDate>Thu, 26 Feb 2026 08:14:00 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.7</generator>

<image>
	<url>https://qualitycube.jp/wp-content/uploads/2022/11/cropped-cropped-photo-02-1-32x32.png</url>
	<title>ソフトウェアテスト - 株式会社QualityCube</title>
	<link>https://qualitycube.jp</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ソフトウェアテストの全ノウハウ│IT初心者のための基本ガイド</title>
		<link>https://qualitycube.jp/2024/11/06/software-test/</link>
		
		<dc:creator><![CDATA[yamasaki]]></dc:creator>
		<pubDate>Wed, 06 Nov 2024 03:15:14 +0000</pubDate>
				<category><![CDATA[ソフトウェアテスト]]></category>
		<category><![CDATA[ブログ]]></category>
		<guid isPermaLink="false">https://qualitycube.jp/?p=24748</guid>

					<description><![CDATA[はじめに あなたは「ソフトウェアテスト」に対してどのようなイメージをお持ちだろうか。「難しい」といったイメージだろうか？それとも「よくわからない」といったイメージだろうか？ ソフトウェアには、“目に見えない” “触れることができない” “自…]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading"><strong>はじめに</strong></h2>



<figure class="wp-block-image aligncenter size-full"><img fetchpriority="high" decoding="async" width="565" height="371" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ①.jpg" alt="" class="wp-image-25272" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ①.jpg 565w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ①-300x197.jpg 300w" sizes="(max-width: 565px) 100vw, 565px" /></figure>



<p>あなたは「ソフトウェアテスト」に対してどのようなイメージをお持ちだろうか。「難しい」といったイメージだろうか？それとも「よくわからない」といったイメージだろうか？</p>



<p>ソフトウェアには、“目に見えない” “触れることができない” “自由度が高い（法律がない）” といった特徴があり、それだけでも「難しい」「わかりにくい」と思わせてしまう原因を作っているのだが、多人数で開発するときには、そこに “個人への依存度が高い” といった要素も出てくるため、個人差まで考慮しなければならなくなる。そのようなソフトウェアを相手に、“どのよう<strong>に</strong>テストをすればよいのだろうか？” また、“どのよう<strong>な</strong>テストをすればよいのだろうか？”</p>



<p>さて、現実に目を移すと、私たちの生活は好き好まずソフトウェアに依存している。スマートフォンのアプリからオンライン銀行、さらには医療機器の制御システムに至るまで、ソフトウェアがあらゆる場面で使われているのは皆さんもご承知のことだろう。このような状況であるため、もしもソフトウェアが正しく機能しなかった場合には、企業はユーザーに深刻な影響を及ぼしてしまいかねない。たとえば、オンライン銀行で不具合が発生した場合、ユーザーはお金の振込や引き出しができなくなるとともに、振込先の企業や、ひいては世の中全体に大きな影響を与えることとなり、その企業の信頼は、そのまま一直線に失墜してしまうといったリスクに迫られる。</p>



<p>このような背景からわかるとおり、ソフトウェアテストはシステム開発における品質管理の重要な要素となる。ソフトウェアが意図した通りに動作し、不具合や脆弱性がないことを確認するテストプロセスは、ユーザー体験を向上させるのみならず、企業のブランド価値を守るためにも<strong>正しく実施</strong>すべきこととして、肝に銘じておきたい。</p>



<p>本記事では、ソフトウェアテストの基本概念から様々なテスト技法、ドキュメント、プロセス、タイプ、ツール、定量的品質管理、はたまた新しい手法や原則に至るまで、初心者でも理解できるようなるべく平易な言葉を用いて解説する。さらに、具体的な事例や手順も交えて、より実践的な知識が得られる内容になることも目指す。長い記事になってしまったが、ブックマークをするなどして最後まで目を通していただければ幸いである。</p>



<h2 class="wp-block-heading"><strong>ソフトウェアテストの基本概念</strong></h2>



<figure class="wp-block-image aligncenter size-full"><img decoding="async" width="567" height="366" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像➁.jpg" alt="" class="wp-image-24750" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像➁.jpg 567w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像➁-300x194.jpg 300w" sizes="(max-width: 567px) 100vw, 567px" /></figure>



<ul class="wp-block-list">
<li><strong>ソフトウェアテストとは</strong></li>
</ul>



<p>ソフトウェアテストは、開発されたソフトウェアが顧客の要求、あるいは仕様に基づいて、正しく実装されているかどうかを確認するプロセスである。このプロセスは、製品をリリースするまでになるべく早期に不具合を発見、修正し、リリース可否の判断材料を得ることを主な目的としている。以下は、ソフトウェアテストの実行プロセスの概念を図式化したものである。</p>



<figure class="wp-block-image aligncenter size-full"><img decoding="async" width="567" height="200" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像③.jpg" alt="" class="wp-image-24751" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像③.jpg 567w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像③-300x106.jpg 300w" sizes="(max-width: 567px) 100vw, 567px" /></figure>



<p class="has-text-align-center">▲図１：ソフトウェアテスト実行プロセスの概念図</p>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>ソフトウェアテストの全体像</strong></li>
</ul>



<p>ソフトウェア開発におけるテスト体系を図式化すると以下のようになる。これらの関係性は是非覚えておこう。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="567" height="325" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像④.jpg" alt="" class="wp-image-24752" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像④.jpg 567w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像④-300x172.jpg 300w" sizes="auto, (max-width: 567px) 100vw, 567px" /></figure>



<p>さらに、ソフトウェア開発全体とソフトウェアテストとの関係についても図式化したので、テストの全体感も掴んでおこう。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="567" height="285" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑤.jpg" alt="" class="wp-image-24753" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑤.jpg 567w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑤-300x151.jpg 300w" sizes="auto, (max-width: 567px) 100vw, 567px" /></figure>



<p class="has-text-align-center">▲図2：ソフトウェアテストの全体図</p>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>ソフトウェアテストの目的</strong></li>
</ul>



<p>ソフトウェアテストの目的は、次の3点に集約できる。何事も目的を抑えることがもっとも重要なことであることから、ソフトウェアテストにおいても、まずは目的からしっかりと押さえよう。</p>



<div class="wp-block-dvaux-frame sc_frame_wrap normal titlenone"><div class="sc_frame_title normal titlenone" style="background-color:#ccc"></div><div class="sc_frame" style="background-color:#fff;border-color:#ccc">
<p>①不具合を早期に検出する</p>



<p>②法規制や契約上の要件への適合性を確認する</p>



<p>③リリース可否を決定するための判断材料を得る</p>
</div></div>



<ul class="wp-block-list">
<li><strong>動的テストと静的テストの比較</strong></li>
</ul>



<p>テスト体系図の中に動的テストと静的テストが出てきたが、これらは以下のように比較して覚えておくとよい。</p>



<figure class="wp-block-table is-style-regular"><table class="has-fixed-layout" style="border-width:5px"><tbody><tr><td></td><td>動的テスト</td><td>静的テスト</td></tr><tr><td>定義</td><td>・プログラムコードを実行して、その結果からソフトウェアのバグ検出や品質評価、動作確認を行うテスト方法のこと</td><td>・プログラムコードを実行せずに、ドキュメントやソースコードなどのチェックによって誤りや脆弱性を検出するテスト手法のこと</td></tr><tr><td>代表例</td><td>一般のテスト（動作させないと確認できないテスト）</td><td>レビュー、静的解析</td></tr><tr><td>メリット</td><td>・実際に動作させて、製品仕様を満たしているか確認できる。<br>・実際に動作させることで、パフォーマンスやユーザビリティの観点からテストを行うことができる。(仕様の妥当性確認)<br>・動的に（実行中に）状態や論理が変化することによって引き起こされる問題を見つけることができる（タイミング依存の問題など）</td><td>・ソフトウェアの内部構造に関する欠陥（規格からの逸脱や要件の欠陥など）の検出に有効。<br>・ソフトウェアを動作させる必要がないので、開発プロセスの早期に実施し、欠陥を検出・修正できる。<br>・静的解析ツールを使い、機械的にコードのチェックができる。<br>&nbsp;</td></tr><tr><td>デメリット</td><td>・動的テスト行うためには、モジュールを作成したり、ソフトウェアを動作できる状態にする必要がある。<br>・不具合の検出は、テスターのテクニック等によって差が出やすい。</td><td>・パフォーマンスや仕様の欠陥の検出など、ソフトウェアを実際に動作させないと検出しにくい問題に関しては、静的テストでは不向き。<br>・ツールによる静的解析は、機械的にチェックをするため、指摘事項が膨大になりやすい。</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><strong>テストレベル</strong></h2>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="564" height="364" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑥.jpg" alt="" class="wp-image-24754" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑥.jpg 564w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑥-300x194.jpg 300w" sizes="auto, (max-width: 564px) 100vw, 564px" /></figure>



<p>では、ここからソフトウェアテストの各論の説明に入っていく。まず初めに、「テストレベル」から解説する。</p>



<p>テストレベルとは、ソフトウェアテストを実行する各段階（フェーズ）を示したものである。テストレベルには、それぞれ異なる目的とアプローチがあり、ソフトウェアの品質を確保するためにはそれぞれのテストレベルのテストを段階的に実施することが重要となる。</p>



<p>一般的に、４つのテストレベルがあるので順に見ていこう。</p>



<ul class="wp-block-list">
<li><strong>単体テスト（UT＝Unit Testing）</strong></li>
</ul>



<figure class="wp-block-table is-style-regular"><table class="has-white-background-color has-background has-fixed-layout" style="border-width:5px"><tbody><tr><td><strong>項目</strong></td><td><strong>説明</strong></td></tr><tr><td>レベル定義</td><td>ソフトウェアの最小単位であるモジュールや関数をテストするレベル</td></tr><tr><td>目的</td><td>各モジュールが正しく動作しているかを確認するために行う</td></tr><tr><td>実施者</td><td>テスター（実際にはプログラマーが実施することが多い）</td></tr></tbody></table></figure>



<ul class="wp-block-list">
<li><strong>結合テスト（IT＝Integration Testing）</strong></li>
</ul>



<figure class="wp-block-table is-style-regular"><table class="has-white-background-color has-background has-fixed-layout" style="border-width:5px"><tbody><tr><td><strong>項目</strong></td><td><strong>説明</strong></td></tr><tr><td>レベル定義</td><td>複数のモジュールを統合し、連携して正しく動作するかを確認するテストレベル</td></tr><tr><td>目的</td><td>モジュール間のインターフェースやデータの流れが正常であるかを確認するために行う</td></tr><tr><td>実施者</td><td>テスター</td></tr></tbody></table></figure>



<ul class="wp-block-list">
<li><strong>システムテスト（ST＝System Testing）</strong></li>
</ul>



<figure class="wp-block-table is-style-regular"><table class="has-white-background-color has-background has-fixed-layout" style="border-width:5px"><tbody><tr><td><strong>項目</strong></td><td><strong>説明</strong></td></tr><tr><td>レベル定義</td><td>システム全体が要件で決めた通りに振る舞うかを確認するテストレベル</td></tr><tr><td>目的</td><td>すべての機能を統合した振る舞いが、要件で定義した内容を満たしていることを確認するために行う（ユーザー視点で確認する）</td></tr><tr><td>実施者</td><td>テスター</td></tr></tbody></table></figure>



<ul class="wp-block-list">
<li><strong>受け入れテスト（UAT＝User Acceptance Testing）</strong></li>
</ul>



<figure class="wp-block-table is-style-regular"><table class="has-white-background-color has-background has-fixed-layout" style="border-width:5px"><tbody><tr><td><strong>項目</strong></td><td><strong>説明</strong></td></tr><tr><td>レベル定義</td><td>顧客やエンドユーザーがソフトウェアを受け入れるかどうかの判断を行うテストレベル</td></tr><tr><td>目的</td><td>顧客に検収をあげてもらうため、最終的な製品が顧客の要求を満たしているか、また実際の運用に耐えられるかを確認するために行う（顧客との間で合意された基準に基づいて評価する）</td></tr><tr><td>実施者</td><td>顧客（顧客の代わりにテスターが代行する場合もある）</td></tr></tbody></table></figure>



<p>ちなみに、結合テストは厳密には内部結合テストと外部結合テストに区分できるので、ここで触れておきたい。以下、そのイメージを図解で示す。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="567" height="328" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑦.jpg" alt="" class="wp-image-24755" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑦.jpg 567w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑦-300x174.jpg 300w" sizes="auto, (max-width: 567px) 100vw, 567px" /></figure>



<p class="has-text-align-center">▲図3：内部結合テストと外部結合テストのイメージ図</p>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<p>このセクションの最後に、テストレベルの振り返りとして４つのテストレベルを一覧にしておく。</p>



<figure class="wp-block-table is-style-regular"><table class="has-fixed-layout" style="border-width:5px"><tbody><tr><td>テストレベル</td><td>説明</td><td>テスト実施者</td></tr><tr><td>単体テスト</td><td>個々の機能やモジュールをテストする。</td><td rowspan="3">開発側</td></tr><tr><td>結合テスト</td><td>複数のモジュールを組み合わせてテストを行う。</td></tr><tr><td>システムテスト</td><td>システム全体をテストし、全機能が正しく動作するか、ユーザーの要求通りにシステムが振る舞うかを確認する。</td></tr><tr><td>受け入れテスト</td><td>ユーザーが要求した機能が実装されているかを確認する。実際のユーザーやクライアントが参加することが一般的。</td><td>ユーザー側</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><strong>テストドキュメント</strong></h2>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="565" height="361" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑧.jpg" alt="" class="wp-image-24757" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑧.jpg 565w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑧-300x192.jpg 300w" sizes="auto, (max-width: 565px) 100vw, 565px" /></figure>



<p>品質は一般的に、プロダクト品質とプロセス品質の両方の結果が揃ってはじめて、より正確な品質判断が可能になると言われている。これはソフトウェアテストでも同様で、テストドキュメント（プロダクト）はソフトウェアテストの良し悪しの一翼を担っている。よって、ソフトウェアテストをよりよくしていくためには、テストドキュメントの品質を向上させる必要があるのだが、そのポイントは「標準化」で、今から紹介する「IEEE829」という規格がそれに該当する。</p>



<ul class="wp-block-list">
<li><strong>IEEE829とは</strong></li>
</ul>



<p>IEEE829は、ソフトウェアテストにおけるドキュメント標準を定めた規格である。この規格は、テストプロセスの各ステップにおいて作成される文書の種類や内容を明確にし、テスト活動の計画、実行、結果の記録を効率化することを目的としている。</p>



<p>IEEE829をベースに作成したテストドキュメントは、テストのフレームワークとしてテストの透明性と一貫性が確保できるため、プロジェクト内や異なるプロジェクト間での情報共有が容易になる。また、将来的なメンテナンスや監査を容易にすることも可能になる。</p>



<div class="wp-block-group has-background is-layout-constrained wp-block-group-is-layout-constrained" style="background-color:#8dd2fc45">
<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<p><strong>Colum：IEEEとは</strong><br><br>IEEE（アイ・トリプル・イー：Institute of Electrical and Electronics Engineers）は、アメリカ合衆国に本部を置く電気・情報工学分野の学術研究団体（学会）、技術標準化機関であり、日本語では米国電気電子技術者協会となる。会員の分布、活動は全世界的規模に及び、この種の専門職団体として世界最大規模である。</p>



<p>引用：Wikipediaからの抜粋（一部編集）<a href="https://ja.wikipedia.org/wiki/IEEE">https://ja.wikipedia.org/wiki/IEEE</a></p>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>
</div>



<ul class="wp-block-list">
<li><strong>テストドキュメントの概要</strong></li>
</ul>



<p>では、まずテストドキュメントのイメージを掴かむところから始める。<br>IEEE829には、ソフトウェアテストの標準化されたテストドキュメントについて記載されており、そのドキュメント群から抜粋したドキュメント（成果物）を、テストプロセスに沿って並べたものが下図である。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="567" height="70" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑨.jpg" alt="" class="wp-image-24761" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑨.jpg 567w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑨-300x37.jpg 300w" sizes="auto, (max-width: 567px) 100vw, 567px" /></figure>



<p class="has-text-align-center">▲図4：テストドキュメント（成果物）の流れ</p>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<ul class="wp-block-list">
<li><strong>テストドキュメントの種類</strong></li>
</ul>



<p>以下に、IEEE829の中で定義されている実際のドキュメント名を示すので、まずはそこから確認してほしい。英語なのでイメージしにくいだろうか？それぞれの右手に、本記事の中で紹介するドキュメントを並べておいたので、記事全体を通して理解を進めていってもらえればと思う。</p>



<p>ちなみにIEEE829は、ソフトウェア開発における各テスト工程で作成が必要とされるドキュメントの信頼できる指針の一つとして、世界中の開発現場で利用、参照されていることを付け加えておく。</p>



<figure class="wp-block-table"><table class="has-fixed-layout" style="border-width:5px"><tbody><tr><td>IEEE829</td><td class="has-text-align-left" data-align="left">本記事で紹介しているドキュメント</td></tr><tr><td>マスターテスト計画（Master Test Plan）</td><td class="has-text-align-left" data-align="left">全体テスト計画書</td></tr><tr><td>レベルテスト計画（Level Test Plan）</td><td class="has-text-align-left" data-align="left">各レベルのテスト計画書（例：結合テスト計画書）</td></tr><tr><td>レベルテスト設計（Level Test Design） </td><td class="has-text-align-left" data-align="left">各レベルのテスト設計書（例：結合テスト設計書）</td></tr><tr><td>レベルテストケース（Level Test Case）</td><td class="has-text-align-left" data-align="left" rowspan="2">各レベルのテスト仕様書（例：結合テスト仕様書）</td></tr><tr><td>レベルテスト手順（Level Test Procedure）</td></tr><tr><td>レベルテストログ（Level Test Log） </td><td class="has-text-align-left" data-align="left">テストエビデンス</td></tr><tr><td>異常報告（Anomaly Report） 
レベルテスト中間状況報告（Level Interim Test Status Report） 
</td><td class="has-text-align-left" data-align="left">不具合管理表
テスト実施報告書
</td></tr><tr><td>レベルテスト報告（Level Test Report） </td><td class="has-text-align-left" data-align="left">テストサマリレポート</td></tr><tr><td>マスターテスト報告（Master Test Report）</td><td class="has-text-align-center" data-align="center">ー</td></tr></tbody></table></figure>



<ul class="wp-block-list">
<li><strong>テストドキュメントの体系</strong></li>
</ul>



<p id="link02">テストドキュメント全体の関連性については、以下のような体系となる。なお、単体テストでもテスト設計をする場合はあるが、一般的に行わないことの方が多いため、ここでは省略しているのであしからず。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="567" height="318" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑩.jpg" alt="" class="wp-image-24762" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑩.jpg 567w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑩-300x168.jpg 300w" sizes="auto, (max-width: 567px) 100vw, 567px" /></figure>



<p class="has-text-align-center">▲図5：ソフトウェアテストのドキュメント体系</p>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<p>ではさいごに、テストドキュメントのポイントとなるテスト計画の概要を見て、このセクションを締めくくる。</p>



<ul class="wp-block-list">
<li><strong>テスト計画の概要</strong></li>
</ul>



<p>テスト計画とは、ソフトウェアの品質目標を効率的に達成するために作成するもので、以下のようなテストの指針や概要をまとめたものである。</p>



<div class="wp-block-dvaux-frame sc_frame_wrap normal titlenone"><div class="sc_frame_title normal titlenone" style="background-color:#ccc"></div><div class="sc_frame" style="background-color:#fff;border-color:#ccc">
<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<p>・テストの目的</p>



<p>・テスト対象の範囲</p>



<p>・実施方法</p>



<p>・テストの体制</p>



<p>・テストの環境</p>



<p>・テストのスケジュール ・テストの完了基準、など</p>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>
</div></div>



<p id="link01">なお、テスト計画書にはプロジェクトに対する全体テスト計画書と、各テストレベルに対する個別テスト計画書がある。<a href="#link02" data-type="internal" data-id="#link02">「図5：ソフトウェアテストのドキュメント体系」</a>に示してあるので、再度確認しておいてほしい。</p>



<h2 class="wp-block-heading"><strong>テストプロセス</strong></h2>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="564" height="394" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑪.jpg" alt="" class="wp-image-24763" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑪.jpg 564w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑪-300x210.jpg 300w" sizes="auto, (max-width: 564px) 100vw, 564px" /></figure>



<p>テストドキュメント（プロダクト）とともに、ソフトウェアテストの良し悪しのもう一翼を担うのがテストプロセスである。ソフトウェアテストの品質（良し悪し）はこの両輪がバランスよく回ってこそ良くなるわけだが、「よいプロダクト（成果物）はよいプロセスがあってこそ成り立つ」ことから、まずはテストプロセスの確立から取り組んだ方が効率がよい。</p>



<p>このテストプロセスについては、「JSTQB」というソフトウェアテスト資格のシラバスに「テスト活動とタスク」という見出しで触れられている。よかったらそちらも確認してみてほしい。</p>



<p>参考：テスト技術者資格制度 JSTQB　Foundation Level シラバス Version 2023V4.0.J02 P.19<br><a href="https://jstqb.jp/dl/JSTQB-SyllabusFoundation_VersionV40.J02.pdf" target="_blank" rel="noreferrer noopener">https://jstqb.jp/dl/JSTQB-SyllabusFoundation_VersionV40.J02.pdf</a></p>



<p>テストプロセスもテストドキュメントと同様でポイントは「標準化」となるが、テストは体系立てて順序よく進めていくことが鉄則というふうに覚えておいてほしい。以下にテストプロセスを示したので、順に見ていこう。</p>



<figure class="wp-block-table"><table style="border-width:5px"><tbody><tr><td>ステップ</td><td>テストプロセス</td><td>説明</td><td>成果物</td></tr><tr><td>1</td><td>テスト計画</td><td>テストの目的やテスト対象となる範囲を明確にし、テストの方針や体制、スケジュールなどを策定する。あわせてテストの判定基準やテスト作業の終了基準もこの段階で策定する。</td><td>テスト計画書</td></tr><tr><td>2</td><td>テスト分析</td><td>テストベース（テストのインプットとなる成果物）を整理し、テストすべき条件や要件、さらにはそれを実現するテストケースの作成方針（どのテストタイプ、テスト技法を使うかなど）を決定する。</td><td rowspan="2">テスト設計書</td></tr><tr><td>3</td><td>テスト設計</td><td>テスト分析で洗い出した条件や要件を満たすような具体的なテストケースを検討する。このときテスト技法を用いて、抜けもれや重複のないようにするとともに、異常系や境界値等も考慮する。</td></tr><tr><td>4</td><td>テスト実装</td><td>テスト設計で検討したテストケースを元に、実際にテスト実行するための具体的な手順等を付け加える。また手順と合わせて、想定した振る舞いを確認するためのテストデータや、実行を自動化する場合はテストスクリプトも、この段階で作成する。</td><td>テスト仕様書
テストデータ
テストスクリプト（自動化する場合）
</td></tr><tr><td>5</td><td>テスト実行</td><td>テスト実装で作成した手順に従ってシステムを操作し、期待結果どおりになるかを確認する。期待通りでない場合は、不具合管理表に記載する。（必要に応じてキャプチャなどのテストエビデンスを残す）
また、テストの進捗状況も把握しながらテストを消化していく。
</td><td rowspan="2">テスト実施報告書
不具合管理表
</td></tr><tr><td>6</td><td>テスト評価</td><td>実行したテスト結果は都度評価し、不具合を発見した際は都度その状況を確認する。その後、それぞれの重大度や影響度に応じて分類し、修正の有無や優先順位を決定する。</td></tr><tr><td>7</td><td>不具合修正</td><td>決定した優先順位に従って不具合を修正していく。</td><td>修正後のコード</td></tr><tr><td>8</td><td>修正確認テスト</td><td>修正箇所と、修正により影響のあった箇所を対象に再テストを行う。影響のあった箇所については、正常に動作することがテスト観点となる。もし、影響範囲が特定できない場合は回帰テストを実施する場合もある。</td><td>テスト実施報告書
不具合管理表
（再テスト分を追記）
</td></tr><tr><td>9</td><td>終了判定</td><td>修正確認テストの結果を分析し、作業を終了して次に進んでよいかどうかを判定する。</td><td>テストサマリレポート</td></tr><tr><td>10</td><td>終了作業</td><td>作業の最終確認や今後の活動へのフィードバックを実施する。計画通りに成果物が作成されているか、未対応の不具合はないか、あるとしたら今後の対応方針は決まっているか、などを確認する。</td><td>テスト計画書（修正版）</td></tr></tbody></table></figure>



<p>これらのテストプロセスはどれも欠かせないが、もっとも重要なプロセスは、やはり効率的なテストを行うためのテスト計画の立案である。なぜなら、「テスト計画を立てること」は「テスト戦略を立案すること」とイコールであるため、テスト計画が不十分であったり、計画自体がなかったりすると、次に示すような、なかなか判断し難い（コントロール不能な）事態に対応しきれなくなるからである。</p>



<div class="wp-block-dvaux-frame sc_frame_wrap normal titlenone"><div class="sc_frame_title normal titlenone" style="background-color:#ccc"></div><div class="sc_frame" style="background-color:#fff;border-color:#ccc">
<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<p>・いつまでたっても簡単に不具合が見つかり、テストの終了時期が見えない</p>



<p>・予定していたとおりにテストが消化できていないが、期間は延長した方がよいか？</p>



<p>・テスト終了間際で大きな不具合が見つかったが、これを修正するだけでテストを終了してしまってよいか？ </p>



<p>・システムテストの段階で、本来単体テストで見つけるべき不具合が見つかったが、もう一度単体テストからやり直した方がよいか？それともこのまま先に進めてしまってよいか？</p>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>
</div></div>



<p>結論として、逆説的な言い方で恐縮だが、このような事態の対応方法までが書かれているテスト計画書が、本来求められているテスト計画ということになる。</p>



<p>ではさいごに、テストプロセスのポイントを示してこのセクションを締めくくる。</p>



<ul class="wp-block-list">
<li><strong>テスト分析・設計をしないことによるデメリット</strong></li>
</ul>



<p>テスト分析とテスト設計を行う理由は、テストの目的や確認ポイントをより明らかにしたいからである。テスト分析・設計を行わなかった場合、以下のような不都合が出てくるので注意しよう。</p>



<div class="wp-block-dvaux-frame sc_frame_wrap normal titlenone"><div class="sc_frame_title normal titlenone" style="background-color:#ccc"></div><div class="sc_frame" style="background-color:#fff;border-color:#ccc">
<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<p>・誰がどのような意図で作成したのかがわからない</p>



<p>・どの仕様書（または設計書）に対するテストを作ったのかがわからなくなる </p>



<p>・もし仕様変更があった場合、どのテストに影響するのかが調査できない</p>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>
</div></div>



<p>結論、テストケースを作成するまでに至った意図や過程がわからないと、後々問題になる可能性がある。覚えておこう。</p>



<div class="wp-block-dvaux-frame sc_frame_wrap normal titlenone"><div class="sc_frame_title normal titlenone" style="background-color:#ccc"></div><div class="sc_frame" style="background-color:#fff;border-color:#ccc">
<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<p><strong>Monologue：品質判断の難しさ</strong></p>



<p>ソフトウェアにおいて、品質の十分性の判断は難しいこととされている。なぜなら、ソフトウェアの特徴により、どれだけテストをしてもこれで十分な品質が確保できたとは言い難いから。</p>



<p>実際にテストで不具合を減らすことは可能だが、不具合をゼロにすることは不可能に近い。また、何がどうなったら顧客満足を得ることができるのか、ということを明確にするのも難易度が高い。 つまるところ、品質とは、ユーザーになりきってユースケースを考え抜くことかもしれない。つまり、「ユーザーはどのような使い方をするのか？」「どのようなシステムを求めているのか？」といったことを、顧客の立場でどれだけリアルに想定できるか？または、どれだけ想像できるか？そういったことが、ソフトウェア開発においてもっとも重要なことなのかもしれない。</p>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>
</div></div>



<h2 class="wp-block-heading"><strong>テストとV&amp;V（検証と妥当性確認）の関係</strong></h2>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="564" height="375" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑫.jpg" alt="" class="wp-image-24767" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑫.jpg 564w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑫-300x199.jpg 300w" sizes="auto, (max-width: 564px) 100vw, 564px" /></figure>



<p>ソフトウェアテストとはつまり、「ソフトウェア品質を確認すること」である。そして、そのソフトウェア品質を確認するための観点に、「検証（Verification）」と「妥当性確認（Validation）」の2つのプロセスが存在する。この２つのプロセスは、それぞれが補完し合いながら品質が確保される仕組みとなっており、この２つのプロセスを併せて「V＆V」と呼ぶ。このV＆Vの概念もソフトウェアテストにとって非常に重要なことであるため、しっかりと押さえておきたい。</p>



<p>まず、V＆VのそれぞれのVの説明から行う。</p>



<figure class="wp-block-table"><table class="has-fixed-layout" style="border-width:5px"><tbody><tr><td class="has-text-align-left" data-align="left"><strong>V＆V</strong></td><td class="has-text-align-left" data-align="left"><strong>説明</strong></td></tr><tr><td class="has-text-align-left" data-align="left">検証（Verification）</td><td class="has-text-align-left" data-align="left">ソフトウェアがインプット（設計書）どおりに正しく実装されているか、つまり“正しく製品を作っているか”といった開発者の視点から機能を確認することである。</td></tr><tr><td class="has-text-align-left" data-align="left">妥当性確認（Validation）</td><td class="has-text-align-left" data-align="left">ソフトウェアがユーザーの要求を満たしているか、つまり“正しい製品を作っているか”を確認することで、ユーザー視点からユーザーが期待している機能や性能が本当にユーザーの期待通りになっているかを確認することである。</td></tr></tbody></table></figure>



<p>この説明で理解できただろうか。では、以下のような不具合が検出された場合は、V＆Vのどちらで確認すべきだったか？少し考えてみてほしい。</p>



<div class="wp-block-dvaux-frame sc_frame_wrap normal titlenone"><div class="sc_frame_title normal titlenone" style="background-color:#ccc"></div><div class="sc_frame" style="background-color:#fff;border-color:#ccc">
<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<p>１．入力データが反映されない不具合</p>



<p>２．計算結果が間違っている不具合</p>



<p>３．画面UIがわかりづらいといった不具合 </p>



<p>４．画面遷移の待ち時間が長いといった不具合</p>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>
</div></div>



<p>どうだろう？簡単すぎただろうか？では、答えを見ていこう。</p>



<p>１と２の不具合は、どちらも機能が実現できていないことから、検証（Verification）で確認すべき不具合である。</p>



<figure class="wp-block-table"><table class="has-fixed-layout" style="border-width:5px"><tbody><tr><td>１．入力データが反映されない不具合<br>２．計算結果が間違っている不具合</td><td>→　検証で発見すべき不具合</td></tr></tbody></table></figure>



<p>一方、３と４の不具合は、要求が満たせていない内容であることから、妥当性確認（Validation）で確認すべき不具合ということになる。</p>



<figure class="wp-block-table"><table class="has-fixed-layout" style="border-width:5px"><tbody><tr><td>３．画面UIがわかりづらいといった不具合<br>４．画面遷移の待ち時間が長いといった不具合</td><td>→　妥当性確認で発見すべき不具合</td></tr></tbody></table></figure>



<p>これらの不具合はどちらもあってはいけないのだが、テストの順番としては、機能をテストして検証レベルの不具合を潰してから、システム全体の振る舞いについての妥当性を確認するといった順番になることを覚えておこう。もしこの順番通りにテストを進めなかった場合、いつまでたっても不具合が収まらなくなるといったことになりかねないので、十分に注意してほしい。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="567" height="338" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑬.jpg" alt="" class="wp-image-24768" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑬.jpg 567w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑬-300x179.jpg 300w" sizes="auto, (max-width: 567px) 100vw, 567px" /></figure>



<p class="has-text-align-center">▲図６：V字モデルとV＆Vの関係</p>


<div class="sc_getpost"><a class="clearfix" href="https://qualitycube.jp/2024/10/04/vandv/"  target="_blank"><div class="sc_getpost_thumb post-box-thumbnail__wrap"><img decoding="async" src="data:image/gif;base64,R0lGODdhAQABAPAAAN3d3QAAACwAAAAAAQABAAACAkQBADs=" width="150" height="150" alt="V＆V（Verification＆Validation／検証と妥当性確認）とは？│IT初心者のための基本ガイド" loading="lazy" data-src="https://qualitycube.jp/wp-content/uploads/2024/10/V＆Vとは？アイキャッチ画像-150x150.jpg" class="lazyload"><span style="background:" class="sc_getpost_cat">ソフトウェア品質</span></div><div class="title"><span class="badge">合わせて読みたい</span>V＆V（Verification＆Validation／検証と妥当性確認）とは？│IT初心者のための基本ガイド</div><div class="substr">ソフトウェア開発プロジェクトの品質課題を解決するQualityCubeのサポートサービスについて、その特徴や他社との違いについて、導入するメリットを解説します。...</div></a></div>



<p>▲こんな記事も読まれています</p>



<h2 class="wp-block-heading"><strong>テストファースト</strong></h2>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="563" height="374" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑭.jpg" alt="" class="wp-image-24769" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑭.jpg 563w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑭-300x199.jpg 300w" sizes="auto, (max-width: 563px) 100vw, 563px" /></figure>



<p>唐突だが、あなたはW字モデルのことをご存じだろうか？簡単に説明すると、V字モデルの進化形で、開発とテストを同時並行的に進める形を概念化したもので、「開発フェーズもテスト視点を持って進めよう」といったことを強調したモデルである。（いわゆるテストファーストと考え方は同じ）</p>



<p>要するに、W字モデルでは、開発中は終始テストをしているような恰好になるため、このモデルを採用すると、もちろん高品質な製品が出来上がる確率が高くなる。</p>



<p>しかしながら、W字モデルも万能というわけではなく、プロジェクトの特性によっては向き不向きがある。以下にその事例を挙げておく。</p>


<div class="sc_getpost"><a class="clearfix" href="https://qualitycube.jp/2024/10/16/w-model/"  target="_blank"><div class="sc_getpost_thumb post-box-thumbnail__wrap"><img decoding="async" src="data:image/gif;base64,R0lGODdhAQABAPAAAN3d3QAAACwAAAAAAQABAAACAkQBADs=" width="150" height="150" alt="W字モデルとは？│IT初心者のための基本ガイド" loading="lazy" data-src="https://qualitycube.jp/wp-content/uploads/2024/10/W字モデルとは？_アイキャッチ画像-150x150.jpg" class="lazyload"><span style="background:" class="sc_getpost_cat">ソフトウェア品質</span></div><div class="title"><span class="badge">合わせて読みたい</span>W字モデルとは？│IT初心者のための基本ガイド</div><div class="substr">ソフトウェア開発プロジェクトの品質課題を解決するQualityCubeのサポートサービスについて、その特徴や他社との違いについて、導入するメリットを解説します。...</div></a></div>



<p>▲こんな記事も読まれています</p>



<h2 class="wp-block-heading"><strong>テストタイプ</strong></h2>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="564" height="375" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑮.jpg" alt="" class="wp-image-24770" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑮.jpg 564w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑮-300x199.jpg 300w" sizes="auto, (max-width: 564px) 100vw, 564px" /></figure>



<p>テストタイプは、特定の目的や方法に基づいて分類されるテストの種類のことを指す。平たく言えば、「テストの狙いで区分した各テストの集合体」ということである。</p>



<p>テストタイプは更に、異なるテストタイプを組み合わせることでより効果的なテストができるようになるため、どのようなテストが有効か？といったテストの狙いをよく考慮して選択するようにしたい。</p>



<p>では、次に代表的なテストタイプを選んで説明する。</p>



<ul class="wp-block-list">
<li><strong>機能テスト</strong></li>
</ul>



<figure class="wp-block-table"><table class="has-fixed-layout" style="border-width:5px"><tbody><tr><td>テストレベル</td><td>結合テスト</td></tr><tr><td>目的</td><td>ソフトウェアが要求された機能を正しく実行できるかを確認するため</td></tr><tr><td>例</td><td>入力データに対して期待結果通りに出力されるかを確認するテスト</td></tr></tbody></table></figure>



<ul class="wp-block-list">
<li><strong>画面テスト</strong></li>
</ul>



<figure class="wp-block-table"><table class="has-fixed-layout" style="border-width:5px"><tbody><tr><td>テストレベル</td><td>結合テスト</td></tr><tr><td>目的</td><td>対象に画面がある場合（Webサービスやスマホアプリなど）が設計通りに正しく動作（表示）するかを確認するため</td></tr><tr><td>例</td><td>画面の各要素（ボタン、テキスト、画像など）が設計通りになっているかを確認するテスト</td></tr></tbody></table></figure>



<ul class="wp-block-list">
<li><strong>回帰テスト（リグレッションテスト）</strong></li>
</ul>



<figure class="wp-block-table"><table class="has-fixed-layout" style="border-width:5px"><tbody><tr><td>テストレベル</td><td>結合テスト、システムテスト</td></tr><tr><td>目的</td><td>コードの変更が既存の機能に影響を与えていないかを確認するため</td></tr><tr><td>例</td><td>新機能の実装後に、前回テストした機能が正常に動作するかを確認するテスト</td></tr></tbody></table></figure>



<ul class="wp-block-list">
<li><strong>シナリオテスト</strong></li>
</ul>



<figure class="wp-block-table"><table class="has-fixed-layout" style="border-width:5px"><tbody><tr><td>テストレベル</td><td>システムテスト、受け入れテスト</td></tr><tr><td>目的</td><td>ステークホルダー別で想定される一般的な使い方やイレギュラーな使い方が問題なくできるかを確認するため</td></tr><tr><td>例</td><td>業務フローの通りに問題なく操作ができることを確認するテスト</td></tr></tbody></table></figure>



<ul class="wp-block-list">
<li><strong>ユーザビリティテスト</strong></li>
</ul>



<figure class="wp-block-table"><table class="has-fixed-layout" style="border-width:5px"><tbody><tr><td>テストレベル</td><td>システムテスト</td></tr><tr><td>目的</td><td>ユーザー視点で、使いづらい、見づらい、分かりづらいところがないか確認するため</td></tr><tr><td>例</td><td>新しく設計した画面のUIがユーザーにとってわかりやすいかを確認するテスト</td></tr></tbody></table></figure>



<ul class="wp-block-list">
<li><strong>負荷テスト</strong></li>
</ul>



<figure class="wp-block-table"><table class="has-fixed-layout" style="border-width:5px"><tbody><tr><td>テストレベル</td><td>システムテスト</td></tr><tr><td>目的</td><td>システムがどの程度の負荷に耐えられるか確認をするため</td></tr><tr><td>例</td><td>システムが同時に100人のユーザーからのアクセスに耐えられるかを確認するテスト</td></tr></tbody></table></figure>



<ul class="wp-block-list">
<li><strong>パフォーマンステスト</strong></li>
</ul>



<figure class="wp-block-table"><table class="has-fixed-layout" style="border-width:5px"><tbody><tr><td>テストレベル</td><td>システムテスト</td></tr><tr><td>目的</td><td>システムのパフォーマンスを測定し、要求を満たしているかを評価するため</td></tr><tr><td>例</td><td>Webアプリケーションが特定の負荷条件下でどれだけの速度で動作するかを確認するテスト</td></tr></tbody></table></figure>



<ul class="wp-block-list">
<li><strong>探索的テスト</strong></li>
</ul>



<figure class="wp-block-table"><table class="has-fixed-layout" style="border-width:5px"><tbody><tr><td>テストレベル</td><td>システムテスト</td></tr><tr><td>目的</td><td>テストケースを全て消化したあとに、テストケース以外で不具合がないかを確認するため（経験ベース）</td></tr><tr><td>例</td><td>テーマを決めてテスターの経験値ベースで、不具合が潜在していそうな箇所に対して行うテスト</td></tr></tbody></table></figure>



<ul class="wp-block-list">
<li><strong>マニュアルテスト</strong></li>
</ul>



<figure class="wp-block-table"><table class="has-fixed-layout" style="border-width:5px"><tbody><tr><td>テストレベル</td><td>受け入れテスト</td></tr><tr><td>目的</td><td>マニュアルに記載の操作手順に誤りがないことを確認するため</td></tr><tr><td>例</td><td>作成したマニュアルの記載内容に沿って、間違いなく操作できるか確認するテスト</td></tr></tbody></table></figure>



<div class="wp-block-group has-background is-layout-constrained wp-block-group-is-layout-constrained" style="background-color:#8dd2fc45">
<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<p><strong>Colum：モデルベーステストについて</strong><br><br>モデルベーステストとは、システムの各機能をモデル化して、そこからテストケースを抽出して行うテストのことで、通常のソフトウェアテストはすべてモデルベーステストに該当する。 ちなみに、アドホックテストや探索的テストはテストケースを作成せずに行うテストであるため、モデルベーステストではないテストとなる。</p>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>
</div>



<h2 class="wp-block-heading"><strong>テスト技法</strong></h2>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="564" height="372" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑯.jpg" alt="" class="wp-image-24781" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑯.jpg 564w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑯-300x198.jpg 300w" sizes="auto, (max-width: 564px) 100vw, 564px" /></figure>



<p>テスト技法とは、テスト分析やテスト設計を行う際に効率のよいテストを実施するための手法やテクニックのことである。ソフトウェアテストは一般的に、すべての条件の組み合わせをテストしようとすると、その数が膨大になりすぎて現実的ではなくなる。そのため、効率的かつ効果的なテストを実施するためにテスト技法を用いる。</p>



<p>では、テスト技法について解説していく。</p>



<ul class="wp-block-list">
<li><strong>テスト技法の分類</strong></li>
</ul>



<p>テスト技法は、大きくブラックボックステストとホワイトボックステストに分類される。（その間に位置するグレーボックステストも存在はする）以下、それぞれの概要を説明する。</p>



<div class="wp-block-dvaux-frame sc_frame_wrap inline"><div class="sc_frame_title inline" style="background-color:#000000">ブラックボックステスト</div><div class="sc_frame" style="background-color:#fff;border-color:#000000">
<p>ブラックボックステストは、内部構造を考慮せず、外部からの入力と出力の関係のみを確認するテスト技法である。このアプローチは、ユーザーの観点から機能が正しく動作するか、ユーザーの要求や期待を満たしているかを評価する。代表的なブラックボックステストには、同値分割や境界値分析が挙げられる。</p>
</div></div>



<div class="wp-block-dvaux-frame sc_frame_wrap inline"><div class="sc_frame_title inline" style="background-color:#000000">ホワイトボックステスト</div><div class="sc_frame" style="background-color:#fff;border-color:#000000">
<p>ホワイトボックステストは、内部のロジックや構造に基づいてテストを行う技法で、テストケースはコードの実装に基づいて設計する。このアプローチは、コードの内部動作が正しいこと、特に条件分岐やループの網羅性などをチェックする。ホワイトボックステストは単体テストで使われることが多いテスト技法で、命令網羅（C0）、分岐網羅（C1）、条件網羅（C2）などがある。</p>
</div></div>



<div class="wp-block-dvaux-frame sc_frame_wrap inline"><div class="sc_frame_title inline" style="background-color:#000000">グレーボックステスト</div><div class="sc_frame" style="background-color:#fff;border-color:#000000">
<p>グレーボックステストは、ブラックボックステストとホワイトボックステストの中間のアプローチで、システムの内部構造と外部からの観点を組み合わせたテスト技法である。つまり、内部構造についての知識を持ちながら、ブラックボックステストのように外部からの視点で行うテストがグレーボックステストである。 この技法は、システムの内部構造をある程度理解していなければ、テストを進めることが難しいといった点がポイントになる。</p>
</div></div>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="567" height="233" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑰.jpg" alt="" class="wp-image-24783" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑰.jpg 567w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑰-300x123.jpg 300w" sizes="auto, (max-width: 567px) 100vw, 567px" /></figure>



<p class="has-text-align-center">▲図７：ブラックボックステスト、ホワイトボックステスト、グレーボックステストのイメージ図</p>



<ul class="wp-block-list">
<li><strong>ブラックボックステストの代表例</strong></li>
</ul>



<p>次に、ブラックボックステストの中でよく用いられるテスト技法を説明する。</p>



<div class="wp-block-dvaux-frame sc_frame_wrap inline"><div class="sc_frame_title inline" style="background-color:#000000">同値分割</div><div class="sc_frame" style="background-color:#fff;border-color:#000000">
<p>同値分割は、入力項目が連続する値を持つ場合に、入力領域を同値クラス（同様の出力結果が得られる部分集合）に分けて、それぞれの同値クラスに代表値１つをテストする技法である。このテスト技法により、テストケースは3つに圧縮できる。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="567" height="135" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑱.jpg" alt="" class="wp-image-24784" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑱.jpg 567w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑱-300x71.jpg 300w" sizes="auto, (max-width: 567px) 100vw, 567px" /></figure>



<p class="has-text-align-center">▲図８：同値分割のイメージ図</p>
</div></div>



<div class="wp-block-dvaux-frame sc_frame_wrap inline"><div class="sc_frame_title inline" style="background-color:#000000">境界値分析</div><div class="sc_frame" style="background-color:#fff;border-color:#000000">
<p>境界値分析は、入力項目が連続する値を持つ場合に、入力領域を同値クラスに分けて、それぞれの同値クラスの境界の値をテストする技法である。このテスト技法により、テストケースは4つに圧縮できる。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="567" height="139" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑲.jpg" alt="" class="wp-image-24785" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑲.jpg 567w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑲-300x74.jpg 300w" sizes="auto, (max-width: 567px) 100vw, 567px" /></figure>



<p class="has-text-align-center">▲図９：境界値分析のイメージ図</p>
</div></div>



<div class="wp-block-dvaux-frame sc_frame_wrap inline"><div class="sc_frame_title inline" style="background-color:#000000">デシジョンテーブル</div><div class="sc_frame" style="background-color:#fff;border-color:#000000">
<p>デシジョンテーブルは、テスト対象の条件と結果の組み合わせをデシジョンテーブルで整理して、その組み合わせに基づいてテストケースを作成するテスト技法である。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="567" height="207" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑳.jpg" alt="" class="wp-image-24786" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑳.jpg 567w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像⑳-300x110.jpg 300w" sizes="auto, (max-width: 567px) 100vw, 567px" /></figure>



<p class="has-text-align-center">▲図１０：デシジョンテーブルのイメージ図</p>
</div></div>



<p>以上、ブラックボックステストの代表的な技法を紹介したが、もちろんブラックボックステストには、それ以外のテスト技法もある。以下に、それ以外のテスト技法も含めて一覧にしたので、必要なときに見直してほしい。ソフトウェアテストは、限られた時間の中でいかに有効なテストができるか？ということが求められるため、テスト技法は効果的に活用できるようにしよう。</p>



<figure class="wp-block-table"><table class="has-fixed-layout" style="border-width:5px"><tbody><tr><td>技法名</td><td>方法</td></tr><tr><td>同値分割</td><td>連続する値の入力条件をグループにまとめ、それぞれのグループで代表値を１つずつテストケースとして作成する。</td></tr><tr><td>境界値分析</td><td>連続する値の境界を識別し、境界付近の値を計４つテストケースとして作成する。</td></tr><tr><td>デシジョンテーブル</td><td>条件の組み合わせの相互作用をデシジョンテーブルで整理し、それを網羅するテストケースを作成する。</td></tr><tr><td>状態遷移テスト</td><td>状態遷移を状態遷移図や表で整理し、それを網羅するテストケースを作成する。</td></tr><tr><td>組み合わせテスト</td><td>パラメータの組み合わせを網羅するテストケースを作成する。この技法には直行表とオールペア法がある。</td></tr><tr><td>ユースケーステスト</td><td>仕様をユースケースで整理して、それを網羅するテストケースを作成する。</td></tr><tr><td>探索的テスト</td><td>テストの実行結果を見て経験値から不具合が潜んでいそうなところを重点的にテストする。（テストケースは作成しない場合が多い）</td></tr></tbody></table></figure>



<div class="wp-block-group has-background is-layout-constrained wp-block-group-is-layout-constrained" style="background-color:#8dd2fc45">
<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<p><strong>Column</strong>：<strong>テスト技法の選択方法</strong><br><br>テスト技法は決して闇雲に使うのではなく、テスト計画を立案する際、テスト対象の特性や仕様、テストの目的やスケジュール、利用可能なツール等までを考慮して、適切なテスト技法を選択することが重要となる。 また、どのような狙いでテストをするのか？（状態遷移の確認するのか？入力条件の組み合わせを確認するのか？など）によって、それぞれのテストの狙いに応じたテスト技法を選択する必要があることも付け加えておく。</p>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>
</div>



<h2 class="wp-block-heading"><strong>テスト仕様書（テストケース）の作成（ポイントのみ）</strong></h2>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="566" height="381" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉑.jpg" alt="" class="wp-image-24788" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉑.jpg 566w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉑-300x202.jpg 300w" sizes="auto, (max-width: 566px) 100vw, 566px" /></figure>



<p>テスト仕様書（テストケース）は、設計したテストケースをテスト実施者が間違いなく実行できるよう、手順や期待結果などをまとめたものである。組織によっては、「テストケース」や「チェックリスト」など様々な呼び名が付いているようだが、全て同じものである。ここでは、テスト仕様書作成時に押さえておきたいポイントをまとめておく。</p>



<figure class="wp-block-table"><table class="has-fixed-layout" style="border-width:5px"><tbody><tr><td>ポイント</td><td>注意点</td></tr><tr><td>期待結果</td><td>1つのテストケースに対して期待結果は1つにすること</td></tr><tr><td>入力値</td><td>入力値は指定した方がよい（指定しなかった場合、何を入力してテストしたかわからないため、正確なテストが実施されたかが判断できない）</td></tr><tr><td>手順</td><td>手順はなるべく省かないようにする（手順ごとに番号を振るとよい）</td></tr></tbody></table></figure>



<figure class="wp-block-image aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="567" height="84" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉒.jpg" alt="" class="wp-image-24790" style="width:751px;height:auto" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉒.jpg 567w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉒-300x44.jpg 300w" sizes="auto, (max-width: 567px) 100vw, 567px" /></figure>



<p class="has-text-align-center">▲図１１：テスト仕様書（テストケース）のイメージ</p>



<p>ちなみに厳密には、「テストケース」はひとつひとつのケースのこと、「テスト仕様書」は作成したテストケースの集まり（全てのテストケース）のことを指す。これも覚えておこう。</p>



<h2 class="wp-block-heading"><strong>不具合管理</strong></h2>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="566" height="393" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉓.jpg" alt="" class="wp-image-24791" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉓.jpg 566w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉓-300x208.jpg 300w" sizes="auto, (max-width: 566px) 100vw, 566px" /></figure>



<p>ここからは、テストで検出した不具合の管理について一通りのことを解説する。</p>



<ul class="wp-block-list">
<li><strong>不具合の定義</strong></li>
</ul>



<p>不具合とは、ソフトウェアが「期待通りに動作しない状態」や、「ユーザーの要求とは異なった振る舞いをする状態」のことを指す。</p>



<ul class="wp-block-list">
<li><strong>不具合管理のプロセス</strong></li>
</ul>



<p>不具合は、基本的に以下の流れで管理する。以下、ステップごとに説明する。</p>



<figure class="wp-block-table"><table style="border-width:5px"><tbody><tr><td>ステップ</td><td>作業</td><td>説明</td></tr><tr><td>１</td><td>不具合の報告</td><td>不具合を発見したら、不具合管理表に詳細を記載する。記載内容には、再現手順や環境情報を含める。</td></tr><tr><td>２</td><td>不具合の優先順位付け</td><td>不具合管理表に並んだ不具合の深刻さや影響度に応じて優先順位を設定する。また、修正しない不具合がある場合は修正しない理由を明確にする。</td></tr><tr><td>３</td><td>不具合の修正作業</td><td>優先度の高い不具合から修正に取り掛かる。優先度の低い不具合まで、修正すると決めたすべての不具合に対して修正作業を行う。</td></tr><tr><td>４</td><td>不具合修正後の再テスト</td><td>修正が完了したら再度テストを実施し、修正ができていること、また修正により既存の機能に影響していないかを確認する。もし、修正が未完了だった場合は、再度不具合修正作業に戻る。</td></tr><tr><td>５</td><td>不具合のクローズ</td><td>再テストが完了したらその不具合をクローズする。ここまでの流れを修正する全ての不具合に対して実施する。</td></tr></tbody></table></figure>



<figure class="wp-block-image aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="567" height="150" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉔.jpg" alt="" class="wp-image-24794" style="width:757px;height:auto" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉔.jpg 567w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉔-300x79.jpg 300w" sizes="auto, (max-width: 567px) 100vw, 567px" /></figure>



<p class="has-text-align-center">▲図１２：不具合対応フロー（イメージ）</p>



<ul class="wp-block-list">
<li><strong>不具合管理表への記載内容</strong></li>
</ul>



<p>不具合報告（不具合管理表への記載内容）は具体的かつ明確でないと、修正作業を行う開発者に「何をどのように修正すればよいか」が正確に伝わらないことがある。そのようなことが起こらないよう、不具合報告には最低限、以下の情報を含めること。</p>



<figure class="wp-block-table"><table class="has-fixed-layout" style="border-width:5px"><tbody><tr><td>報告内容</td><td>説明・備考</td></tr><tr><td>不具合の説明</td><td>説明は5W2Hに沿いつつ簡潔に記載する。（これによって具体的な説明になる）</td></tr><tr><td>再現手順</td><td>不具合が発生するまでに行う操作すべてを手順として記載する。（手順は省略してはいけない）</td></tr><tr><td>エビデンスの添付</td><td>エビデンスとして、スクリーンショットやログファイルを添付する。<br>（これらの取得には時間がかかるため、テストに使える時間との兼ね合いをみて可能な限り取得するようにしたい）</td></tr></tbody></table></figure>



<figure class="wp-block-image aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="567" height="85" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉖.jpg" alt="" class="wp-image-24796" style="width:773px;height:auto" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉖.jpg 567w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉖-300x45.jpg 300w" sizes="auto, (max-width: 567px) 100vw, 567px" /></figure>



<p class="has-text-align-center">▲図１３：不具合管理表のイメージ</p>



<ul class="wp-block-list">
<li><strong>不具合管理ツール</strong></li>
</ul>



<p>不具合管理は、エクセルなどのテンプレートで管理する場合やツールを利用する場合など、その組織によってさまざまだが、ツールを利用した方が作業を効率化できる要素は多い。無料で使えるもの（例えば“Redmine無料版”など）もあるので、まだ試したことがない方は一度試してみてほしい。</p>



<p>５分でわかるRedmineの概要<br><a href="https://redmine.jp/gofun/overview" target="_blank" rel="noreferrer noopener">https://redmine.jp/gofun/overview</a></p>



<ul class="wp-block-list">
<li><strong>不具合のパターン</strong></li>
</ul>



<p>ソフトウェア開発とは、顧客の要求から要件を定義して、それをプログラムで実現しようとする一連の活動である。この活動途中で何らかのヒューマンエラーが起きたときに不具合が混入してしまうわけだが、その原因は一つとは限らない。一度じっくりと下図をみながらその原因を考えてみてほしい。きっと新しい発見があると思う。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="567" height="339" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉕.jpg" alt="" class="wp-image-24795" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉕.jpg 567w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉕-300x179.jpg 300w" sizes="auto, (max-width: 567px) 100vw, 567px" /></figure>



<p class="has-text-align-center">▲図１４：不具合のパターン</p>



<figure class="wp-block-table"><table style="border-width:5px"><tbody><tr><td>No.</td><td>結果</td><td>状況</td><td>不具合の原因</td></tr><tr><td>１</td><td>仕様通りに動作する</td><td>要件定義とプログラムが一致している</td><td>なし</td></tr><tr><td>２</td><td rowspan="3">仕様と異なった動作をする</td><td>要件定義通りにプログラムされていない</td><td>誤り</td></tr><tr><td>３</td><td>要件定義がプログラムされていない</td><td>漏れ</td></tr><tr><td>４</td><td>要件定義にないことがプログラムされている</td><td>冗長</td></tr><tr><td>５</td><td>仕様自体が間違えている</td><td>要件定義のミス</td><td>要求の抽出漏れ</td></tr></tbody></table></figure>


<div class="sc_getpost"><a class="clearfix" href="https://qualitycube.jp/2022/10/31/requirement-definition/"  target="_blank"><div class="sc_getpost_thumb post-box-thumbnail__wrap"><img decoding="async" src="data:image/gif;base64,R0lGODdhAQABAPAAAN3d3QAAACwAAAAAAQABAAACAkQBADs=" width="150" height="150" alt="システム開発の要件定義とは│成功のもとは要件の不備をゼロにすること" loading="lazy" data-src="https://qualitycube.jp/wp-content/uploads/2022/11/システム開発の要件定義とは│成功のもとは要件の不備をゼロにすること-150x150.jpg" class="lazyload"><span style="background:" class="sc_getpost_cat">ブログ</span></div><div class="title"><span class="badge">合わせて読みたい</span>システム開発の要件定義とは│成功のもとは要件の不備をゼロにすること</div><div class="substr">要件定義では、知らず知らずに顧客の思い描いている絵と異なった絵を描いてしまうことがあります。これを本文では「要件の不備」として説明しています。本記事ではシステム開発の最初の入り口で躓かないための要件定義の基本について解説していきます。...</div></a></div>



<p>▲こんな記事も読まれています</p>



<h2 class="wp-block-heading"><strong>テストの定量的品質管理</strong></h2>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="562" height="361" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉗.jpg" alt="" class="wp-image-24797" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉗.jpg 562w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉗-300x193.jpg 300w" sizes="auto, (max-width: 562px) 100vw, 562px" /></figure>



<p>ソフトウェアには“目に見えない”という特徴がある。そのため、管理するためにはソフトウェアの状況を目に見えるようにする必要がある。ここで登場するのが定量的品質管理である。ソフトウェア品質を取り扱う上で一番重要なことは<strong>品質を見える化</strong>することであり、中でも数値化がポイントとなる。</p>



<p>数値への置き換えが可能になると、グラフ形式にして上がり下がりの推移がわかり、比較もできる。そして、比較により分析も可能になり、客観的な評価も可能になる。それを体系的にしたものが定量的品質管理である。</p>



<p>定量的品質管理の第一歩目は、適切なメトリクスを定義することから始まる。メトリクスはあまり聞き慣れない用語だと思うので、まずはメトリクスの意味から確認しよう。</p>



<div class="wp-block-dvaux-frame sc_frame_wrap normal titlenone"><div class="sc_frame_title normal titlenone" style="background-color:#ccc"></div><div class="sc_frame" style="background-color:#fff;border-color:#ccc">
<p>メトリクスとは、さまざまな活動を定量化し、その定量化したデータを分かりやすく加工した指標のこと。要するに、何かしらのデータ（数値）を集めて、計算や分析を加えて意味のあるデータ（数値）に変換したものである。</p>
</div></div>



<p>では、次からメトリクスの具体例をみていこう。テストで定量的品質管理を行う上では、以下のメトリクスが代表的で、実際のプロジェクトでも用いられる場合が多い。それぞれがどのような指標なのかを解説する。</p>



<figure class="wp-block-table"><table class="has-fixed-layout" style="border-width:5px"><tbody><tr><td>メトリクス</td><td>説明</td><td>見方</td></tr><tr><td>バグ密度</td><td>ソースコード1,000行あたりの不具合数の割合</td><td>バグ密度が高い場合は、品質がよくないか、普段より有効なテストができたかの何れかが想定できる</td></tr><tr><td>テスト密度</td><td>テストケース数をテスト対象の機能やソースコードの行数で割った割合</td><td>テスト密度が高いほどテストが網羅的であることを示すが、テストの有効性はどうであったかを考慮する必要がある</td></tr></tbody></table></figure>



<p>あと、あまり知られていないが、不具合を修正するまでの時間をメトリクスとして収集するのも、テストプロセスを見直したい組織にとっては意味があったりする。</p>



<figure class="wp-block-table"><table class="has-fixed-layout" style="border-width:5px"><tbody><tr><td>メトリクス</td><td>説明</td><td>見方</td></tr><tr><td>不具合修正時間</td><td>不具合を発見してから修正完了までにかかった時間（日数）</td><td>修正時間が長い場合は、その原因を追究し、プロセスの見直しが必要かどうかを判断する</td></tr></tbody></table></figure>



<p>実際の分析方法には、管理図分析やゾーン分析等があるが、ここではイメージだけをお伝えする。特にIPAの資料にとても詳しく書かれているので、そちらを参考にしてほしい。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="483" height="614" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉘.jpg" alt="" class="wp-image-24798" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉘.jpg 483w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉘-236x300.jpg 236w" sizes="auto, (max-width: 483px) 100vw, 483px" /></figure>



<p class="has-text-align-center">▲図１５：モデルを用いた分析方法（続 定量的品質予測のススメ　P.14から抜粋）</p>



<p>【IPA】定量的品質予測のススメ<br><a href="https://www.ipa.go.jp/archive/publish/qv6pgp0000000yw8-att/000005133.pdf" target="_blank" rel="noreferrer noopener">https://www.ipa.go.jp/archive/publish/qv6pgp0000000yw8-att/000005133.pdf</a></p>



<p>【IPA】続 定量的品質予測のススメ<br><a href="https://www.ipa.go.jp/archive/publish/qv6pgp0000000zi2-att/000005143.pdf" target="_blank" rel="noreferrer noopener">https://www.ipa.go.jp/archive/publish/qv6pgp0000000zi2-att/000005143.pdf</a></p>



<h2 class="wp-block-heading"><strong>テストチームの構築と管理</strong></h2>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="563" height="366" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉙.jpg" alt="" class="wp-image-24799" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉙.jpg 563w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉙-300x195.jpg 300w" sizes="auto, (max-width: 563px) 100vw, 563px" /></figure>



<p>ソフトウェアテストは一人でやることよりも、チームを組んで進めるシチュエーションの方が圧倒的に多くなる。そのため、テストチームについても触れておく。</p>



<ul class="wp-block-list">
<li><strong>タスクと役割分担</strong></li>
</ul>



<p>テストを進めるうえで発生する主なタスクとその役割分担は、だいたい以下のようになる。</p>



<figure class="wp-block-table"><table class="has-fixed-layout" style="border-width:5px"><tbody><tr><td>タスク</td><td>役割分担</td></tr><tr><td>全体テスト計画の策定</td><td>プロジェクトマネージャー</td></tr><tr><td>レベルテスト計画の策定</td><td>テストマネージャー</td></tr><tr><td>テストのコントロール、モニタリング</td><td>テストマネージャー</td></tr><tr><td>テスト分析→設計→実施</td><td>テストチーム</td></tr><tr><td>テスト実行</td><td>テストチーム</td></tr><tr><td>不具合起票</td><td>テストチーム</td></tr><tr><td>不具合修正有無の決定及び修正作業</td><td>開発者</td></tr><tr><td>修正確認テスト実行</td><td>テストチーム</td></tr><tr><td>振り返り</td><td>関係者全員</td></tr></tbody></table></figure>



<ul class="wp-block-list">
<li><strong>テストチームのスキルセット</strong></li>
</ul>



<p>上表のとおり、テストチームはテストの実務全般に携わるため、一般的なテストの技術以外にも求められるスキルがある。テストチームの一員になったら、テスト技術以外の以下のスキルも身に付ける必要がある。</p>



<figure class="wp-block-table"><table class="has-fixed-layout" style="border-width:5px"><tbody><tr><td>スキルセット</td><td>説明</td></tr><tr><td>ドキュメント読解力</td><td>インプットとなる仕様書や設計書からテストケースを抽出する際に必要となる</td></tr><tr><td>テスト技術力</td><td>手動のテストのみならず、自動化テストの知識と技術も必要となる</td></tr><tr><td>コミュニケーション力</td><td>プロジェクトの他のチームメンバーとの連携が必要で、特に開発者とのコミュニケーションが多くなる</td></tr><tr><td>作業の正確性</td><td>間違ったテストをしても全く意味がないため、テスターには作業スピードとともに作業の正確性が重要視される。</td></tr></tbody></table></figure>



<ul class="wp-block-list">
<li><strong>テストチームの管理</strong></li>
</ul>



<p>テストチームを効果的に管理するため、テストマネージャーになったら以下のポイントに留意しよう。</p>



<figure class="wp-block-table"><table class="has-fixed-layout" style="border-width:5px"><tbody><tr><td>ポイント</td><td>説明</td></tr><tr><td>定期的にミーティングを実施する</td><td>進捗や課題については、なるべくデイリーでミーティングを行うようにし、何か問題が起きた場合にはすぐに手を打てるようにしておくことが重要。<br>また、テスターの相談にも対応できるように1on1なども考慮する。</td></tr><tr><td>エスカレーションを徹底させる</td><td>致命的な不具合が発見された場合などは特にマネージャーにすぐに報告があがるように体制を整えておく。なお、不具合の状況によっては、テストの優先順位を変更するなどの判断が必要となる場合があるため、指示が徹底できる仕組みについても考慮すること。</td></tr><tr><td>トレーニングの機会を設ける</td><td>テストの進捗はテスターのスキルに左右されることが多いため、必要に応じてテスターに対するトレーニングの機会を設ける。特に新しい技術や手法を取り入れる際は、トレーニング期間を設けることは必須と心得ておくこと。</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><strong>&nbsp;手動テスト vs 自動化テスト</strong></h2>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="563" height="367" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉚.jpg" alt="" class="wp-image-24800" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉚.jpg 563w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉚-300x196.jpg 300w" sizes="auto, (max-width: 563px) 100vw, 563px" /></figure>



<p>ここからは、テスト関連で知っておいたほうがよいことを解説していく。まずは自動テストから見ていこう。</p>



<p>これまで説明してきたような、テストケースを一つ一つ人の手で行うテストを手動テスト、一方、スクリプトやツールを利用して人の手を介さずに行うテストを自動化テストと呼ぶ。いま世の中的には、「テストが早く大量にこなせる」「コストが安くなる」といった呼び声でテスト自動化の風潮に流れつつあるようだが、本当にその流れに従うことはよいことなのだろうか。以下に、自動化テストと手動テストを項目ごとに並べ、それぞれを比較しながら考察してみたいと思う。</p>



<figure class="wp-block-table"><table class="has-fixed-layout" style="border-width:5px"><tbody><tr><td>項目</td><td>手動テスト</td><td>自動化テスト</td></tr><tr><td>テスト準備について</td><td>自動化テストよりも早くできる（ただし毎回準備する必要がある）</td><td>スクリプトの用意など、手動テストよりも時間がかかる（ただし今後も同じテストをする場合は次からは準備は不要）</td></tr><tr><td>テスト実行について</td><td>手動で行う</td><td>自動でできる</td></tr><tr><td>テスト実行時の応用について</td><td>不具合が発見されたとき、本当に不具合なのか、テストケースが間違えているのか、などとテストケース以外のことについて探索的にテストをしている</td><td>テストケース以外のテストはしない（できない）</td></tr><tr><td>テストの進捗（テンポ）について</td><td>すべてのテストケースを同じテンポで進めることはできない（テストケースが読み解けなかったり、不具合かどうかを確かめるのに時間がかかったりする）</td><td>同じスピードでテンポよく進めることができる</td></tr><tr><td>テストの実行スピードについて</td><td>テスト実行スピードは遅い（自動化テストと比べものにならない）</td><td>テスト実行スピードは速い（反復的なテストに有効）</td></tr><tr><td>テストの実行時間帯について</td><td>テスト実行はテスターがいる時間のみしかできない</td><td>テスト実行は一日中可能</td></tr><tr><td>テストの正確性について</td><td>ヒューマンエラーは避けられない</td><td>エラーは起こらない（決めたとおりに実行する）</td></tr><tr><td>ユーザビリティについて</td><td>使いやすさや見やすさなど、ユーザーになりきって確認でき、テストケース以外の不具合にも気を配ることができる（例えば画面遷移テストで画面のレイアウト崩れに気づくなど）</td><td>できない（というか向いていない）<br>また、テストをした時に手動だったら気づくようなテストケース以外の不具合（レイアウト崩れなど）は発見できない（事前に設定されたテストコードに従ったテストしか行わない）</td></tr><tr><td>イレギュラーなテストについて</td><td>できる（テスターの判断により広範に行うことが可能）</td><td>できない（テストできるのは記述した範囲のみ）</td></tr><tr><td>回帰テスト（テストケースが固定）について</td><td>自動化テストに勝る特徴はない</td><td>自動化テストが得意とするテスト</td></tr><tr><td>テスト結果判断について</td><td>主観的になることがある</td><td>期待結果と同じであればOK、異なればNG（それ以外の判断はない）</td></tr><tr><td>新たな不具合の発見について</td><td>人がアナログ的に判断するため、新たな不具合が発見されやすい</td><td>人が決めたテストしかしないため、新たな不具合が見つかることはない</td></tr><tr><td>不具合分析について</td><td>不具合を発見する毎に再現性も含めて確認しているので、分析時には手間や時間がかからない</td><td>発見された不具合は、あとから人の手で一つ一つ再現しなければならないため、分析には多くの手間と時間を要する</td></tr><tr><td>テストメンテナンスについて</td><td>ざっと見直す程度</td><td>スクリプトのメンテナンスが必要</td></tr><tr><td>毎回新しいテストケースを作成する場合</td><td>テスト分析、設計をしてからテストケースを作成（今まで通り）</td><td>テスト準備でコストがかかるため、同じテストケースを繰り返しできないようなテストに有効性はない</td></tr><tr><td>ツール選定について</td><td>ツールは使わない</td><td>機能とコストのバランスが難しい（一番安価なものをまず使ってみて、使い勝手の悪い部分や、実装されてなくて困った機能等をリストアップして、それら問題が解決できるツールを選択するのがベター）</td></tr><tr><td>コストについて</td><td>①初期投資＝不要<br>➁実行＝必要（テスト工数（人件費）がかかる）<br>③不具合分析＝必要（工数（人件費）がかかる<br>④メンテナンス＝ほぼ不要</td><td>①初期投資＝必要（自動化ツール導入費、スクリプト作成）<br>➁実行＝不要<br>③不具合分析＝必要（工数（人件費）がかかる（※但し不具合があったことしかわからないため、人の手で再現手順の確認などイチから不具合分析を行わなければならない）<br>④メンテナンス＝必要（スクリプトの書き換え作業が発生する）</td></tr></tbody></table></figure>



<p>このように、自動化テストは万能ではなく、手動テスト、自動化テスト、それぞれに利点もあれば欠点もある。自動化テストが効果的な繰り返しできるテストにおいてはとても有効な手段となるが、ツールの導入やスクリプトの準備、メンテナンス等に結構な額のコストがかかることもあり、自動化の導入を進める際は、十分に検討したうえで手を打つようにしたいところだ。</p>



<h2 class="wp-block-heading"><strong>テスト自動化の８原則</strong></h2>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="567" height="377" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉛.jpg" alt="" class="wp-image-24801" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉛.jpg 567w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉛-300x199.jpg 300w" sizes="auto, (max-width: 567px) 100vw, 567px" /></figure>



<p>「テスト自動化の８原則」についてはご存じだろうか。テスト自動化の８原則は、テスト自動化研究会により導き出された、さまざまなテスト自動化に共通する原則のことで、テスト自動化に取り組む際の注意点が網羅的に書かれている。</p>



<p>テスト自動化については、この８原則も紹介しておきたいと思う。なお、詳細については下記URLから確認してもらえればと思う。</p>



<ul class="wp-block-list">
<li><strong>テスト自動化の８原則</strong></li>
</ul>



<figure class="wp-block-table"><table style="border-width:5px"><tbody><tr><td>原則１</td><td>手動テストはなくならない</td></tr><tr><td>原則２</td><td>手動でおこなって効果のないテストを自動化しても無駄である</td></tr><tr><td>原則３</td><td>自動テストは書いたことしかテストしない</td></tr><tr><td>原則４</td><td>テスト自動化の効用はコスト削減だけではない</td></tr><tr><td>原則５</td><td>自動テストシステムの開発は継続的におこなうものである</td></tr><tr><td>原則６</td><td>自動化検討はプロジェクト初期から</td></tr><tr><td>原則７</td><td>自動テストで新種のバグが見つかることは稀である</td></tr><tr><td>原則８</td><td>テスト結果分析という新たなタスクが生まれる</td></tr></tbody></table></figure>



<p>引用：テスト自動化の８原則<a href="https://sites.google.com/site/testautomationresearch/test_automation_principle" target="_blank" rel="noreferrer noopener">https://sites.google.com/site/testautomationresearch/test_automation_principle</a></p>



<h2 class="wp-block-heading"><strong>アジャイル開発とテスト</strong></h2>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="564" height="375" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉜.jpg" alt="" class="wp-image-24802" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉜.jpg 564w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉜-300x199.jpg 300w" sizes="auto, (max-width: 564px) 100vw, 564px" /></figure>



<p>さて、ここからはアジャイル開発とテストについて見ていこう。</p>



<p>アジャイル開発と言えば、俊敏さ、柔軟性、頻繁なリリースといったイメージだと思うが、ソフトウェア品質を「品質＝顧客満足」と単純化して考えた場合、アジャイル開発ほど高品質な開発手法はないと考えている。なぜなら、アジャイルの特徴である「俊敏さ」「柔軟性」「頻繁なリリース」はすべて顧客が喜ぶ要素だからである。</p>



<p>例えば、頻繁なリリースについては、顧客がその都度動くものに対してOKサインを出していることになる。つまり、アジャイル開発とは、常に顧客を満足させながら開発を進める高品質な開発手法だと言える。</p>



<p>また、アジャイル開発に合わせたテスト方法に、いくつかのベストプラクティスも存在するので、以下に紹介しておく。</p>



<figure class="wp-block-table"><table class="has-fixed-layout" style="border-width:5px"><tbody><tr><td>テスト方法</td><td>説明</td></tr><tr><td>テスト駆動開発（TDD）</td><td>先にテストケースを書いてからコードを書くアプローチのこと。この手法により、コードが期待される動作を満たすことが確実になる。</td></tr><tr><td>ペアプログラミング</td><td>2人のプログラマーが1台のコンピュータを使って共同でコードを書くプロセスのこと。2人が協力することで各自の知識やスキルが相互に補完され、新しい技術やライブラリについての理解が深まるといった利点がある。</td></tr><tr><td>継続的インテグレーション（CI）</td><td>コードが変更されるたびに自動的にビルドとテストを行うプロセスのこと。変更の影響を早期に確認できるのが利点となる。</td></tr></tbody></table></figure>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="345" height="331" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉝.jpg" alt="" class="wp-image-24803" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉝.jpg 345w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉝-300x288.jpg 300w" sizes="auto, (max-width: 345px) 100vw, 345px" /></figure>



<p class="has-text-align-center">▲図１６：テスト駆動開発（TDD）のイメージ図</p>



<h2 class="wp-block-heading"><strong>新しいテスト手法とツールの登場</strong></h2>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="566" height="370" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉞.jpg" alt="" class="wp-image-24804" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉞.jpg 566w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉞-300x196.jpg 300w" sizes="auto, (max-width: 566px) 100vw, 566px" /></figure>



<p>これからのテクノロジーの進化と共に、ソフトウェアテストもより変化が求められるようになるはずだ。実際にAIを活用したテストも登場しており、今後AIにより、ソフトウェアテストがもっと楽に、もっと効率的になる日はそう遠くないのかもしれない。では、いま注目されているテストをざっと確認しておこう。</p>



<figure class="wp-block-table"><table class="has-fixed-layout" style="border-width:5px"><tbody><tr><td>注目されているテスト</td><td>新機能</td><td>できること</td></tr><tr><td rowspan="2">AIを活用したテスト</td><td>自動テスト生成</td><td>過去のテスト結果をもとに、新しいテストケースの自動生成が可能になる</td></tr><tr><td>異常検知</td><td>パターン学習により、予期しないバグの早期発見が可能になる</td></tr><tr><td>クラウドベースのテスト環境</td><td>スケーラビリティ</td><td>必要に応じてリソースが追加できるようになることで、負荷テストや大規模なテストの実施が容易になる</td></tr><tr><td>DevOpsとの統合</td><td>テストの自動化と統合</td><td>開発プロセスのテストが自動化されていくとともに、コードの変更ごとに即座にテストの環境構築が可能になる（※DevOpsの流れにより、開発と運用の一体化が進む中で、テストもこの流れに組み込まれることが予測される）</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><strong>ソフトウェアテストの7原則</strong></h2>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="567" height="367" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉟.jpg" alt="" class="wp-image-24805" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉟.jpg 567w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㉟-300x194.jpg 300w" sizes="auto, (max-width: 567px) 100vw, 567px" /></figure>



<p><a href="#link01" data-type="internal" data-id="#link01">５章テストプロセス</a>で採り上げたJSTQBには、「テストの原則」についても書かれている。</p>



<p>参考：テスト技術者資格制度 JSTQB　Foundation Level シラバス Version 2023V4.0.J02 P.18<br><a href="https://jstqb.jp/dl/JSTQB-SyllabusFoundation_VersionV40.J02.pdf" target="_blank" rel="noreferrer noopener">https://jstqb.jp/dl/JSTQB-SyllabusFoundation_VersionV40.J02.pdf</a></p>



<p>実際には７つの原則が示されているが、ソフトウェアテストに携わる者としてはどれもこれも最低限知っておくべきことなので、最後に紹介しておく。それぞれその意味するところをしっかりと吟味しながら読み進めてほしい。</p>



<figure class="wp-block-table"><table style="border-width:5px"><tbody><tr><td rowspan="4">原則１</td><td colspan="2"><strong>テストは欠陥があることは示せるが、欠陥がないことは示せない</strong></td></tr><tr><td>JSTQBによる説明</td><td>テストにより、テスト対象に欠陥があることは示せるが、欠陥がないことは証明できない。テストにより、テスト対象に残る未検出欠陥の数を減らせるが、欠陥が見つからないとしても、テスト対象の正しさを証明できない。</td></tr><tr><td>私見</td><td>いかに有効なテストができるかがポイントとなる。</td></tr><tr><td>ポイント</td><td>「網羅性が高いこと」、そして「正確なテストを実施すること」の２点がテストの有効さを示す。</td></tr><tr><td rowspan="4">原則２</td><td colspan="2"><strong>全数テストは不可能</strong></td></tr><tr><td>JSTQBによる説明</td><td>すべてをテストすることは、ごく単純なソフトウェア以外では非現実的である。全数テストの代わりに、テスト技法、テストケースの優先順位付け、リスクベースドテストを用いて、テストにかける労力を集中すべきである。</td></tr><tr><td>私見</td><td>テスト戦略とテスト技法はやはり重要である。</td></tr><tr><td>ポイント</td><td>テスト戦略（テスト計画）とテスト技法はソフトウェアテストには欠かせない。</td></tr><tr><td rowspan="4">原則３</td><td colspan="2"><strong>早期テストで時間とコストを節約</strong></td></tr><tr><td>JSTQBによる説明</td><td>プロセスの早い段階で欠陥を取り除くと、その後の作業成果物では取り除かれた欠陥に起因する欠陥を引き起こすことはない。SDLCの後半に発生する故障が少なくなるため、品質コストは削減される。早い段階で欠陥を見つけるために、静的テストと動的テストの両方をなるべく早い時期に開始すべきである。</td></tr><tr><td>私見</td><td>手戻りは悪以外何物でもない。手戻りを少なくするには、テストファーストの考え方（W字モデルの概念）が重要。また、レビューとテストの質の向上に取り組むことも重要。</td></tr><tr><td>ポイント</td><td>１：１０：１００の法則を理解しておくこと。（図１７参照）</td></tr><tr><td rowspan="4">原則４</td><td colspan="2"><strong>欠陥の偏在</strong></td></tr><tr><td>JSTQBによる説明</td><td>通常、見つかる欠陥や運用時の故障の大部分は、少数のシステムコンポーネントに集中する。この現象は、パレートの法則を示している。予測した欠陥の偏在、および実際にテスト中または運用中に観察した欠陥の偏在は、リスクベースドテストの重要なインプットとなる</td></tr><tr><td>私見</td><td>不具合が偏在する理由はある程度想定できる。（例えば、開発者の知識とスキルのレベル、プログラムの難易度、新しい技術の導入など）</td></tr><tr><td>ポイント</td><td>80/20の法則（全体の80%の問題は20%の機能から発生する）を応用して20の方に想定する機能から優先的にテストを行う。</td></tr><tr><td rowspan="4">原則５</td><td colspan="2"><strong>テストの弱化（殺虫剤のパラドックスにご用心）</strong></td></tr><tr><td>JSTQBによる説明</td><td>同じテストを何回も繰り返すと、新たな欠陥の検出に対する効果は薄れてくる。この影響を克服するため、テストとテストデータを変更したり新規にテストを作成したりすることが必要になる場合がある。しかし、例えば、自動化されたリグレッションテストのように、同じテストを繰り返すことが有益な結果を示すことができる場合がある。</td></tr><tr><td>私見</td><td>テストケースは定期的に見直し、更新する必要がある。
既存のテストケースを使い回している組織は要注意。
</td></tr><tr><td>ポイント</td><td>見直すべきポイントはテストタイプである。
但し、リグレッションテストの変更は逆効果になる可能性があるので注意。
</td></tr><tr><td rowspan="4">原則６</td><td colspan="2"><strong>テストはコンテキスト次第（テストは状況次第）</strong></td></tr><tr><td>JSTQBによる説明</td><td>テストに唯一普遍的に適用できるアプローチは存在しない。テストは、コンテキストによって異なる方法で行われる。</td></tr><tr><td>私見</td><td>テストのアプローチや内容は、プロジェクトの状況や環境によって異なるため、開発スタイルや製品の性質に応じてテスト戦略や方法を柔軟に変更する必要がある。</td></tr><tr><td>ポイント</td><td>テストの状況にはいくつかの捉え方がある。<br>① 利用するシチュエーション<br>② システム特性（人命に関わるシステムと社内業務システムでは求められる品質が違う）</td></tr><tr><td rowspan="4">原則７</td><td colspan="2"><strong>「欠陥ゼロ」の落とし穴</strong></td></tr><tr><td>JSTQBによる説明</td><td>ソフトウェアを検証するだけでシステムを正しく構築できると期待することは誤り（つまり、思い込み）である。例えば、指定された要件すべてを徹底的にテストし、検出した欠陥すべてを修正しても、ユーザーのニーズや期待を満たさないシステム、顧客のビジネスゴールの達成に役立たない、およびその他の競合システムに比べて劣るシステムが構築されることがある。検証に加えて、妥当性確認も実施すべきである。</td></tr><tr><td>私見</td><td>Ｖ＆Ｖ（Verification＆Validation）はどちらかに偏ってもいけない。ただ、Validation視点が抜け落ちるのは問題外。</td></tr><tr><td>ポイント</td><td>Ｖ＆Ｖのプロセスは順序よく進めること。（Verification→Validationの順）</td></tr></tbody></table></figure>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="567" height="319" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㊱.jpg" alt="" class="wp-image-24806" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㊱.jpg 567w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㊱-300x169.jpg 300w" sizes="auto, (max-width: 567px) 100vw, 567px" /></figure>



<p class="has-text-align-center">▲図１７　１：１０：１００の法則</p>



<p>引用：「ソフトウェア品質保証の方法論、技法、その変遷」P.31を参考に作図<br><a href="https://www.jaspic.org/event/2009/SPIJapan/keynote/SJ9keynote.pdf" target="_blank" rel="noreferrer noopener">https://www.jaspic.org/event/2009/SPIJapan/keynote/SJ9keynote.pdf</a></p>



<h2 class="wp-block-heading"><strong>ソフトウェアテストに関するその他（Q＆A形式）</strong></h2>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="567" height="375" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㊲.jpg" alt="" class="wp-image-24807" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㊲.jpg 567w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㊲-300x198.jpg 300w" sizes="auto, (max-width: 567px) 100vw, 567px" /></figure>



<p>この記事で書ききれなかったことをQ&amp;A形式でまとめたので、よかったらここもチェックしておいてほしい。</p>



<figure class="wp-block-table"><table class="has-fixed-layout" style="border-width:5px"><tbody><tr><td>質問</td><td>回答</td></tr><tr><td>重大な不具合から見つけることはできますか？</td><td>不可能。（不具合の重大さはその不具合を発見してはじめてわかる）</td></tr><tr><td>テストケースが不足していると感じるとき、どうすれば良いか？</td><td>テストの目的とテストレベルからテストタイプを見直すとよい。もしテストタイプが抜けていたら追加してテストケースにまで落とし込む。</td></tr><tr><td>テストの優先順位を決めるのが難しい場合、どうするか？</td><td>リスクベースアプローチを用いて、機能の重要度やユーザー影響度に基づいて優先順位を設定する。また顧客と協議するのもよい。</td></tr><tr><td>テストの進捗状況を報告する際、どの指標を使うべきか？</td><td>不具合検出率（成果進捗）とテストケースの消化率（工程進捗）は最低限用意した方がよい。</td></tr><tr><td>チーム内でのテストの認識にばらつきがある場合、どうすれば良いか？</td><td>根本解決するにはテスト基準を明文化するのが一番よい方法であるが、デイリーミーティングを継続的に実施することも有効。（テストプロセスや目的の共通理解を促進するのに役立つ）</td></tr><tr><td>テスト結果とテストケースの期待結果に違和感があった場合、どのようにするべきか？</td><td>まずテストケースの正確性を確認する。（テストケースの設計、環境設定、データの正確性、手順等に間違いがないかを確認）<br>テストケースに間違いが認められなければ、次に設計書に間違いがないかを確認する。<br>設計書にも間違いがなければ、顧客と相談する。</td></tr><tr><td>スケジュールが圧迫されている中で品質を保つには？</td><td>機能の重要度やユーザー影響度が高い機能に絞ってテストをする。つまり、テストの優先順位を決めるのと同じ考え方になる。</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><strong>編集後記</strong></h2>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="565" height="374" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㊳.jpg" alt="" class="wp-image-24808" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㊳.jpg 565w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㊳-300x199.jpg 300w" sizes="auto, (max-width: 565px) 100vw, 565px" /></figure>



<p>ソフトウェアテストのテストレベル、テストタイプ、テストプロセス、テストドキュメント、テスト技法などを理解することは、効果的なテストを実践するための知識であるとともに、スキルでもあることをお伝えしてきた。また、単体テストから受け入れテストまで、各テストレベルには特有の目的とアプローチがあること、アジャイル開発は高品質な開発手法であること、テスト（自動化テストも含め）には原則があることも、お伝えしてきたとおりである。私にできるのはここまでで、今後この情報をどう活かすかはあなた次第である。</p>



<p>さあ、いますぐ行動しよう！</p>



<h2 class="wp-block-heading"><strong>お問い合わせ</strong></h2>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="567" height="375" src="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㊴.jpg" alt="" class="wp-image-24809" srcset="https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㊴.jpg 567w, https://qualitycube.jp/wp-content/uploads/2024/11/ソフトウェアテストの全ノウハウ_画像㊴-300x198.jpg 300w" sizes="auto, (max-width: 567px) 100vw, 567px" /></figure>



<p>QualityCybeの提供するテスト支援サービスでは、専門的な知見をもとに、貴社のテスト戦略や実務の最適化をサポートいたします。</p>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<div class="wp-block-dvaux-button button radius block dvaux"><a class="dvaux-button_link big" style="background-color:#000000;color:#fff;border-color:#ccc" target="_blank" rel="noopener" href="https://qualitycube.jp/service/practical-support/"><strong><strong>QualityCubeの下流工程支援サービスを見る</strong></strong></a></div>



<p class="has-text-align-center has-blue-color has-text-color has-link-color wp-elements-203680f29d5cf435b1a333a5ecfcdca2"><strong>下流工程支援には、テスト計画作成支援、テスト設計・仕様書作成支援、テスト実施支援、品質強化テスト支援など、さまざまなパターンをご用意しています。もちろんサービスの組み合わせも自由自在です！</strong></p>



<p class="has-text-align-center">また、ソフトウェアテストに関する知識を深めるためのeラーニングやセミナーサービスもご用意しております。このサービスにより、チーム全体のテストスキルを向上させ、品質向上を実現することが可能です。</p>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<div class="wp-block-dvaux-button button radius block dvaux"><a class="dvaux-button_link big" style="background-color:#000000;color:#fff;border-color:#ccc" target="_blank" rel="noopener" href="https://qualityroom.jp/software-test/"><strong>QualityRoomのテスト講座を見る</strong></a></div>



<p class="has-text-align-center has-blue-color has-text-color has-link-color wp-elements-ef0d147484560dc0af06f9c45885006c"><strong>テスト講座とは、ソフトウェア開発の品質保証において必要な知識とスキルを習得する研修です。IEEE8829をベースとしたテスト3表（テスト計画・テスト設計・テスト仕様書）についてポイントを解説していきます！</strong></p>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-text-align-center">ぜひ、この機会にQualityCubeのサービスをご利用いただき、ソフトウェア品質を向上させましょう。あなたからのお問合せをお待ちしています。</p>



<div class="wp-block-dvaux-button button radius block dvaux"><a class="dvaux-button_link big" style="background-color:#e97132;color:#fff;border-color:#ccc" target="_blank" rel="noopener" href="https://qualitycube.jp/service-inquiry/"><strong>お問い合わせ・ご相談はこちら</strong></a></div>



<p class="has-text-align-center has-blue-color has-text-color has-link-color wp-elements-2eb1e8723f8ab768fbe638085e2c70a7"><strong>ご相談は無料で承っております！</strong></p>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-text-align-center">なお、ブログの最新リリース情報につきましては、当社メルマガでリアルタイムにご確認いただけますので、本記事がよかった、ためになった、という方はぜひ、<strong><u><a href="https://qualitycube.jp/mail-magazine/" target="_blank" rel="noreferrer noopener">メルマガ登録</a></u></strong>もお願いします。</p>



<div class="wp-block-dvaux-button button radius block dvaux"><a class="dvaux-button_link big" style="background-color:#ffe822;color:#000000;border-color:#ccc" target="_blank" rel="noopener" href="https://qualitycube.jp/mail-magazine/">メルマガ登録はこちら</a></div>



<p class="has-text-align-center has-blue-color has-text-color has-link-color wp-elements-2c2f175bd4d2f42f9f8ea74d67e51f68"><strong>最新IT情報やお役立ち情報をコンサルタントが配信中！</strong></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ソフトウェアテストとは &#124; 重要な7原則とテストの種類について解説</title>
		<link>https://qualitycube.jp/software-test2022/</link>
		
		<dc:creator><![CDATA[yamasaki]]></dc:creator>
		<pubDate>Thu, 14 Jul 2022 05:54:29 +0000</pubDate>
				<category><![CDATA[ソフトウェアテスト]]></category>
		<category><![CDATA[ブログ]]></category>
		<guid isPermaLink="false">https://qualitycube.jp/?p=7491</guid>

					<description><![CDATA[私たちの生活のあらゆる面を支えるソフトウェア。ソフトウェアを安心・安全に利用するためには、開発工程においてソフトウェアが正常に動作するかを確認する「ソフトウェアテスト」が欠かせません。&#160; 本記事では、「ソフトウェアテスト」とはどの…]]></description>
										<content:encoded><![CDATA[
<p>私たちの生活のあらゆる面を支えるソフトウェア。ソフトウェアを安心・安全に利用するためには、開発工程においてソフトウェアが正常に動作するかを確認する<strong>「ソフトウェアテスト」</strong>が欠かせません。&nbsp;</p>



<p>本記事では、「ソフトウェアテスト」とはどのようなものか？という基礎的なことから、ソフトウェアテストに関わる人が知っておくべき重要な7原則、またテストの種類について、初心者の方にもわかりやすく解説します。&nbsp;</p>



<h2 class="wp-block-heading has-black-color has-pale-ocean-gradient-background has-text-color has-background has-link-color wp-elements-f93b9f8f958b657e71e56a8280da7d36"><strong>なぜ「ソフトウェアテスト」をするのか</strong>&nbsp;</h2>



<p>ソフトウェアテストとは、開発したソフトウェアが想定どおりに動作するかを評価・検証することを指します。テスト実施の目的としては、主に以下が挙げられます。</p>



<p>・ソフトウェアの正常な動作を保証する<br>・ソフトウェアの欠陥やバグを発見する<br>・意思決定の材料となる情報を提供する<br>・欠陥の発生を防ぐ</p>



<p>ソフトウェアをリリースする上で「不具合のない製品づくりを目指すこと」は非常に大切です。<br>不具合が多く期待通りに動作しないソフトウェアは、利用者の不満が増大し使い物にならず、クレームや企業の信用失墜にもつながりかねません。<br>そんな事態を防ぐためにも、ソフトウェアテストで不具合を発見し、品質不良を防ぐことが重要なのです。</p>



<p>しかしながら、人が開発する以上、開発工程での不具合をゼロにすることはほぼ不可能です。<br>そのためソフトウェアテストでは、不具合をゼロにすることではなく、<strong>ユーザーの期待に沿う形になっているかどうか</strong>を確認することも非常に重要です。</p>



<h2 class="wp-block-heading has-black-color has-pale-ocean-gradient-background has-text-color has-background has-link-color wp-elements-9791fd79f2fb85e5c782509e0f154ccb"><strong>ソフトウェアテストの7原則</strong>&nbsp;</h2>



<p>ソフトウェアテストを行う上で、理解しておくべきガイドラインが存在します。<br>それが、JSTQB（ソフトウェアテスト技術者の資格認定組織）のシラバスにも記載される<strong>「ソフトウェアテストの7原則」</strong>です。</p>



<figure class="wp-block-image aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="709" height="425" src="https://qualitycube.jp/wp-content/uploads/2024/01/7原則.png" alt="" class="wp-image-20158" style="width:650px" srcset="https://qualitycube.jp/wp-content/uploads/2024/01/7原則.png 709w, https://qualitycube.jp/wp-content/uploads/2024/01/7原則-300x180.png 300w" sizes="auto, (max-width: 709px) 100vw, 709px" /></figure>



<p><strong>原則1 テストは欠陥があることは示せるが、欠陥がないことは示せない</strong><br>テストで欠陥が見つかったとしても、それはソフトウェアに欠陥があったという事実に過ぎず、逆にテストで欠陥が見つからない場合でも、テストを実施していない範囲に欠陥があるかもしれません。<br>レアなテストケースが抜け漏れており、そこに欠陥が潜んでいた等の話はよく耳にしますし、リリース前にどれだけ手厚くレビューをしても、バグは発生するときは発生するものと思っておくのがよいでしょう。</p>



<p><strong>原則2 全数テストは不可能</strong><br>ソフトウェアテストにおいて、<strong>すべてのパターン（入力と事前条件の組み合わせ）を網羅することはほぼ不可能</strong>です。<br>小規模な製品テストで、入力される可能性のあるデータパターンがある程度限られているような場合であれば可能かもしれません。しかし大規模システムの場合、全ての条件の組み合わせ、入力条件の組み合わせでのテストは現実的ではありません。<br>そのためソフトウェアの性質やリスクなどを勘案し、実施可能なテスト範囲に絞り込んで優先度をつけテストするのが定石です。</p>



<p><strong>原則3 早期テストで時間とコストを節約</strong><br>欠陥を見つけるのが早ければ早いほど、修正コストは少なくなります。逆に言えば、<strong>開発が進むほど修正・手戻りのコストが多くなります</strong>。開発工程のなるべく早い段階でテストを行うことで、早期に不具合を潰しておきましょう。</p>



<p><strong>原則4 欠陥の偏在</strong><br>欠陥というのは、ソフトウェア全体に均等に分布しているのではなく、特定の機能やモジュール、クラスに集中するものです。特に、ひっ迫したスケジュールの中で作られた機能や、有識者が少なく十分なレビューが出来ていない機能などが代表的です。<br>効率的にテストを行うためには、テスト結果を都度分析し、欠陥が多発している箇所がないか確認し、重点的にテストする箇所を絞り込みます。</p>



<p><strong>原則5 殺虫剤のパラドックスにご用心</strong><br>同じ殺虫剤を使い続けることで虫が耐性を持ち、いずれ駆除できなくなります。同様に、おなじ観点のテストを何度も繰り返していると、新しい欠陥が見つからなくなることがあり、これを<strong>「殺虫剤のパラドックス」</strong>と言います。<br>これには、テストとテストデータを定期的に見直して、改定したり新規にテストを作成したりすることが重要です。特に、開発経験の少ないメンバーで構成されたチームの場合、相対的に視野が狭くなる傾向にあるため注意しましょう。</p>



<p><strong>原則6 テストは状況次第</strong><br>状況が異なればテストの方法も変わります。<br>例えば、金融系のシステム構築であれば、金額計算やデータの整合性を確保する点に重きを置いてテストをする必要があります。個人情報を大量に扱うシステムであれば、セキュリティに重きを置いてテストをします。<br>テストの効果は、テストの方法や技法、テストケースの選択や作成、テストの実行や評価など、テストの実施内容によって大きく変わります。テストの目的や状況に応じて最適な手法を選択しましょう。</p>



<p><strong>原則7 「バグゼロ」の落とし穴</strong><br>「バグ0＝高品質なシステム」というわけではありません。極端な例ですが「バグ0です、でも画面表示するのに30秒もかかります」といったシステムは高品質とは言えません。<br>テストの目的は、<strong>ソフトウェアに欠陥がないことを証明することではなく、ソフトウェアの品質を評価すること</strong>です。テストで欠陥が見つからなくても、それはソフトウェアが完璧であることを意味しないため注意が必要です。</p>



<h2 class="wp-block-heading has-black-color has-pale-ocean-gradient-background has-text-color has-background has-link-color wp-elements-3d8d5a6996bdd8bfea96fa16b5090402"><strong>ソフトウェアテストの種類</strong></h2>



<p>次に、ソフトウェアテストの種類について見ていきます。<br>テストには様々な種類がありますが、大きく以下のように分類できます。それぞれ詳しく見ていきます。</p>



<figure class="wp-block-image aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="600" height="329" src="https://qualitycube.jp/wp-content/uploads/2024/01/テストブログ画像0104-1.png" alt="" class="wp-image-20165" style="width:600px" srcset="https://qualitycube.jp/wp-content/uploads/2024/01/テストブログ画像0104-1.png 600w, https://qualitycube.jp/wp-content/uploads/2024/01/テストブログ画像0104-1-300x165.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /></figure>



<h3 class="wp-block-heading"><strong>開発工程別</strong></h3>



<p>●<strong>単体テスト</strong><br>単体テストは開発工程で最初に行うテスト。作成したプログラムを一つずつ単体でテストして正常に動作するかを検証し、個々のモジュールについて機能や性能、運用性などをチェックします。</p>



<p>●<strong>結合テスト</strong><br>単体テストで確認した複数のモジュールを組み合わせて、不具合がないか、連結がうまくいくかを検証します。小さな結合から大きな結合まで、いくつかの段階に分けて実施します。</p>



<p>●<strong>システムテスト</strong><br>プログラムとハードウェアを合わせてシステム全体のテストを行います。<br>システムテストが開発者側の最終テストです。ハードウェアを実際に動かしながら、すべてのサブシステムで想定される処理を一通り実施します。<br><br>システムテストは結合テストの修正が完了したタイミングで行いますが、テスト計画自体はシステムの基本設計の段階からすでにスタートしています。何故ならシステムテストの目的は、<strong>要件定義で決めた要件が満たされているかどうかを確認すること</strong>だからです。</p>



<p>●<strong>受け入れテスト（顧客側</strong>）<br>システムテストで問題がなければ発注者側に納品され、実際に稼働して受け入れテストに移ります。ここで問題がなければ、そのまま本番に移行します。</p>



<h3 class="wp-block-heading">テストの<strong>目的別</strong></h3>



<p>テストを行う目的（テストタイプ）別の分類です。なおソフトウェア品質に関する詳しい解説については、以下の記事を参照してください。<br></p>



<div class="wp-block-group is-layout-constrained wp-block-group-is-layout-constrained">
<p style="text-align: left;"><div class="sc_getpost"><a class="clearfix" href="https://qualitycube.jp/softwarequality/" ><div class="sc_getpost_thumb post-box-thumbnail__wrap"><img decoding="async" src="data:image/gif;base64,R0lGODdhAQABAPAAAN3d3QAAACwAAAAAAQABAAACAkQBADs=" width="150" height="150" alt="ソフトウェア品質とは～IT初心者向けに分かりやすく解説～" loading="lazy" data-src="https://qualitycube.jp/wp-content/uploads/2021/11/ソフトウェア開発における-ソフトウェア品質とは？-～初心者向けに分かりやすく解説～--150x150.jpg" class="lazyload"><span style="background:" class="sc_getpost_cat">ソフトウェア品質</span></div><div class="title"><span class="badge">合わせて読む</span>ソフトウェア品質とは～IT初心者向けに分かりやすく解説～</div><div class="substr">急速にデジタル化が進む現代社会においてシステムやアプリを動かす重要な役割を担うソフトウェアですが、それ自体はプログラムなので目には見えません。ソフトウェア品質はどのように担保されているのか具体例をあげながら、IT初心者にもわかりやすく解説します。...</div></a></div>
</div>



<p>●<strong>機能テスト</strong><br>機能が仕様どおりに実装されているかを検証するテスト</p>



<p>●<strong>非機能テスト</strong><br>どのように動くか、という機能以外の動作についての不具合を検証するテスト</p>



<p>●<strong>構造テスト</strong><br>ソースコードやデータなどソフトウェアの内部構造を検証するテスト</p>



<p>●<strong>確認テスト</strong><br>欠陥が正しく修正されていることを確認するテスト</p>



<p>●<strong>回帰テスト</strong><br>修正や追加等の変更を行った際に、他の機能に意図しない変更が起こっていないことを確認するテスト</p>



<h3 class="wp-block-heading">ソフトウェアテストの実行方法</h3>



<p>●<strong>動的テスト</strong><br>テストのためにソフトウェアを実行するテスト方法のこと。プログラムコードを実行し、その結果によってバグ検出や品質評価、動作確認を行います。</p>



<p>●<strong>静的テスト</strong><br>ソフトウェアを実行せずに行うテストのこと。プログラムコードを実行せず、ドキュメントやソースコードのチェックから不具合を検出します。</p>



<h3 class="wp-block-heading">ソフトウェアのテスト技法</h3>



<p>ソフトウェアテストの品質は、テスト項目の抽出に大きく依存しています。テストデータの抽出以降の作業が正確であっても、テスト項目の抽出が不十分であれば、テストに漏れが生じることになり、本来の目的を達成できません。<br>そこで、どのような操作をして何を確認するかを定めた「テストケース」を作成します。テストケース作成に用いる技法は以下の通りです。</p>



<p>●<strong>ホワイトボックステスト</strong><br>ホワイトボックステストはプログラムの論理構造（プロセス）が正しいかどうかのテストです。ここでは処理が正しく行われていることを確認し、このテストによってカバレッジ（網羅率）が算出され、プログラムの品質を計る一つの指標となります。<br>ただし、ホワイトボックステストで焦点となるのはあくまでプログラムの論理構造であり、以下のような不具合は見つけることはできません。</p>



<p>・要求仕様自体の誤りや不備<br>・データに関するバグ<br>・マルチタスクや割込みに関するバグ</p>



<p>●<strong>ブラックボックステスト</strong><br>ブラックボックステストは、プログラムを中身の見えない箱＝ブラックボックスとして扱うテストで、様々な入力に対して妥当な出力が返されるかどうかを確認します。ここでは中身の処理に関係なく、期待通りの結果となることを確認します。<br>ブラックボックステストには、<strong>「同値分割」「境界値分析」「デシジョンテーブルテスト」</strong>などの技法があります。</p>



<p><strong>同値分割</strong><br>同じような結果になる入力値をグループ分けし、各グループから1つずつテストすることで効率的に不具合が発見できます。このグループを「同値クラス」と呼びます。<br>それぞれの入力項目ですべてのクラスの入力を行えば、あらゆる入力に対してテストされたことになります。</p>



<p><strong>境界値分析</strong><br>ソフトウェアは入力した値によって動きが変わります。例えば、年齢を入力すると大人か子供かでメッセージが変わるツールがあるとします。大人と子供の境目を20歳に設定した場合、20歳は大人と子供どちらと判定されるでしょうか。このように、動きが変わる境目の値を<strong>境界値</strong>と言います。<br>境界値分析では、バグの起こりやすい境界値とその前後の値をテストすることで、ソフトウェアにバグがないかを調べます。これは同値分割と組み合わせることで、より効果的なテストになります。</p>



<p><strong>デシジョンテーブルテスト</strong><br>想定される様々な条件に対し、どのように動作するかを整理した表をデシジョンテーブル（決定表）と呼びます。このデシジョンテーブルを用いて行うテストをデシジョンテーブルテストと言います。</p>



<h2 class="wp-block-heading has-black-color has-pale-ocean-gradient-background has-text-color has-background has-link-color wp-elements-10ddab938f0de903be8c57d0a64d747a"><strong>さいごに</strong></h2>



<p>さて、ここまでソフトウェアテストの重要な原則や手法の種類について解説してきましたが、いかがでしたか？<br>ご紹介したのはごく初歩的なものですが、テストには様々な決まりや手法があり、対象によって実施すべき内容やボリュームは実に様々です。</p>



<p>弊社、<strong>株式会社QualityCube</strong>では<strong>チケット制のテスト工程代行サービス</strong><a href="https://qualitycube.jp/%e3%82%b5%e3%83%bc%e3%83%93%e3%82%b9/jitsumushien/%e3%83%86%e3%82%b9%e3%83%88%e5%ae%9f%e6%96%bd%e6%94%af%e6%8f%b4/quality-doctor-test/"><strong>「クオリティドクターテスト」</strong></a>を提供しております。<br>工数単位のチケットをあらかじめ購入しておき、テストが必要となった際に、必要な部分だけを委託することが可能で、開発コスト削減にもぴったりです。<br>ご興味をお持ちの方は、ぜひお気軽にご相談ください。</p>



<div class="wp-block-buttons is-content-justification-left is-layout-flex wp-container-core-buttons-is-layout-fc4fd283 wp-block-buttons-is-layout-flex">
<div class="wp-block-button is-style-fill"><a class="wp-block-button__link has-black-background-color has-background has-text-align-left wp-element-button" href="https://qualitycube.jp/%e3%82%b5%e3%83%bc%e3%83%93%e3%82%b9/jitsumushien/%e3%83%86%e3%82%b9%e3%83%88%e5%ae%9f%e6%96%bd%e6%94%af%e6%8f%b4/quality-doctor-test/"><strong>クオリティドクターテストサービスを見る</strong></a></div>
</div>



<p></p>



<div class="wp-block-dvaux-button button radius block dvaux"><a class="dvaux-button_link big" style="background-color:#e97132;color:#fff;border-color:#ccc" target="_blank" rel="noopener" href="https://qualitycube.jp/service-inquiry/">お問い合わせ・ご相談はこちら</a></div>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
