最終更新日:$Date: 2004/05/12 01:38:00 $

本ページについて

本ページは基本的にリンクフリーです。ただし、本ページ以下のファイル構成は断わりなく変えられる場合がありますのでご注意ください。

新着情報

情報提供により、[正誤情報]を更新しました。(2004-05-12)

二重実行の件について(ようやく)[補足情報]に記述を追加しました。(2004- 03-04)

メニューに[お まけ]リンクを追加し ました。(2003-11-16)

YAGNIについて[補足情報]を追加しました。(2003-11-16)

情報提供により、[正誤情報]を更新しました。(2003-11-16)

さらに、[正誤情報]を更新。(2003-8-15)

誤りの報告が複数ありましたので、[正誤情報]を更新しました。(2003-8-11)

[補足情報]を追加しました。(2003-8-11)

Amazonに(ようやく)登録されたので、[本書概要]の[Amazon.co.jpから購入] を確定しました。 (2003-7-22)

早速誤りが発見されましたので、[正誤情報]を更新しました。(2003-7-15)

[秀和システムの本書の紹介ページ] が確定したので、修正しました。(2003-7-11)

本サポートページを作成しました。(2003-6-24)

本書概要 

Cover Image

題名:CppUnitによる XP − eXtreme Programming − 実践テスト技法
著者:大月 美佳
出版社:秀和システム

サイズ: A5正寸(148mm×210mm)
刷 色:1色刷
総頁数:304頁
定価: 本体2300円+税
ISBN4-7980-0571-1

発売予定:2003年7月中旬〜下旬

[秀和システムの本書の紹介ページ]

販促リンク:[Amazon.co.jpから購入]

[先頭へ戻る]

ダウンロード

ツールへのリンクは、[下書きの付録B]にあります。

本書掲載のソースコードの一部は、以下からダウンロードできます。

4章分(最終版):

[TestMain.cpp] [BoardTest.h] [BoardTest.cpp] [Board.h] [Board.cpp] [BoardPointTest.h] [BoardPoint.h] [BeanReversiGame.cpp] [SimpleUITest.h][SimpleUITest.cpp] [SimpleUI.h] [SimpleUI.cpp]

5.3節分:

[TestMain.cpp] [SampleTest.cpp] [SampleTest.h] [Makefile] [XSLTファイルtestresult.xsl] [CSSファイルtestresult.css] [result.xml] [resultmod.xml] [result-xls.xml]

[先頭へ戻る]

リンク

現在、[下書きリンクリスト]が最新です。

正誤情報

誤りがありましたら、がんがんsupport@mikamama.comま で連絡お願いします。発見者のお名前も掲載させていただいております。もし、不都合があるようでしたらその旨も書き添えていただけると助かります。

[第1刷] 

