<html lang="en">
<head>
-<title>autotest_mk - Linux上のCASL II処理系</title>
+<title>Autotest_mk - GNU Makeを利用したテスト自動化ツール</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<meta name="description" content="autotest_mk - Linux上のCASL II処理系">
+<meta name="description" content="Autotest_mk - GNU Makeを利用したテスト自動化ツール">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="top" href="#Top">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
}
p {
- line-height: 1.5em;
+ line-height: 1.25em;
margin-top: 0;
margin-bottom: 0.5em;
}
text-decoration: underline;
}
-.command {
- font-family: monospace;
-}
-
-table.cartouche {
- width: 60%;
-}
-
pre.example {
padding: 0.5em 1em 0.5em 1em;
color: #CCC;
}
blockquote {
+ line-height: 1.25em;
border: 1px solid #00F;
}
-blockquote.p {
- margin-top:0;
- padding-top:0;
- line-height: 100%;
+kbd {
+ font-family: monospace;
+}
+
+kbd, code, .file {
+ margin-left:0.5em;
+ margin-right: 0.5em;
}
table, th, td {
border: none;
}
-pre.example .command, pre.example .option {
+pre.example .command, pre.example .option, pre.example kbd {
font-weight: bold;
+ font-family: monospace;
background-color: inherit;
color: white;
+ margin-left:0;
+ margin-right: 0;
}
pre.example strong {
font: inherit;
border: 2px solid green;
}
---></style>
+
+dt {
+ font-weight: bold;
+}--></style>
</head>
<body>
-<h1 class="settitle">autotest_mk - Linux上のCASL II処理系</h1>
+<h1 class="settitle">Autotest_mk - GNU Makeを利用したテスト自動化ツール</h1>
<a name="Top"></a>
-<div class="contents">
+ <div class="contents">
<h2>Table of Contents</h2>
<ul>
<li><a name="toc_About" href="#About">1 Autotest.mkの概要</a>
</li></ul>
<li><a name="toc_Tutorial" href="#Tutorial">3 Autotest.mkチュートリアル</a>
<ul>
-<li><a href="#Preapre">3.1 サンプルプログラムの準備</a>
-<li><a href="#Create-Group">3.2 グループディレクトリーの作成</a>
-<li><a href="#Create-Test">3.3 テストディレクトリーの作成</a>
-<li><a href="#Edit-cmd">3.4 テスト用コマンドファイルの作成</a>
-<li><a href="#Test-Set">3.5 テスト想定結果の作成と検証</a>
-<li><a href="#Test-Execute">3.6 テストの実行とログの確認</a>
+<li><a href="#Prepare">三角形判定プログラムの準備</a>
+<li><a href="#Prepare">バグを含む三角形判定プログラムの準備</a>
+<li><a href="#Create-Group">3.1 グループディレクトリーの作成</a>
+<li><a href="#Create-Test">3.2 テストディレクトリーの作成</a>
+<li><a href="#Edit-desc">3.3 テスト説明ファイルの作成</a>
+<li><a href="#Edit-cmd">3.4 テストコマンドファイルの作成</a>
+<li><a href="#Test-Setting">3.5 テスト想定ファイルの作成</a>
+<ul>
+<li><a href="#Test-Setting">3.5.1 手動で作成</a>
+<li><a href="#Test-Setting">3.5.2 <kbd>make set</kbd></a>
+<li><a href="#Test-Setting">3.5.3 <kbd>make reset</kbd></a>
+</li></ul>
+<li><a href="#Test-Execute">3.6 テストの実行</a>
+<ul>
+<li><a href="#Test-Execute">バグを含む三角形判定プログラムの場合</a>
+</li></ul>
+<li><a href="#Check-Test-Log">3.7 テストログファイルの確認</a>
+<ul>
+<li><a href="#Check-Test-Log">バグを含む三角形判定プログラムの場合</a>
+<li><a href="#Check-Test-Log">3.7.1 テストのクリア</a>
+</li></ul>
+<li><a href="#Group-Execute">3.8 テストグループの実行</a>
+<ul>
+<li><a href="#Group-Execute">バグを含む三角形判定プログラムの場合</a>
+</li></ul>
+<li><a href="#Check-Group-Log">3.9 テストグループログファイルの確認</a>
+<ul>
+<li><a href="#Check-Group-Log">バグを含む三角形判定プログラムの場合</a>
+</li></ul>
</li></ul>
<li><a name="toc_Manual" href="#Manual">4 Autotest.mkマニュアル</a>
<ul>
<h2 class="chapter">1 Autotest.mkの概要</h2>
-<p>Autotest.mkã\81¯ã\80\81GNU Makeã\82\92å\88©ç\94¨ã\81\97ã\81\9fã\83\86ã\82¹ã\83\88è\87ªå\8b\95å\8c\96ã\83\84ã\83¼ã\83«ã\81§ã\81\99ã\80\82ä½\95å\9b\9eã\81\8b<kbd>make</kbd>ã\82³ã\83\9eã\83³ã\83\89ã\82\92å®\9fè¡\8cã\81\97ã\80\81ã\83\97ã\83ã\82°ã\83©ã\83 ã\81®ã\83\86ã\82¹ã\83\88çµ\90æ\9e\9cã\82\92表ã\81\99å®\9fè¡\8cã\83\95ã\82¡ã\82¤ã\83«ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8cã\81°ã\80\81ã\83\86ã\82¹ã\83\88ã\81®æº\96å\82\99ã\81¯å®\8cäº\86ã\81§ã\81\99ã\80\82ã\81\82ã\81¨ã\81¯<kbd>make</kbd>ã\82³ã\83\9eã\83³ã\83\89ã\82\921å\9b\9eå®\9fè¡\8cã\81\99ã\82\8cã\81°ã\80\81ã\81\84ã\81¤ã\81§ã\82\82ã\83\86ã\82¹ã\83\88ã\82\92å®\9fè¡\8cã\81§ã\81\8dã\81¾ã\81\99ã\80\82ã\83\86ã\82¹ã\83\88ã\81®å®\9fè¡\8cçµ\90æ\9e\9cã\81¯ã\80\81ã\83ã\82°ã\81«出力されます。
+<p>Autotest.mkã\81¯ã\80\81GNU Makeã\82\92å\88©ç\94¨ã\81\97ã\81\9fã\83\86ã\82¹ã\83\88è\87ªå\8b\95å\8c\96ã\83\84ã\83¼ã\83«ã\81§ã\81\99ã\80\82ä½\95å\9b\9eã\81\8b<kbd>make</kbd>ã\82³ã\83\9eã\83³ã\83\89ã\82\92å®\9fè¡\8cã\81\97ã\80\81ã\82³ã\83\9eã\83³ã\83\89ã\83\95ã\82¡ã\82¤ã\83«ã\81¨ã\83\86ã\82¹ã\83\88çµ\90æ\9e\9cã\81®æ\83³å®\9aã\82\92ã\81\82ã\82\89ã\82\8fã\81\99ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8cã\81°ã\80\81ã\83\86ã\82¹ã\83\88ã\81®æº\96å\82\99ã\81¯å®\8cäº\86ã\81§ã\81\99ã\80\82ã\81\82ã\81¨ã\81¯<kbd>make</kbd>ã\82³ã\83\9eã\83³ã\83\89ã\82\921å\9b\9eå®\9fè¡\8cã\81\99ã\82\8cã\81°ã\80\81ã\83\86ã\82¹ã\83\88ã\82\92å®\9fè¡\8cã\81§ã\81\8dã\81¾ã\81\99ã\80\82ã\83\86ã\82¹ã\83\88ã\81\8cå®\9fè¡\8cã\81\95ã\82\8cã\82\8bã\81¨ã\80\81詳細ã\81ªã\83ã\82°ã\81\8c出力されます。
<p>Autotest.mkでは、次の3つの概念を使います。
<h3 class="section">2.1 ダウンロード</h3>
-<p><a href="http://github.com/j8takagi/autotest_mk">GitHub/j8takagi/autotest_mk</a>の<a href="http://github.com/j8takagi/autotest_mk/downloads">ダウンロードページ</a>から最新版のtgzファイルをダウンロードします。
+<p><a href="http://github.com/j8takagi/autotest_mk">GitHub/j8takagi/autotest_mk</a>の<a href="http://github.com/j8takagi/autotest_mk/downloads">ダウンロードページ</a>から最新版の<samp><span class="file">tar.gz</span></samp>ファイルをダウンロードします。
- <p>ç¶\9aã\81\91ã\81¦ã\80\81対å¿\9cã\81\99ã\82\8b<samp><span class="file">md5sum</span></samp>ã\83\95ã\82£ルをダウンロードします。
+ <p>ç¶\9aã\81\91ã\81¦ã\80\81対å¿\9cã\81\99ã\82\8b<samp><span class="file">md5sum</span></samp>ã\83\95ã\82¡ã\82¤ルをダウンロードします。
<p><a name="Verify"></a>
<h3 class="section">2.3 ファイルの展開</h3>
-<p><samp><span class="file">autotest_mk</span></samp>ファイルをダウンロードしたら、展開先のディレクトリーに移動してから、展開します。次のコマンドでは、現在ログインしているユーザーのホームディレクトリーに展開します。
+<p><samp><span class="file">autotest_mk</span></samp>ファイルをダウンロードしたら、展開先のディレクトリーに移動してから、展開します。
+次のコマンドでは、現在ログインしているユーザーのホームディレクトリーに展開します。
<pre class="example"> $ <kbd>cd ~</kbd>
$ <kbd>tar xvzf autotest_mk.tar.gz</kbd>
<li>テストディレクトリーの作成
- <li>テスト用コマンドファイルの作成
+ <li>テスト説明ファイルの作成
- <li>テスト想定結果の作成と検証
+ <li>テストコマンドファイルの作成
- <li>テストの実行とログの確認
+ <li>テスト想定ファイルの作成
+
+ <li>テストの実行
+
+ <li>テストログファイルの確認
+
+ <li>テストグループの実行
+
+ <li>テストグループログファイルの確認
</ol>
- <p>ここでは、次のような三角形判定プログラムをテストする手順を取り上げます。
+ <p>ここでは、Glenford J Myers『ソフトウェア・テストの技法』(近代科学社、1980)の記載を元にした、次の仕様の三角形判定プログラムをテストする手順を取り上げます<a rel="footnote" href="#fn-1" name="fnd-1"><sup>1</sup></a>。
+
+ <blockquote>
+プログラムtriangleは3つの引数をとる。この3つの値は、それぞれ三角形の3辺の長さをあらわすものとする。プログラムは、三角形が不等辺三角形の場合は`scalene triangle'、二等辺三角形の場合は`isosceles triangle'、正三角形の場合は`equilateral triangle'を印字する。
+</blockquote>
+
+ <p>この三角形判定プログラムの動作を検証するには、次のテスト・ケースが必要です<a rel="footnote" href="#fn-2" name="fnd-2"><sup>2</sup></a>。
<blockquote>
-プログラムtriangleは3つの引数をとり、それぞれ三角形の3辺の長さをあらわすものとする。プログラムは、三角形が不等辺三角形の場合は`scalene triangle'、二等辺三角形の場合は`isosceles triangle'、正三角形は`equilateral triangle'を印字する。
+ <ol type=1 start=1>
+<li>有効な不等辺三角形をあらわすテスト・ケース
+
+ <li>有効な正三角形をあらわすテスト・ケース
+
+ <li>有効な二等辺三角形をあらわすテスト・ケース
+
+ <li>有効な二等辺三角形で2つの等辺を含む3種類の組合せすべてをためすことができる3つのテストケース
+
+ <li>1つの辺がゼロの値をもつテスト・ケース
+
+ <li>1つの辺が負の値をしめすテスト・ケース
+
+ <li>ゼロより大きい3つの整数をもち、そのうち2つの和がそれ以外の1つと等しいようなテスト・ケース
+
+ <li>1辺の長さが他の2辺の長さの和に等しいことを3種類の順列のすべてに対してためすことのできるテスト・ケース
+
+ <li>ゼロより大きな3つの整数のうち、2つの数の和がそれ以外の1つの数より小さくなるテストケース
+
+ <li>ゼロより大きな3つの整数のうち、2つの数の和がそれ以外の1つの数より小さくなることにおいて、3種類の順列すべてを考慮することのできるテストケース
+
+ <li>すべての辺がゼロであるテスト・ケース
+
+ <li>整数でない値をもつテスト・ケース
+
+ <li>数値の個数が間違っていることをためすテスト・ケース
+ </ol>
</blockquote>
-<p><a name="Preapre"></a>
+ <p>三角形判定プログラムは、<a href="#Prepare">三角形判定プログラムの準備</a>をするか、または自作してください。
+
+<p><a name="Prepare"></a>
-<h3 class="section">3.1 サンプルプログラムの準備</h3>
+<h3 class="unnumberedsec">三角形判定プログラムの準備</h3>
-<p>ã\81¾ã\81\9aã\80\81Autotest.mkã\81®ã\83\91ã\83\83ã\82±ã\83¼ã\82¸ã\81«å\90«ã\81¾ã\82\8cã\81¦ã\81\84ã\82\8b<samp><span class="file">sample/triangle</span></samp>以ä¸\8bã\81®ã\82µã\83³ã\83\97ã\83«ã\83\97ã\83ã\82°ã\83©ã\83 ã\82\92ä½\9cæ¥ç\94¨ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼ã\81«ã\82³ã\83\94ã\83¼ã\81\97ã\81¾ã\81\99ã\80\82ä½\9cæ¥ç\94¨ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼ã\81¯ã\80\81ä»»æ\84\8fã\81®å ´æ\89\80ã\81«ä½\9cæ\88\90ã\81§ã\81\8dã\81¾ã\81\99ã\80\82ã\81\93ã\81\93ã\81§ã\81¯ã\80\81<samp><span class="file">~/triangle</span></samp>ï¼\88<samp><span class="file">~</span></samp>ã\81¯ã\80\81ç\8f¾å\9c¨ã\83ã\82°ã\82¤ã\83³ã\81\97ã\81¦ã\81\84ã\82\8bã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\83\9bã\83¼ã\83 ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼ï¼\89ã\82\92ä½\9cæ¥ç\94¨ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼ã\81«ã\81\97ã\81¾ã\81\99ã\80\82ã\81¾ã\81\9fã\80\81<samp><span class="file">autotest.mk</span></samp>ã\81¯ã\80\81ã\83\9bã\83¼ã\83 ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼に展開されているものとします。
+<p>ã\81¾ã\81\9aã\80\81Autotest.mkã\81®ã\83\91ã\83\83ã\82±ã\83¼ã\82¸ã\81«å\90«ã\81¾ã\82\8cã\81¦ã\81\84ã\82\8b<samp><span class="file">sample/triangle</span></samp>以ä¸\8bã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\80\81ä»»æ\84\8fã\81®ä½\9cæ¥ç\94¨ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼ã\81«ã\82³ã\83\94ã\83¼ã\81\97ã\81¾ã\81\99ã\80\82ã\81\93ã\81\93ã\81§ã\81¯ã\80\81<samp><span class="file">~/triangle</span></samp>ï¼\88<samp><span class="file">~</span></samp>ã\81¯ã\80\81ç\8f¾å\9c¨ã\83ã\82°ã\82¤ã\83³ã\81\97ã\81¦ã\81\84ã\82\8bã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\83\9bã\83¼ã\83 ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼ï¼\89ã\82\92ä½\9cæ¥ç\94¨ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼ã\81«ã\81\97ã\81¾ã\81\99ã\80\82ã\81¾ã\81\9fã\80\81<samp><span class="file">autotest.mk</span></samp>ã\81¯ã\80\81<samp><span class="file">~</span></samp>に展開されているものとします。
-<pre class="example"> $ <kbd>mkdir ~/triangle</kbd>
- $ <kbd>cd ~/autotest.mk/sample/triangle</kbd>
- $ <kbd>cp triangle.c Makefile ~/triangle</kbd>
+<pre class="example"> $ <kbd>cd</kbd>
+ $ <kbd>mkdir triangle</kbd>
+ $ <kbd>cd autotest.mk/sample/triangle</kbd>
+ $ <kbd>cp triangle.c triangle_bug.c Makefile ~/triangle</kbd>
</pre>
- <p>ä½\9cæ¥ç\94¨ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼ã\81«ç§»å\8b\95ã\81\97ã\80\81ã\82µã\83³ã\83\97ã\83«ã\83\97ã\83ã\82°ã\83©ã\83 ã\82\92ã\83\93ã\83«ã\83\89ã\81\97ã\81¾ã\81\99ã\80\82
+ <p>作業用ディレクトリーに移動します。
<pre class="example"> $ <kbd>cd ~/triangle</kbd>
$ <kbd>ls</kbd>
- Makefile triangle.c
- $ <kbd>make</kbd>
+ Makefile triangle.c triangle_bug.c
+</pre>
+ <p>三角形判定プログラムをビルドします。
+
+<pre class="example"> $ <kbd>make</kbd>
gcc -o triangle triangle.c
</pre>
- <p>ã\83\93ã\83«ã\83\89ã\81\8cæ£å¸¸ã\81«ã\81§ã\81\8dã\81\9fã\81\8bã\81©ã\81\86ã\81\8bã\80\81æ\9c\80ä½\8eé\99\90ã\81®ã\83\86ã\82¹ã\83\88ã\82\92します。
+ <p>ã\83\86ã\82¹ã\83\88ã\82\82ã\81\8bã\81ã\81¦ã\80\81ä¸\89è§\92å½¢å\88¤å®\9aã\83\97ã\83ã\82°ã\83©ã\83 ã\82\92æ\89\8bå\8b\95ã\81§å®\9fè¡\8cします。
<pre class="example"> $ <kbd>./triangle 3 4 5</kbd>
scalene triangle
+ $ <kbd>./triangle 4 4 4</kbd>
+ equilateral triangle
+ $ <kbd>./triangle 2 4 4</kbd>
+ isosceles triangle
</pre>
- <p><a name="Create-Group"></a>
+ <h3 class="unnumberedsec">バグを含む三角形判定プログラムの準備</h3>
-<h3 class="section">3.2 グループディレクトリーの作成</h3>
+<p>バグを含み一部のテストに失敗する三角形判定プログラムをビルドする場合は、次のコマンドを実行します。
-<p>Autotest.mkのテストを実行するためにはまず、テンプレートディレクトリーで<kbd>make</kbd>を実行します。このとき、テストグループのディレクトリーを変数<code>GROUPDIR</code>で指定します。ここでは、<kbd>~/triangle/test</kbd>をテストグループのディレクトリーにします。
+<pre class="example"> $ <kbd>make bug</kbd>
+ gcc -o triangle triangle.c
+</pre>
+ <p>テストもかねて、三角形判定プログラムを手動で実行します。
+
+<pre class="example"> $ <kbd>./triangle 3 4 5</kbd>
+ futohen sankakukei
+ $ <kbd>./triangle 4 4 4</kbd>
+ equilateral triangle
+ $ <kbd>./triangle 2 4 4</kbd>
+ isosceles triangle
+</pre>
+ <p><kbd>./triangle 3 4 5</kbd>で、仕様では`scalene triangle'という結果になるべきところが、`futohen sankakukei'となっています。
+
+<p><a name="Create-Group"></a>
+
+<h3 class="section">3.1 グループディレクトリーの作成</h3>
+
+<p>テンプレートディレクトリーで<kbd>make</kbd>を実行し、グループディレクトリーを作成します。このとき、テストグループのディレクトリーを変数<code>GROUPDIR</code>で指定します。ここでは、<kbd>~/triangle/test</kbd>をテストグループのディレクトリーにします。
<pre class="example"> $ <kbd>cd ~/autotest.mk/template</kbd>
$ <kbd>make GROUPDIR=~/triangle/test</kbd>
<pre class="example"> $ <kbd>cd ~/triangle/test</kbd>
$ <kbd>ls</kbd>
- Define.mk Define_group.mk Define_test.mk Makefile Test.mk
+ Define.mk Define_group.mk Define_test.mk Makefile Test.mk
</pre>
<p><a name="Create-Test"></a>
-<h3 class="section">3.3 テストディレクトリーの作成</h3>
+<h3 class="section">3.2 テストディレクトリーの作成</h3>
+
+<p>グループディレクトリーで<kbd>make create</kbd>を実行し、テストディレクトリーを作成します。このとき、変数<code>GROUPDIR</code>でテスト名を指定します。テスト名は、小文字のアルファベットと数字で指定します。ここでは、1つめのテスト・ケースに対応するテストディレクトリーを、<code>01_scalene</code>という名前で作成します。
+
+<pre class="example"> $ <kbd>make create TEST=01_scalene</kbd>
+</pre>
+ <p>次のコマンドでテストディレクトリーに移動し、その中を確認します。
-<p><a name="Edit-cmd"></a>
+<pre class="example"> $ <kbd>cd 01_scalene</kbd>
+ $ <kbd>ls</kbd>
+ Makefile
+</pre>
+ <p><a name="Edit-desc"></a>
-<h3 class="section">3.4 テスト用コマンドファイルの作成</h3>
+<h3 class="section">3.3 テスト説明ファイルの作成</h3>
-<p><a name="Test-Set"></a>
+<p>テスト説明ファイル<samp><span class="file">desc.txt</span></samp>はテストに関する説明をあらわし、テストの結果と一緒にログに出力されます。
+<samp><span class="file">desc.txt</span></samp>をテキストエディターを使って次の内容で作成します。
+
+<pre class="example"> <kbd>有効な不等辺三角形をあらわすテスト・ケース</kbd>
+</pre>
+ <p><a name="Edit-cmd"></a>
+
+<h3 class="section">3.4 テストコマンドファイルの作成</h3>
+
+<p>テストコマンドファイル<samp><span class="file">cmd</span></samp>は、テストの時に実行されるコマンドをあらわします。
+<samp><span class="file">cmd</span></samp>をテキストエディターを使って次の内容で作成します。
+
+<pre class="example"> <kbd>../../triangle 3 4 5</kbd>
+</pre>
+ <p><a name="Test-Setting"></a>
+
+<h3 class="section">3.5 テスト想定ファイルの作成</h3>
+
+<p>テスト想定ファイル<samp><span class="file">0.txt</span></samp>は、テストが正しく実行された場合の結果をあらわします。<samp><span class="file">0.txt</span></samp>の作成方法は、次の3つがあります。
+
+ <ul>
+<li>手動で作成
+
+ <li><kbd>make set</kbd>
+
+ <li><kbd>make reset</kbd>
+</ul>
+
+ <p>エラーが発生するテストでは、標準出力想定の下にエラー出力想定を続けます。
+
+<h4 class="subsection">3.5.1 手動で作成</h4>
+
+<p>テスト想定ファイル<samp><span class="file">0.txt</span></samp>をテキストエディターを使って次の内容で作成します。
+
+<pre class="example"> <kbd>scalene triangle</kbd>
+</pre>
+ <h4 class="subsection">3.5.2 <kbd>make set</kbd></h4>
+
+<p><kbd>make set</kbd>を実行すると、コマンドファイル<samp><span class="file">cmd</span></samp>が実行されます。実行結果は<samp><span class="file">0.txt</span></samp>ファイルに出力され、その内容が表示されます。
+
+<pre class="example"> $ <kbd>make set</kbd>
+ scalene triangle
+</pre>
+ <p>この方法で<samp><span class="file">0.txt</span></samp>を作成した場合は、作成された内容がテスト想定として本当に正しいかよく検討する必要があります。
-<h3 class="section">3.5 テスト想定結果の作成と検証</h3>
+ <p>また、<samp><span class="file">0.txt</span></samp>がすでに存在する場合は<kbd>make set</kbd>を実行するとエラーになり、<samp><span class="file">0.txt</span></samp>は更新されません。
-<p><a name="Test-Execute"></a>
+<h4 class="subsection">3.5.3 <kbd>make reset</kbd></h4>
-<h3 class="section">3.6 テストの実行とログの確認</h3>
+<p><samp><span class="file">0.txt</span></samp>がすでに存在する場合は、<kbd>make reset</kbd>で更新できます。
+
+<pre class="example"> $ <kbd>make reset</kbd>
+ scalene triangle
+</pre>
+ <p><a name="Test-Execute"></a>
+
+<h3 class="section">3.6 テストの実行</h3>
+
+<p>コマンドファイルとテスト想定を用意したら、<kbd>make</kbd>または<kbd>make check</kbd>でテストを実行できます。
+
+<pre class="example"> $ <kbd>ls</kbd>
+ 0.txt Makefile cmd desc.txt
+ $ <kbd>make</kbd>
+ 有効な不等辺三角形をあらわすテスト・ケース
+ 01_scalene: Test Success 2011-01-10 10:09:55
+ Detail in /home/foo/triangle/test/01_scalene/detail.log
+</pre>
+ <p>表示される項目は、次のとおりです。
+ <ul>
+<li><テスト説明ファイル<samp><span class="file">desc.txt</span></samp>の内容>
+
+ <li><テスト名>: <テスト結果(Test SuccessまたはTest Failure)> <テスト実行日時>
+
+ <li>Detail in <テスト詳細ログファイルの絶対パス>
+</ul>
+
+<h4 class="unnumberedsubsec">バグを含む三角形判定プログラムの場合</h4>
+
+<p>バグを含む三角形判定プログラムでテストを実行すると、次のように表示されます。
+
+<pre class="example"> $ <kbd>make</kbd>
+ make: [diff.txt] Error 1 (ignored)
+ 有効な不等辺三角形をあらわすテスト・ケース
+ 01_scalene: Test Failure 2011-01-10 20:25:16
+ Detail in /home/foo/triangle/test/01_scalene/detail.log
+</pre>
+ <p><a name="Check-Test-Log"></a>
+
+<h3 class="section">3.7 テストログファイルの確認</h3>
+
+<p>テストを実行して作成されたファイルを確認します。<samp><span class="file">1.txt</span></samp>、<samp><span class="file">test.log</span></samp>、<samp><span class="file">detail.log</span></samp>が作成されています。
+<pre class="example"> $ ls
+ 0.txt 1.txt Makefile cmd desc.txt detail.log summary.log
+</pre>
+ <p>テストを実行すると作成されるファイルは、次のとおりです。必要に応じてファイルの内容を確認します。
+
+ <dl>
+<dt><samp><span class="file">1.txt</span></samp><dd>テスト結果をあらわします。エラー発生時は、標準出力のあとにエラー出力が続きます
+
+ <br><dt><samp><span class="file">err.txt</span></samp><dd>エラー発生時に、エラーが出力されます。エラーが発生しない場合は作成されません
+
+ <br><dt><samp><span class="file">diff.txt</span></samp><dd>テスト想定ファイル<samp><span class="file">0.txt</span></samp>とテスト結果ファイル<samp><span class="file">1.txt</span></samp>の差分をあらわします。想定と結果が同一の場合は、作成されません
+
+ <br><dt><samp><span class="file">summary.log</span></samp><dd>テストの実行結果を表します。テスト実行時に表示される項目です。
+
+ <br><dt><samp><span class="file">detail.log</span></samp><dd>テストの詳細ログを表します。上記の内容がすべて出力されます
+</dl>
+
+ <p><samp><span class="file">detail.log</span></samp>は、次のようになります。
+
+<pre class="example"> == test.log ==
+ ----------------------------------------------------------------------
+ 有効な不等辺三角形をあらわすテスト・ケース
+ 01_scalene: Test Success 2011-01-10 10:09:55
+ Detail in /home/foo/triangle/test/01_scalene/detail.log
+ ----------------------------------------------------------------------
+
+ == cmd ==
+ ----------------------------------------------------------------------
+ ../../triangle 3 4 5
+ ----------------------------------------------------------------------
+
+ == 0.txt ==
+ ----------------------------------------------------------------------
+ scalene triangle
+ ----------------------------------------------------------------------
+
+ == 1.txt ==
+ ----------------------------------------------------------------------
+ scalene triangle
+ ----------------------------------------------------------------------
+
+</pre>
+ <h4 class="unnumberedsubsec">バグを含む三角形判定プログラムの場合</h4>
+
+<p>バグを含む三角形判定プログラムを準備してテストを実行した場合、<samp><span class="file">1.txt</span></samp>、<samp><span class="file">test.log</span></samp>、<samp><span class="file">detail.log</span></samp>のほかに、テスト想定とテスト結果が異なるため<kbd>diff.txt</kbd>が作成されます。
+
+<pre class="example"> $ <kbd>ls</kbd>
+ 0.txt 1.txt Makefile cmd desc.txt detail.log diff.txt summary.log
+</pre>
+ <p><samp><span class="file">detail.log</span></samp>は次のようになります。
+
+<pre class="example"> == summary.log ==
+ ----------------------------------------------------------------------
+ 有効な不等辺三角形をあらわすテスト・ケース
+ 01_scalene: Test Failure 2011-01-10 20:25:16
+ Detail in /home/foo/triangle/test/01_scalene/detail.log
+ ----------------------------------------------------------------------
+
+ == cmd ==
+ ----------------------------------------------------------------------
+ ../../triangle 3 4 5
+ ----------------------------------------------------------------------
+
+ == 0.txt ==
+ ----------------------------------------------------------------------
+ scalene triangle
+ ----------------------------------------------------------------------
+
+ == diff.txt ==
+ ----------------------------------------------------------------------
+ *** 0.txt Mon Jan 10 20:12:14 2011
+ --- 1.txt Mon Jan 10 20:25:16 2011
+ ***************
+ *** 1 ****
+ ! scalene triangle
+ --- 1 ----
+ ! futohen sankakukei
+ ----------------------------------------------------------------------
+
+ == 1.txt ==
+ ----------------------------------------------------------------------
+ futohen sankakukei
+ ----------------------------------------------------------------------
+
+</pre>
+ <h4 class="subsection">3.7.1 テストのクリア</h4>
+
+<p><kbd>make clean</kbd>を実行すると、テストの結果作成されたファイルがクリアされます。
+
+<pre class="example"> $ <kbd>make clean</kbd>
+ $ <kbd>ls</kbd>
+ 0.txt Makefile cmd desc.txt
+</pre>
+ <p><a name="Group-Execute"></a>
+
+<h3 class="section">3.8 テストグループの実行</h3>
+
+<p>2つめ以降のテスト・ケースについても、1つめと同じ手順でテストディレクトリーの作成後、テスト説明ファイルとテストコマンドファイル、テスト想定ファイルを作成します。ここでは、先に作成した<samp><span class="file">01_scalene</span></samp>も含めて、次のようなテストディレクトリーを作成します。
+
+ <ul>
+<li>01_scalene
+
+ <li>02_equilateral
+
+ <li>03_isosceles
+
+ <li>04_isosceles_c
+
+ <li>05_zero
+
+ <li>06_minus
+
+ <li>07_line
+
+ <li>08_lines
+
+ <li>09_less
+
+ <li>10_lesses
+
+ <li>11_zeroall
+
+ <li>12_notint
+
+ <li>13_argcnt
+</ul>
+
+ <p>こうしたディレクトリーやファイルは、Autotest.mkの<samp><span class="file">sample/triangle/test</span></samp>以下にあるので、コピーして作成することもできます。
+
+ <p>テストグループディレクトリーでは、<kbd>make</kbd>または<kbd>make check</kbd>で複数のテストをまとめて実行できます。
+
+<pre class="example"> $ <kbd>cd ~/triangle/test</kbd>
+ $ <kbd>make</kbd>
+ test: 13 / 13 tests passed. Detail in /home/foo/triangle/test/TEST.log
+ test: All tests are succeded.
+</pre>
+ <p>表示されるのは、次の項目です。
+ <ul>
+<li><テスト名>: <成功テスト数>/<全テスト数> test passed. Detail in <テストグループログファイルの絶対パス>
+
+ <li>(すべてのテストに成功した場合)<テスト名>: All tests are succeded.
+</ul>
+
+<h4 class="unnumberedsubsec">バグを含む三角形判定プログラムの場合</h4>
+
+<p>バグを含む三角形判定プログラムを準備してテストグループを実行した場合、次のように表示されます。
+
+<pre class="example"> test: 10 / 13 tests passed. Detail in /home/foo/triangle/test/TEST.log
+</pre>
+ <p><a name="Check-Group-Log"></a>
+
+<h3 class="section">3.9 テストグループログファイルの確認</h3>
+
+<p>テストグループを実行すると作成されるファイルは、次のとおりです。
+
+ <dl>
+<dt><samp><span class="file"><テストグループ名を大文字にした文字列>.log</span></samp><dd>テストグループに含まれるテストとその実行結果の一覧をあらわします。
+
+ <br><dt><samp><span class="file">Summary.log</span></samp><dd>テストの実行結果を表します。テストグループ実行時に表示される内容です。
+</dl>
+
+ <p>ここではテストグループ名は<samp><span class="file">test</span></samp>なので、<samp><span class="file">TEST.log</span></samp>が次の内容で作成されます。
+
+<pre class="example"> 01_scalene/
+ 有効な不等辺三角形をあらわすテスト・ケース
+ 01_scalene: Test Success 2011-01-10 12:14:23
+ Detail in /home/foo/triangle/test/01_scalene/detail.log
+
+ 12_notint/
+ 整数でない値をもつテスト・ケース
+ 12_notint: Test Success 2011-01-10 12:14:23
+ Detail in /home/foo/triangle/test/12_notint/detail.log
+
+ 03_isosceles/
+ 有効な二等辺三角形をあらわすテスト・ケース
+ 03_isosceles: Test Success 2011-01-10 12:14:23
+ Detail in /home/foo/triangle/test/03_isosceles/detail.log
+
+ 02_equilateral/
+ 有効な正三角形をあらわすテスト・ケース
+ 02_equilateral: Test Success 2011-01-10 12:14:23
+ Detail in /home/foo/triangle/test/02_equilateral/detail.log
+
+ 05_zero/
+ 1つの辺がゼロの値をもつテスト・ケース
+ 05_zero: Test Success 2011-01-10 12:14:23
+ Detail in /home/foo/triangle/test/05_zero/detail.log
+
+ 13_argcnt/
+ 数値の個数が間違っていることをためすテスト・ケース
+ 13_argcnt: Test Success 2011-01-10 12:14:23
+ Detail in /home/foo/triangle/test/13_argcnt/detail.log
+
+ 10_lesses/
+ ゼロより大きな3つの整数のうち、2つの数の和がそれ以外の1つの数より小さくなることにおいて、3種類の順列すべてを考慮することのできるテストケース
+ 10_lesses: Test Success 2011-01-10 12:14:23
+ Detail in /home/foo/triangle/test/10_lesses/detail.log
+
+ 07_line/
+ ゼロより大きい3つの整数をもち、そのうち2つの和がそれ以外の1つと等しいようなテスト・ケース
+ 07_line: Test Success 2011-01-10 12:14:23
+ Detail in /home/foo/triangle/test/07_line/detail.log
+
+ 06_minus/
+ 1つの辺が負の値をしめすテスト・ケース
+ 06_minus: Test Success 2011-01-10 12:14:23
+ Detail in /home/foo/triangle/test/06_minus/detail.log
+
+ 11_zeroall/
+ すべての辺がゼロであるテスト・ケース
+ 11_zeroall: Test Success 2011-01-10 12:14:24
+ Detail in /home/foo/triangle/test/11_zeroall/detail.log
+
+ 08_lines/
+ 1辺の長さが他の2辺の長さの和に等しいことを3種類の順列のすべてに対してためすことのできるテスト・ケース
+ 08_lines: Test Success 2011-01-10 12:14:24
+ Detail in /home/foo/triangle/test/08_lines/detail.log
+
+ 09_less/
+ ゼロより大きな3つの整数のうち、2つの数の和がそれ以外の1つの数より小さくなるテストケース
+ 09_less: Test Success 2011-01-10 12:14:24
+ Detail in /home/foo/triangle/test/09_less/detail.log
+
+ 04_isosceles_c/
+ 有効な二等辺三角形で2つの等辺を含む3種類の組合せすべてをためすことができる3つのテストケース
+ 04_isosceles_c: Test Success 2011-01-10 12:14:24
+ Detail in /home/foo/triangle/test/04_isosceles_c/detail.log
+</pre>
+ <p>テストをまとめて実行した場合も、個別のテストを実行した場合と同様に、テストディレクトリーにテストログが出力されます。特定のテスト結果を詳細に検討する場合は、そのテストのテストディレクトリーを開いてテストログファイルの確認をします。
+
+<h4 class="unnumberedsubsec">バグを含む三角形判定プログラムの場合</h4>
+
+<p>バグを含む三角形判定プログラムを準備してテストグループを実行した場合、<samp><span class="file">TEST.log</span></samp>は次のように表示されます。
+<pre class="example"> 01_scalene/
+ 有効な不等辺三角形をあらわすテスト・ケース
+ 01_scalene: Test Failure 2011-01-10 21:45:52
+ Detail in /home/foo/triangle/test/01_scalene/detail.log
+
+ 12_notint/
+ 整数でない値をもつテスト・ケース
+ 12_notint: Test Success 2011-01-10 21:45:52
+ Detail in /home/foo/triangle/test/12_notint/detail.log
+
+ 03_isosceles/
+ 有効な二等辺三角形をあらわすテスト・ケース
+ 03_isosceles: Test Success 2011-01-10 21:45:52
+ Detail in /home/foo/triangle/test/03_isosceles/detail.log
+
+ 02_equilateral/
+ 有効な正三角形をあらわすテスト・ケース
+ 02_equilateral: Test Success 2011-01-10 21:45:53
+ Detail in /home/foo/triangle/test/02_equilateral/detail.log
+
+ 05_zero/
+ 1つの辺がゼロの値をもつテスト・ケース
+ 05_zero: Test Failure 2011-01-10 21:45:53
+ Detail in /home/foo/triangle/test/05_zero/detail.log
+
+ 13_argcnt/
+ 数値の個数が間違っていることをためすテスト・ケース
+ 13_argcnt: Test Success 2011-01-10 21:45:53
+ Detail in /home/foo/triangle/test/13_argcnt/detail.log
+
+ 10_lesses/
+ ゼロより大きな3つの整数のうち、2つの数の和がそれ以外の1つの数より小さくなることにおいて、3種類の順列すべてを考慮することのできるテストケース
+ 10_lesses: Test Success 2011-01-10 21:45:53
+ Detail in /home/foo/triangle/test/10_lesses/detail.log
+
+ 07_line/
+ ゼロより大きい3つの整数をもち、そのうち2つの和がそれ以外の1つと等しいようなテスト・ケース
+ 07_line: Test Success 2011-01-10 21:45:53
+ Detail in /home/foo/triangle/test/07_line/detail.log
+
+ 06_minus/
+ 1つの辺が負の値をしめすテスト・ケース
+ 06_minus: Test Success 2011-01-10 21:45:53
+ Detail in /home/foo/triangle/test/06_minus/detail.log
+
+ 11_zeroall/
+ すべての辺がゼロであるテスト・ケース
+ 11_zeroall: Test Failure 2011-01-10 21:45:53
+ Detail in /home/foo/triangle/test/11_zeroall/detail.log
+
+ 08_lines/
+ 1辺の長さが他の2辺の長さの和に等しいことを3種類の順列のすべてに対してためすことのできるテスト・ケース
+ 08_lines: Test Success 2011-01-10 21:45:53
+ Detail in /home/foo/triangle/test/08_lines/detail.log
+
+ 09_less/
+ ゼロより大きな3つの整数のうち、2つの数の和がそれ以外の1つの数より小さくなるテストケース
+ 09_less: Test Success 2011-01-10 21:45:53
+ Detail in /home/foo/triangle/test/09_less/detail.log
+
+ 04_isosceles_c/
+ 有効な二等辺三角形で2つの等辺を含む3種類の組合せすべてをためすことができる3つのテストケース
+ 04_isosceles_c: Test Success 2011-01-10 21:45:53
+ Detail in /home/foo/triangle/test/04_isosceles_c/detail.log
+
+</pre>
+ <p>実際の開発では、こうした結果を元にプログラムの問題点を修正することになるでしょう。
<p><a name="Manual"></a>
<h3 class="section">4.1 テンプレートディレクトリー</h3>
-<p>テンプレートディレクトリーは、Autotest.mkをインストールするときに展開により作成された<code>template</code>ディレクトリーです。このディレクトリーに移動すると次の操作ができます。
+<p>テンプレートディレクトリーは、Autotest.mkをインストールするときに展開により作成された<samp><span class="file">template</span></samp>ディレクトリーです。このディレクトリーに移動すると次の操作ができます。
<p><a name="make-group"></a>
<h4 class="subsection">4.3.8 テストのファイル</h4>
+<div class="footnote">
+<hr>
+<a name="texinfo-footnotes-in-document"></a><h4>脚注</h4><p class="footnote"><small>[<a name="fn-1" href="#fnd-1">1</a>]</small> 『ソフトウェア・テストの技法』では「カードから3つの整数を読む」となっているのを、「3つの引数をとる」に変更しています。</p>
+
+ <p class="footnote"><small>[<a name="fn-2" href="#fnd-2">2</a>]</small> 『ソフトウェア・テストの技法』では下記の13個に加え、「それぞれのテスト・ケースについて、入力の値に対して予想される値をしめしたか」というテスト・ケースが記載されています。このテスト・ケースは、Autotest.mkを実行している場合は自動的に満たされると考えています。</p>
+
+ <hr></div>
+
</body></html>
<!--
-\input texinfo @c -*-texinfo-*-
+Check Log\input texinfo @c -*-texinfo-*-
@c %**start of header
@ifnottex
@documentlanguage ja_JP
@end ifnottex
@setfilename autotest_mk.info
@documentencoding UTF-8
-@settitle autotest_mk - Linux上のCASL II処理系
+@settitle Autotest_mk - GNU Makeを利用したテスト自動化ツール
@firstparagraphindent none
@paragraphindent 1
@c %**end of header
@end ifnottex
@menu
-* About::
-* Install::
-* Tutorial::
-* Manual::
+* About::
+* Install::
+* Tutorial::
+* Manual::
@detailmenu
--- The Detailed Node Listing ---
Autotest.mkのインストール
-* Download::
-* Verify::
-* Expand::
+* Download::
+* Verify::
+* Expand::
Autotest.mkチュートリアル
-* Preapre::
+* Prepare::
* Create Group::
+* Create Test::
+* Edit desc::
+* Edit cmd::
+* Test Setting::
+* Test Execute::
+* Group Execute::
+
+Autotest.mkマニュアル
+
+* Template Dir::
+* Group Dir::
+* Test Dir::
+
+テンプレートディレクトリー
+
+* make group::
+* Template Files::
+
+グループディレクトリー
+
+* make create::
+* Rename::
+* Delete::
+* make check at group::
+* make checkall::
+* make clean at group::
+* make time at group::
+* make cleantime at group::
+* Group Files::
+
+テストディレクトリー
+
+* make set::
+* make reset::
+* make check at test::
+* make time at test::
+* make cleantime at test::
+* make clean at test::
+* make cleanall at test::
+* Test Files::
@end detailmenu
@end menu
@node About, Install, Top, Top
@chapter Autotest.mkの概要
-Autotest.mkã\81¯ã\80\81GNU Makeã\82\92å\88©ç\94¨ã\81\97ã\81\9fã\83\86ã\82¹ã\83\88è\87ªå\8b\95å\8c\96ã\83\84ã\83¼ã\83«ã\81§ã\81\99ã\80\82ä½\95å\9b\9eã\81\8b@kbd{make}ã\82³ã\83\9eã\83³ã\83\89ã\82\92å®\9fè¡\8cã\81\97ã\80\81ã\83\97ã\83ã\82°ã\83©ã\83 ã\81®ã\83\86ã\82¹ã\83\88çµ\90æ\9e\9cã\82\92表ã\81\99å®\9fè¡\8cã\83\95ã\82¡ã\82¤ã\83«ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8cã\81°ã\80\81ã\83\86ã\82¹ã\83\88ã\81®æº\96å\82\99ã\81¯å®\8cäº\86ã\81§ã\81\99ã\80\82ã\81\82ã\81¨ã\81¯@kbd{make}ã\82³ã\83\9eã\83³ã\83\89ã\82\921å\9b\9eå®\9fè¡\8cã\81\99ã\82\8cã\81°ã\80\81ã\81\84ã\81¤ã\81§ã\82\82ã\83\86ã\82¹ã\83\88ã\82\92å®\9fè¡\8cã\81§ã\81\8dã\81¾ã\81\99ã\80\82ã\83\86ã\82¹ã\83\88ã\81®å®\9fè¡\8cçµ\90æ\9e\9cã\81¯ã\80\81ã\83ã\82°ã\81«出力されます。
+Autotest.mkã\81¯ã\80\81GNU Makeã\82\92å\88©ç\94¨ã\81\97ã\81\9fã\83\86ã\82¹ã\83\88è\87ªå\8b\95å\8c\96ã\83\84ã\83¼ã\83«ã\81§ã\81\99ã\80\82ä½\95å\9b\9eã\81\8b@kbd{make}ã\82³ã\83\9eã\83³ã\83\89ã\82\92å®\9fè¡\8cã\81\97ã\80\81ã\82³ã\83\9eã\83³ã\83\89ã\83\95ã\82¡ã\82¤ã\83«ã\81¨ã\83\86ã\82¹ã\83\88çµ\90æ\9e\9cã\81®æ\83³å®\9aã\82\92ã\81\82ã\82\89ã\82\8fã\81\99ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ä½\9cæ\88\90ã\81\99ã\82\8cã\81°ã\80\81ã\83\86ã\82¹ã\83\88ã\81®æº\96å\82\99ã\81¯å®\8cäº\86ã\81§ã\81\99ã\80\82ã\81\82ã\81¨ã\81¯@kbd{make}ã\82³ã\83\9eã\83³ã\83\89ã\82\921å\9b\9eå®\9fè¡\8cã\81\99ã\82\8cã\81°ã\80\81ã\83\86ã\82¹ã\83\88ã\82\92å®\9fè¡\8cã\81§ã\81\8dã\81¾ã\81\99ã\80\82ã\83\86ã\82¹ã\83\88ã\81\8cå®\9fè¡\8cã\81\95ã\82\8cã\82\8bã\81¨ã\80\81詳細ã\81ªã\83ã\82°ã\81\8c出力されます。
Autotest.mkでは、次の3つの概念を使います。
@chapter Autotest.mkのインストール
@menu
-* Download::
-* Verify::
-* Expand::
+* Download::
+* Verify::
+* Expand::
@end menu
Autotest.mkをインストールするには、次の作業をします。
@node Download, Verify, Install, Install
@section ダウンロード
-@uref{http://github.com/j8takagi/autotest_mk, GitHub/j8takagi/autotest_mk}の@uref{http://github.com/j8takagi/autotest_mk/downloads, ダウンロードページ}から最新版のtgzファイルをダウンロードします。
+@uref{http://github.com/j8takagi/autotest_mk, GitHub/j8takagi/autotest_mk}の@uref{http://github.com/j8takagi/autotest_mk/downloads, ダウンロードページ}から最新版の@file{tar.gz}ファイルをダウンロードします。
-ç¶\9aã\81\91ã\81¦ã\80\81対å¿\9cã\81\99ã\82\8b@file{md5sum}ã\83\95ã\82£ルをダウンロードします。
+ç¶\9aã\81\91ã\81¦ã\80\81対å¿\9cã\81\99ã\82\8b@file{md5sum}ã\83\95ã\82¡ã\82¤ルをダウンロードします。
@node Verify, Expand, Download, Install
@section ファイルの検証
@node Expand, , Verify, Install
@section ファイルの展開
-@file{autotest_mk}ファイルをダウンロードしたら、展開先のディレクトリーに移動してから、展開します。次のコマンドでは、現在ログインしているユーザーのホームディレクトリーに展開します。
+@file{autotest_mk}ファイルをダウンロードしたら、展開先のディレクトリーに移動してから、展開します。
+次のコマンドでは、現在ログインしているユーザーのホームディレクトリーに展開します。
@example
$ @kbd{cd ~}
テストディレクトリーの作成
@item
-テスト用コマンドファイルの作成
+テスト説明ファイルの作成
+
+@item
+テストコマンドファイルの作成
+
+@item
+テスト想定ファイルの作成
+
+@item
+テストの実行
@item
-テスト想定結果の作成と検証
+テストログファイルの確認
@item
-テストの実行とログの確認
+テストグループの実行
+
+@item
+テストグループログファイルの確認
@end enumerate
-ここでは、次のような三角形判定プログラムをテストする手順を取り上げます。
+ここでは、Glenford J Myers『ソフトウェア・テストの技法』(近代科学社、1980)の記載を元にした、次の仕様の三角形判定プログラムをテストする手順を取り上げます@footnote{『ソフトウェア・テストの技法』では「カードから3つの整数を読む」となっているのを、「3つの引数をとる」に変更しています。}。
+
+@quotation
+プログラムtriangleは3つの引数をとる。この3つの値は、それぞれ三角形の3辺の長さをあらわすものとする。プログラムは、三角形が不等辺三角形の場合は`scalene triangle'、二等辺三角形の場合は`isosceles triangle'、正三角形の場合は`equilateral triangle'を印字する。
+@end quotation
+
+この三角形判定プログラムの動作を検証するには、次のテスト・ケースが必要です@footnote{『ソフトウェア・テストの技法』では下記の13個に加え、「それぞれのテスト・ケースについて、入力の値に対して予想される値をしめしたか」というテスト・ケースが記載されています。このテスト・ケースは、Autotest.mkを実行している場合は自動的に満たされると考えています。}。
@quotation
-プログラムtriangleは3つの引数をとり、それぞれ三角形の3辺の長さをあらわすものとする。プログラムは、三角形が不等辺三角形の場合は`scalene triangle'、二等辺三角形の場合は`isosceles triangle'、正三角形は`equilateral triangle'を印字する。
+@enumerate
+@item
+有効な不等辺三角形をあらわすテスト・ケース
+
+@item
+有効な正三角形をあらわすテスト・ケース
+
+@item
+有効な二等辺三角形をあらわすテスト・ケース
+
+@item
+有効な二等辺三角形で2つの等辺を含む3種類の組合せすべてをためすことができる3つのテストケース
+
+@item
+1つの辺がゼロの値をもつテスト・ケース
+
+@item
+1つの辺が負の値をしめすテスト・ケース
+
+@item
+ゼロより大きい3つの整数をもち、そのうち2つの和がそれ以外の1つと等しいようなテスト・ケース
+
+@item
+1辺の長さが他の2辺の長さの和に等しいことを3種類の順列のすべてに対してためすことのできるテスト・ケース
+
+@item
+ゼロより大きな3つの整数のうち、2つの数の和がそれ以外の1つの数より小さくなるテストケース
+
+@item
+ゼロより大きな3つの整数のうち、2つの数の和がそれ以外の1つの数より小さくなることにおいて、3種類の順列すべてを考慮することのできるテストケース
+
+@item
+すべての辺がゼロであるテスト・ケース
+
+@item
+整数でない値をもつテスト・ケース
+
+@item
+数値の個数が間違っていることをためすテスト・ケース
+@end enumerate
@end quotation
+三角形判定プログラムは、@ref{Prepare, , 三角形判定プログラムの準備}をするか、または自作してください。
@menu
-* Preapre::
+* Prepare::
* Create Group::
* Create Test::
+* Edit desc::
* Edit cmd::
-* Test Set::
+* Test Setting::
* Test Execute::
+* Check Test Log::
+* Group Execute::
+* Check Group Log::
@end menu
-@node Preapre, Create Group, Tutorial, Tutorial
-@section サンプルプログラムの準備
+@node Prepare, Create Group, Tutorial, Tutorial
+@unnumberedsec 三角形判定プログラムの準備
-ã\81¾ã\81\9aã\80\81Autotest.mkã\81®ã\83\91ã\83\83ã\82±ã\83¼ã\82¸ã\81«å\90«ã\81¾ã\82\8cã\81¦ã\81\84ã\82\8b@file{sample/triangle}以ä¸\8bã\81®ã\82µã\83³ã\83\97ã\83«ã\83\97ã\83ã\82°ã\83©ã\83 ã\82\92ä½\9cæ¥ç\94¨ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼ã\81«ã\82³ã\83\94ã\83¼ã\81\97ã\81¾ã\81\99ã\80\82ä½\9cæ¥ç\94¨ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼ã\81¯ã\80\81ä»»æ\84\8fã\81®å ´æ\89\80ã\81«ä½\9cæ\88\90ã\81§ã\81\8dã\81¾ã\81\99ã\80\82ã\81\93ã\81\93ã\81§ã\81¯ã\80\81@file{~/triangle}ï¼\88@file{~}ã\81¯ã\80\81ç\8f¾å\9c¨ã\83ã\82°ã\82¤ã\83³ã\81\97ã\81¦ã\81\84ã\82\8bã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\83\9bã\83¼ã\83 ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼ï¼\89ã\82\92ä½\9cæ¥ç\94¨ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼ã\81«ã\81\97ã\81¾ã\81\99ã\80\82ã\81¾ã\81\9fã\80\81@file{autotest.mk}ã\81¯ã\80\81ã\83\9bã\83¼ã\83 ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼に展開されているものとします。
+ã\81¾ã\81\9aã\80\81Autotest.mkã\81®ã\83\91ã\83\83ã\82±ã\83¼ã\82¸ã\81«å\90«ã\81¾ã\82\8cã\81¦ã\81\84ã\82\8b@file{sample/triangle}以ä¸\8bã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\80\81ä»»æ\84\8fã\81®ä½\9cæ¥ç\94¨ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼ã\81«ã\82³ã\83\94ã\83¼ã\81\97ã\81¾ã\81\99ã\80\82ã\81\93ã\81\93ã\81§ã\81¯ã\80\81@file{~/triangle}ï¼\88@file{~}ã\81¯ã\80\81ç\8f¾å\9c¨ã\83ã\82°ã\82¤ã\83³ã\81\97ã\81¦ã\81\84ã\82\8bã\83¦ã\83¼ã\82¶ã\83¼ã\81®ã\83\9bã\83¼ã\83 ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼ï¼\89ã\82\92ä½\9cæ¥ç\94¨ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼ã\81«ã\81\97ã\81¾ã\81\99ã\80\82ã\81¾ã\81\9fã\80\81@file{autotest.mk}ã\81¯ã\80\81@file{~}に展開されているものとします。
@example
-$ @kbd{mkdir ~/triangle}
-$ @kbd{cd ~/autotest.mk/sample/triangle}
-$ @kbd{cp triangle.c Makefile ~/triangle}
+$ @kbd{cd}
+$ @kbd{mkdir triangle}
+$ @kbd{cd autotest.mk/sample/triangle}
+$ @kbd{cp triangle.c triangle_bug.c Makefile ~/triangle}
@end example
-ä½\9cæ¥ç\94¨ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\83¼ã\81«ç§»å\8b\95ã\81\97ã\80\81ã\82µã\83³ã\83\97ã\83«ã\83\97ã\83ã\82°ã\83©ã\83 ã\82\92ã\83\93ã\83«ã\83\89ã\81\97ã\81¾ã\81\99ã\80\82
+作業用ディレクトリーに移動します。
@example
$ @kbd{cd ~/triangle}
$ @kbd{ls}
-Makefile triangle.c
+Makefile triangle.c triangle_bug.c
+@end example
+
+三角形判定プログラムをビルドします。
+
+@example
$ @kbd{make}
gcc -o triangle triangle.c
@end example
-ã\83\93ã\83«ã\83\89ã\81\8cæ£å¸¸ã\81«ã\81§ã\81\8dã\81\9fã\81\8bã\81©ã\81\86ã\81\8bã\80\81æ\9c\80ä½\8eé\99\90ã\81®ã\83\86ã\82¹ã\83\88ã\82\92します。
+ã\83\86ã\82¹ã\83\88ã\82\82ã\81\8bã\81ã\81¦ã\80\81ä¸\89è§\92å½¢å\88¤å®\9aã\83\97ã\83ã\82°ã\83©ã\83 ã\82\92æ\89\8bå\8b\95ã\81§å®\9fè¡\8cします。
@example
$ @kbd{./triangle 3 4 5}
scalene triangle
+$ @kbd{./triangle 4 4 4}
+equilateral triangle
+$ @kbd{./triangle 2 4 4}
+isosceles triangle
@end example
+@unnumberedsec バグを含む三角形判定プログラムの準備
-@node Create Group
+バグを含み一部のテストに失敗する三角形判定プログラムをビルドする場合は、次のコマンドを実行します。
+
+@example
+$ @kbd{make bug}
+gcc -o triangle triangle.c
+@end example
+
+テストもかねて、三角形判定プログラムを手動で実行します。
+
+@example
+$ @kbd{./triangle 3 4 5}
+futohen sankakukei
+$ @kbd{./triangle 4 4 4}
+equilateral triangle
+$ @kbd{./triangle 2 4 4}
+isosceles triangle
+@end example
+
+@kbd{./triangle 3 4 5}で、仕様では`scalene triangle'という結果になるべきところが、`futohen sankakukei'となっています。
+
+@node Create Group, Create Test, Prepare, Tutorial
@section グループディレクトリーの作成
-Autotest.mkのテストを実行するためにはまず、テンプレートディレクトリーで@kbd{make}を実行します。このとき、テストグループのディレクトリーを変数@code{GROUPDIR}で指定します。ここでは、@kbd{~/triangle/test}をテストグループのディレクトリーにします。
+テンプレートディレクトリーで@kbd{make}を実行し、グループディレクトリーを作成します。このとき、テストグループのディレクトリーを変数@code{GROUPDIR}で指定します。ここでは、@kbd{~/triangle/test}をテストグループのディレクトリーにします。
@example
$ @kbd{cd ~/autotest.mk/template}
@example
$ @kbd{cd ~/triangle/test}
$ @kbd{ls}
-Define.mk Define_group.mk Define_test.mk Makefile Test.mk
+Define.mk Define_group.mk Define_test.mk Makefile Test.mk
@end example
-@node Create Test, Edit cmd, Create Group, Tutorial
+@node Create Test, Edit desc, Create Group, Tutorial
@section テストディレクトリーの作成
-@node Edit cmd, Test Set, Create Test, Tutorial
-@section テスト用コマンドファイルの作成
+グループディレクトリーで@kbd{make create}を実行し、テストディレクトリーを作成します。このとき、変数@code{GROUPDIR}でテスト名を指定します。テスト名は、小文字のアルファベットと数字で指定します。ここでは、1つめのテスト・ケースに対応するテストディレクトリーを、@code{01_scalene}という名前で作成します。
+
+@example
+$ @kbd{make create TEST=01_scalene}
+@end example
+
+次のコマンドでテストディレクトリーに移動し、その中を確認します。
+
+@example
+$ @kbd{cd 01_scalene}
+$ @kbd{ls}
+Makefile
+@end example
+
+@node Edit desc, Edit cmd, Create Test, Tutorial
+@section テスト説明ファイルの作成
+テスト説明ファイル@file{desc.txt}はテストに関する説明をあらわし、テストの結果と一緒にログに出力されます。
+@file{desc.txt}をテキストエディターを使って次の内容で作成します。
+
+@example
+@kbd{有効な不等辺三角形をあらわすテスト・ケース}
+@end example
+
+@node Edit cmd, Test Setting, Edit desc, Tutorial
+@section テストコマンドファイルの作成
+
+テストコマンドファイル@file{cmd}は、テストの時に実行されるコマンドをあらわします。
+@file{cmd}をテキストエディターを使って次の内容で作成します。
+
+@example
+@kbd{../../triangle 3 4 5}
+@end example
+
+@node Test Setting, Test Execute, Edit cmd, Tutorial
+@section テスト想定ファイルの作成
+
+テスト想定ファイル@file{0.txt}は、テストが正しく実行された場合の結果をあらわします。@file{0.txt}の作成方法は、次の3つがあります。
+
+@itemize
+@item
+手動で作成
+
+@item
+@kbd{make set}
+
+@item
+@kbd{make reset}
+@end itemize
+
+エラーが発生するテストでは、標準出力想定の下にエラー出力想定を続けます。
+
+@subsection 手動で作成
+テスト想定ファイル@file{0.txt}をテキストエディターを使って次の内容で作成します。
+
+@example
+@kbd{scalene triangle}
+@end example
+
+@subsection @kbd{make set}
+@kbd{make set}を実行すると、コマンドファイル@file{cmd}が実行されます。実行結果は@file{0.txt}ファイルに出力され、その内容が表示されます。
+
+@example
+$ @kbd{make set}
+scalene triangle
+@end example
+
+この方法で@file{0.txt}を作成した場合は、作成された内容がテスト想定として本当に正しいかよく検討する必要があります。
-@node Test Set, Test Execute, Edit cmd, Tutorial
-@section テスト想定結果の作成と検証
+また、@file{0.txt}がすでに存在する場合は@kbd{make set}を実行するとエラーになり、@file{0.txt}は更新されません。
+
+@subsection @kbd{make reset}
+@file{0.txt}がすでに存在する場合は、@kbd{make reset}で更新できます。
+
+@example
+$ @kbd{make reset}
+scalene triangle
+@end example
+
+@node Test Execute, Check Test Log, Test Setting, Tutorial
+@section テストの実行
+
+コマンドファイルとテスト想定を用意したら、@kbd{make}または@kbd{make check}でテストを実行できます。
+
+@example
+$ @kbd{ls}
+0.txt Makefile cmd desc.txt
+$ @kbd{make}
+有効な不等辺三角形をあらわすテスト・ケース
+01_scalene: Test Success 2011-01-10 10:09:55
+Detail in /home/foo/triangle/test/01_scalene/detail.log
+@end example
+
+表示される項目は、次のとおりです。
+@itemize
+@item
+<テスト説明ファイル@file{desc.txt}の内容>
+
+@item
+<テスト名>: <テスト結果(Test SuccessまたはTest Failure)> <テスト実行日時>
+
+@item
+Detail in <テスト詳細ログファイルの絶対パス>
+@end itemize
+
+
+@unnumberedsubsec バグを含む三角形判定プログラムの場合
+
+バグを含む三角形判定プログラムでテストを実行すると、次のように表示されます。
+
+@example
+$ @kbd{make}
+make: [diff.txt] Error 1 (ignored)
+有効な不等辺三角形をあらわすテスト・ケース
+01_scalene: Test Failure 2011-01-10 20:25:16
+Detail in /home/foo/triangle/test/01_scalene/detail.log
+@end example
+
+@node Check Test Log, Group Execute, Test Execute, Tutorial
+@section テストログファイルの確認
+
+テストを実行して作成されたファイルを確認します。@file{1.txt}、@file{test.log}、@file{detail.log}が作成されています。
+@example
+$ ls
+0.txt 1.txt Makefile cmd desc.txt detail.log summary.log
+@end example
+
+テストを実行すると作成されるファイルは、次のとおりです。必要に応じてファイルの内容を確認します。
+
+@table @file
+@item 1.txt
+テスト結果をあらわします。エラー発生時は、標準出力のあとにエラー出力が続きます
+
+@item err.txt
+エラー発生時に、エラーが出力されます。エラーが発生しない場合は作成されません
+
+@item diff.txt
+テスト想定ファイル@file{0.txt}とテスト結果ファイル@file{1.txt}の差分をあらわします。想定と結果が同一の場合は、作成されません
+
+@item summary.log
+テストの実行結果を表します。テスト実行時に表示される項目です。
+
+@item detail.log
+テストの詳細ログを表します。上記の内容がすべて出力されます
+@end table
+
+@file{detail.log}は、次のようになります。
+
+@example
+== test.log ==
+----------------------------------------------------------------------
+有効な不等辺三角形をあらわすテスト・ケース
+01_scalene: Test Success 2011-01-10 10:09:55
+Detail in /home/foo/triangle/test/01_scalene/detail.log
+----------------------------------------------------------------------
+
+== cmd ==
+----------------------------------------------------------------------
+../../triangle 3 4 5
+----------------------------------------------------------------------
+
+== 0.txt ==
+----------------------------------------------------------------------
+scalene triangle
+----------------------------------------------------------------------
+
+== 1.txt ==
+----------------------------------------------------------------------
+scalene triangle
+----------------------------------------------------------------------
+
+@end example
+
+@unnumberedsubsec バグを含む三角形判定プログラムの場合
+
+バグを含む三角形判定プログラムを準備してテストを実行した場合、@file{1.txt}、@file{test.log}、@file{detail.log}のほかに、テスト想定とテスト結果が異なるため@kbd{diff.txt}が作成されます。
+
+@example
+$ @kbd{ls}
+0.txt 1.txt Makefile cmd desc.txt detail.log diff.txt summary.log
+@end example
+
+@file{detail.log}は次のようになります。
+
+@example
+== summary.log ==
+----------------------------------------------------------------------
+有効な不等辺三角形をあらわすテスト・ケース
+01_scalene: Test Failure 2011-01-10 20:25:16
+Detail in /home/foo/triangle/test/01_scalene/detail.log
+----------------------------------------------------------------------
+
+== cmd ==
+----------------------------------------------------------------------
+../../triangle 3 4 5
+----------------------------------------------------------------------
+
+== 0.txt ==
+----------------------------------------------------------------------
+scalene triangle
+----------------------------------------------------------------------
+
+== diff.txt ==
+----------------------------------------------------------------------
+*** 0.txt Mon Jan 10 20:12:14 2011
+--- 1.txt Mon Jan 10 20:25:16 2011
+***************
+*** 1 ****
+! scalene triangle
+--- 1 ----
+! futohen sankakukei
+----------------------------------------------------------------------
+
+== 1.txt ==
+----------------------------------------------------------------------
+futohen sankakukei
+----------------------------------------------------------------------
+
+@end example
+
+@subsection テストのクリア
+
+@kbd{make clean}を実行すると、テストの結果作成されたファイルがクリアされます。
+
+@example
+$ @kbd{make clean}
+$ @kbd{ls}
+0.txt Makefile cmd desc.txt
+@end example
+
+
+@node Group Execute, Check Group Log, Check Test Log, Tutorial
+@section テストグループの実行
+
+2つめ以降のテスト・ケースについても、1つめと同じ手順でテストディレクトリーの作成後、テスト説明ファイルとテストコマンドファイル、テスト想定ファイルを作成します。ここでは、先に作成した@file{01_scalene}も含めて、次のようなテストディレクトリーを作成します。
+
+@itemize
+@item
+01_scalene
+
+@item
+02_equilateral
+
+@item
+03_isosceles
+
+@item
+04_isosceles_c
+
+@item
+05_zero
+
+@item
+06_minus
+
+@item
+07_line
+
+@item
+08_lines
+
+@item
+09_less
+
+@item
+10_lesses
+
+@item
+11_zeroall
+
+@item
+12_notint
+
+@item
+13_argcnt
+@end itemize
+
+こうしたディレクトリーやファイルは、Autotest.mkの@file{sample/triangle/test}以下にあるので、コピーして作成することもできます。
+
+テストグループディレクトリーでは、@kbd{make}または@kbd{make check}で複数のテストをまとめて実行できます。
+
+@example
+$ @kbd{cd ~/triangle/test}
+$ @kbd{make}
+test: 13 / 13 tests passed. Detail in /home/foo/triangle/test/TEST.log
+test: All tests are succeded.
+@end example
+
+表示されるのは、次の項目です。
+@itemize
+@item
+<テスト名>: <成功テスト数>/<全テスト数> test passed. Detail in <テストグループログファイルの絶対パス>
+
+@item
+(すべてのテストに成功した場合)<テスト名>: All tests are succeded.
+@end itemize
+
+@unnumberedsubsec バグを含む三角形判定プログラムの場合
+
+バグを含む三角形判定プログラムを準備してテストグループを実行した場合、次のように表示されます。
+
+@example
+test: 10 / 13 tests passed. Detail in /home/foo/triangle/test/TEST.log
+@end example
+
+@node Check Group Log, , Group Execute, Tutorial
+@section テストグループログファイルの確認
+テストグループを実行すると作成されるファイルは、次のとおりです。
+
+@table @file
+@item <テストグループ名を大文字にした文字列>.log
+テストグループに含まれるテストとその実行結果の一覧をあらわします。
+
+@item Summary.log
+テストの実行結果を表します。テストグループ実行時に表示される内容です。
+@end table
+
+ここではテストグループ名は@file{test}なので、@file{TEST.log}が次の内容で作成されます。
+
+@example
+01_scalene/
+有効な不等辺三角形をあらわすテスト・ケース
+01_scalene: Test Success 2011-01-10 12:14:23
+Detail in /home/foo/triangle/test/01_scalene/detail.log
+
+12_notint/
+整数でない値をもつテスト・ケース
+12_notint: Test Success 2011-01-10 12:14:23
+Detail in /home/foo/triangle/test/12_notint/detail.log
+
+03_isosceles/
+有効な二等辺三角形をあらわすテスト・ケース
+03_isosceles: Test Success 2011-01-10 12:14:23
+Detail in /home/foo/triangle/test/03_isosceles/detail.log
+
+02_equilateral/
+有効な正三角形をあらわすテスト・ケース
+02_equilateral: Test Success 2011-01-10 12:14:23
+Detail in /home/foo/triangle/test/02_equilateral/detail.log
+
+05_zero/
+1つの辺がゼロの値をもつテスト・ケース
+05_zero: Test Success 2011-01-10 12:14:23
+Detail in /home/foo/triangle/test/05_zero/detail.log
+
+13_argcnt/
+数値の個数が間違っていることをためすテスト・ケース
+13_argcnt: Test Success 2011-01-10 12:14:23
+Detail in /home/foo/triangle/test/13_argcnt/detail.log
+
+10_lesses/
+ゼロより大きな3つの整数のうち、2つの数の和がそれ以外の1つの数より小さくなることにおいて、3種類の順列すべてを考慮することのできるテストケース
+10_lesses: Test Success 2011-01-10 12:14:23
+Detail in /home/foo/triangle/test/10_lesses/detail.log
+
+07_line/
+ゼロより大きい3つの整数をもち、そのうち2つの和がそれ以外の1つと等しいようなテスト・ケース
+07_line: Test Success 2011-01-10 12:14:23
+Detail in /home/foo/triangle/test/07_line/detail.log
+
+06_minus/
+1つの辺が負の値をしめすテスト・ケース
+06_minus: Test Success 2011-01-10 12:14:23
+Detail in /home/foo/triangle/test/06_minus/detail.log
+
+11_zeroall/
+すべての辺がゼロであるテスト・ケース
+11_zeroall: Test Success 2011-01-10 12:14:24
+Detail in /home/foo/triangle/test/11_zeroall/detail.log
+
+08_lines/
+1辺の長さが他の2辺の長さの和に等しいことを3種類の順列のすべてに対してためすことのできるテスト・ケース
+08_lines: Test Success 2011-01-10 12:14:24
+Detail in /home/foo/triangle/test/08_lines/detail.log
+
+09_less/
+ゼロより大きな3つの整数のうち、2つの数の和がそれ以外の1つの数より小さくなるテストケース
+09_less: Test Success 2011-01-10 12:14:24
+Detail in /home/foo/triangle/test/09_less/detail.log
+
+04_isosceles_c/
+有効な二等辺三角形で2つの等辺を含む3種類の組合せすべてをためすことができる3つのテストケース
+04_isosceles_c: Test Success 2011-01-10 12:14:24
+Detail in /home/foo/triangle/test/04_isosceles_c/detail.log
+@end example
+
+テストをまとめて実行した場合も、個別のテストを実行した場合と同様に、テストディレクトリーにテストログが出力されます。特定のテスト結果を詳細に検討する場合は、そのテストのテストディレクトリーを開いてテストログファイルの確認をします。
+
+@unnumberedsubsec バグを含む三角形判定プログラムの場合
+
+バグを含む三角形判定プログラムを準備してテストグループを実行した場合、@file{TEST.log}は次のように表示されます。
+@example
+01_scalene/
+有効な不等辺三角形をあらわすテスト・ケース
+01_scalene: Test Failure 2011-01-10 21:45:52
+Detail in /home/foo/triangle/test/01_scalene/detail.log
+
+12_notint/
+整数でない値をもつテスト・ケース
+12_notint: Test Success 2011-01-10 21:45:52
+Detail in /home/foo/triangle/test/12_notint/detail.log
+
+03_isosceles/
+有効な二等辺三角形をあらわすテスト・ケース
+03_isosceles: Test Success 2011-01-10 21:45:52
+Detail in /home/foo/triangle/test/03_isosceles/detail.log
+
+02_equilateral/
+有効な正三角形をあらわすテスト・ケース
+02_equilateral: Test Success 2011-01-10 21:45:53
+Detail in /home/foo/triangle/test/02_equilateral/detail.log
+
+05_zero/
+1つの辺がゼロの値をもつテスト・ケース
+05_zero: Test Failure 2011-01-10 21:45:53
+Detail in /home/foo/triangle/test/05_zero/detail.log
+
+13_argcnt/
+数値の個数が間違っていることをためすテスト・ケース
+13_argcnt: Test Success 2011-01-10 21:45:53
+Detail in /home/foo/triangle/test/13_argcnt/detail.log
+
+10_lesses/
+ゼロより大きな3つの整数のうち、2つの数の和がそれ以外の1つの数より小さくなることにおいて、3種類の順列すべてを考慮することのできるテストケース
+10_lesses: Test Success 2011-01-10 21:45:53
+Detail in /home/foo/triangle/test/10_lesses/detail.log
+
+07_line/
+ゼロより大きい3つの整数をもち、そのうち2つの和がそれ以外の1つと等しいようなテスト・ケース
+07_line: Test Success 2011-01-10 21:45:53
+Detail in /home/foo/triangle/test/07_line/detail.log
+
+06_minus/
+1つの辺が負の値をしめすテスト・ケース
+06_minus: Test Success 2011-01-10 21:45:53
+Detail in /home/foo/triangle/test/06_minus/detail.log
+
+11_zeroall/
+すべての辺がゼロであるテスト・ケース
+11_zeroall: Test Failure 2011-01-10 21:45:53
+Detail in /home/foo/triangle/test/11_zeroall/detail.log
+
+08_lines/
+1辺の長さが他の2辺の長さの和に等しいことを3種類の順列のすべてに対してためすことのできるテスト・ケース
+08_lines: Test Success 2011-01-10 21:45:53
+Detail in /home/foo/triangle/test/08_lines/detail.log
+
+09_less/
+ゼロより大きな3つの整数のうち、2つの数の和がそれ以外の1つの数より小さくなるテストケース
+09_less: Test Success 2011-01-10 21:45:53
+Detail in /home/foo/triangle/test/09_less/detail.log
+
+04_isosceles_c/
+有効な二等辺三角形で2つの等辺を含む3種類の組合せすべてをためすことができる3つのテストケース
+04_isosceles_c: Test Success 2011-01-10 21:45:53
+Detail in /home/foo/triangle/test/04_isosceles_c/detail.log
+
+@end example
-@node Test Execute, , Test Set, Tutorial
-@section テストの実行とログの確認
+実際の開発では、こうした結果を元にプログラムの問題点を修正することになるでしょう。
@node Manual, , Tutorial, Top
@chapter Autotest.mkマニュアル
@node Template Dir, Group Dir, Manual, Manual
@section テンプレートディレクトリー
-テンプレートディレクトリーは、Autotest.mkをインストールするときに展開により作成された@code{template}ディレクトリーです。このディレクトリーに移動すると次の操作ができます。
+テンプレートディレクトリーは、Autotest.mkをインストールするときに展開により作成された@file{template}ディレクトリーです。このディレクトリーに移動すると次の操作ができます。
@menu
* make group::
@node make cleanall at test, Test Files, make clean at test, Test Dir
@subsection @kbd{make cleanall} テストの想定と結果をクリア
-@node Test Files,, make cleanall at test, Test Dir
+@node Test Files, , make cleanall at test, Test Dir
@subsection テストのファイル
@bye