位置 発見者
p.19 1.1.2項 第2段落最終行 予測できる動き動くのは当然なので、 予測できる動き動くのは当然なので、 Josephさま
p.27 1.3.3項、「xUnitのフレームワーク」の前の段落、3行目 その他のxUnitついては、 その他のxUnitついては、 著者
p.28 図1.3.2の一番上のクラス[注1] TestCase Test たなかこういちさま
p.37 2.2.1項 第1段落最終行 SRPMの話については、2.2.1項の後半で紹介します。 SRPMの話については、2.2.3項で紹介します。 Josephさま
p.59 example/hierarchyのChessクラスのファイル Chass.h, Chess.cpp, ChessTest.h Chess.h, Chess.cpp, ChessTest.h 鈴木潤一さま
p.83 2段落目2行目 [設定の対象(S):]プルダウンメニューから[全ての構成]を選 んでおいてください。 [設定の対象(S):]プルダウンメニューから[すべての構成]を 選んでおいてください。 藤岡さま
p.111 3.4節 2段落目最終行 「YANGI」を包含しています。 「YAGNI」を包含しています。 ??さま(調査中)
p.111 3.4節 3段落目1行目 ここで、YANGIというのは ここで、YAGNIというのは ??さま(調査中)
p.117 図4.1.1の説明文 6行目では、CppUnit::TestCaseを継承して、 5行目では、CppUnit::TestCaseを継承して 鈴木潤一さま
p.117 図4.1.1の説明文 8行目で、○○Testクラスのコンストラクタを、 7行目で、○○Testクラスのコンストラクタを、 鈴木潤一さま
p.117 図4.1.1の説明文 12行目から、main関数の定義をしています。 19行目から、main関数の定義をしています。 鈴木潤一さま
p.127 図4.2.1コード末尾2行目 bool retcode = runner.addTest(suite); bool retcode = runner.run(); 松本和彦さま
p.140 図4.3.2 Board.cpp ページ末 void Board::getState(const unsigned int x, ... void Board::setState(const unsigned int x, ... 鈴木潤一さま、藤岡さま
p.155 図4.4.14 5行目 str += (char)('0' + x); str += (char)('0' + y); 藤岡さま
p.155 図4.4.14 ページ末 PointState s = getState(); PointState s = getState(x, y); 大瀬戸太さま
p.47 図4.2.42 3行目 Board.h
void getEmemyBean (); PointState getEmemyBean ();
福地さま
p.193 4.5.5章 第1段落第2行目 境界値としては、(0,1)を選んでみました。 境界値としては、(0,9)を選んでみました。 大瀬戸太さま
p.193 図4.5.19 キャプション 境界値(0,1)のテストケース 境界値(0,9)のテストケース 大瀬戸太さま
p.200 図4.6.8 3行目 #include #include <sstream> 大瀬戸太さま
p.202

図4.6.12 3行目

#include #include <sstream> 大瀬戸太さま

p.208

図4.6.22 16行目

CPPUNIT_ASSERT__EQUAL( (unsigned int)1, boardpoint->getX() ); CPPUNIT_ASSERT__EQUAL( (unsigned int)1, boardpoint->x ); 大瀬戸太さま

p.208

図4.6.22 17行目

CPPUNIT_ASSERT__EQUAL( (unsigned int)1, boardpoint->getY() ); CPPUNIT_ASSERT__EQUAL( (unsigned int)1, boardpoint->y ); 大瀬戸太さま

p.209

図4.6.24 8行目

CPPUNIT_ASSERT_EQUAL( (unsigned int)1, p->x );

CPPUNIT_ASSERT_EQUAL( (unsigned int)3, p->x );

大瀬戸太さま

p.209

図4.6.24 9行目 CPPUNIT_ASSERT_EQUAL( (unsigned int)1, p->y ); CPPUNIT_ASSERT_EQUAL( (unsigned int)4, p->y ); 大瀬戸太さま

p.213

図4.6.31 5行目 BoardPoint *p = waitInput(is, os); BoardPoint *p = getPointInput(is, os); 大瀬戸太さま

p.213

図4.6.31 6行目 tryUpdateBoard(p->getX(), p->getY(), os); tryUpdateBoard(p->x, p->y, os); 大瀬戸太さま
p.242 図5.2.5 図内注釈 各行の先頭の「数字:」は行番号を意味しています。 [削除] 鈴木潤一さま
p.246 第1段落2行目 出力形式の選択については、次の5.2節で紹介します。 出力形式の選択については、次の5.3節で紹介します。 鈴木潤一さま
p.261 最終段落第1行目 使用方法は、他のOutoutterと同じです。 使用方法は、他のOutputterと同じです。 鈴木潤一さま

*注1 正しい図は、下書き原稿中の[図 1.3.2]にあります。

[先頭へ戻る]

問合せ先

質問の際は、下記の点を再度ご確認の上、電子メールにてお願い致します。

送付先:support@mikamama.com

なお、上記の確認をされていないとこちらで判断した場合には、残念ながらお返事を差し上げないこともありえます。 あらかじめご了承ください。

[先頭へ戻る]

下書き原稿

本サポートページでは下書き原稿を参考までに公開しています。

!!!注意!!!

この下書き原稿はあくまで下書きで、校正時に修正した情報は含まれていません。中には明確な誤りも含まれていますし、リンクも修正していませ ん。この下書 き原稿を参考にされる場合は自己責任でお願いします。また、下書き原稿に関する質問は原則的に受け付けません。

その上でどうぞ→[下書き原稿]

[先頭へ戻る]

補足情報

読者からの情報など。そのうちFAQに分離するかも。

Q1. cppunitのバッチビルドをした時に、 "mfc42u.lib,mfc42ud.libがない"旨のメッセージで、 いくつかビルドに失敗する件について。(by CEC藤岡さま+α)

A1. これはUNICODEのライブラリらしく、 VC++の標準のインストールでは、 インストールされません。 VC++のカスタムインストールで、 UNICODEライブラリをインストールする、もしくはCDROMから引っこ抜いてライブラリパスにコピーする、ことで対処できます。

参考URL: http://www.microsoft.com/japan/developer/library/vccore/_core_unicode_topics.htm

Q2. P257 3行目 同じテストが2回実行されてしまう問題について。(by CEC藤岡さま)

A2. SampleTest.hの最後の方に記載されている 以下の1行を移動する。

CPPUNIT_TEST_SUITE_REGISTRATION(SampleTest);

(移動先)SampleTest.cppの以下の場所に移動する。

#endif

CPPUNIT_TEST_SUITE_REGISTRATION(SampleTest);

//↑ココに移動

void SampleTest::testNew() {

原因の詳細はdioさんから[提供](2003/12/06) される。 コンパイル単位が違うため、SampleTest.hが別々に読み込まれ、 2回registされてしまう。

別途、後藤さまからも情報提供あり(2004/03/04)。多謝。

Q3. YAGNIの訳語の揺れについて。 (??さま(調査中…見つかりません…申し訳なく…)ご指摘)

A3. p.111 3.4節 3段落目1行目での説明「You aren't going to need it (将来必要に『ならない』もの)」 とp.182 4.5節 脚注6 「いずれ必要にはならない!」と訳語がずれてしまっていて、 混乱があったかもしれません。3.4節の方で統一すべきでした。

[先頭へ戻る]


Copyright ™2003 Mika Ohtsuki All rights reserved.