eXtreme Programming
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG実際実用的と思われるのはTesting, Refactoringの2つだと。
Cording Standardsは常識と考えればね。
XP全般について語ってもいいですが、
むしろTesting, Refactoringの二つをメインに語りましょう。
Testingのテクニックなんざをね。
参考URL:
http://objectclub.esm.co.jp/eXtremeProgramming/
0362359
NGNGうう、そうですか。
VC6はあるんですが(仕事なんで)、今回はVC5.0指定なんです。
今まで、JUnit, RubyUnit, PHPUnit, JSUnitを使ってきて、
VCもそのときインストールしていたVC6でcppunit(CppUnitじゃ
ないほう)を試して、「今回のプロジェクトもxUnitは楽勝でしょう」
なんて言っちゃったんですよ。
CUIのほうだったら使えるのかな。来週試してみよう。
エピス氏に聞いてみようかな・・・。
0363デフォルトの名無しさん
NGNGクライスラーC三のシステムが、ああでこうでこうなっているよ
と度々おっしゃっていらっしゃいますが
そのクライスラーというのは
どの程度の規模の会社で
C3というのは
どのくらい重要度の高いシステムなのでしょうか。
XPを上司に紹介する時に、
クライスラというネームバリューがあったら
XPの実践を説得しやすいかと思いますので
具体的にどのくらいでかいんだぞ。と
枝葉末端に至るまで偉大さを分からせてくださるような
情報キボンヌ。
0364中身を読まずにカキコ
NGNGhttp://www.xprogramming.com/publications/dc9810cs.pdf
0365デフォルトの名無しさん
NGNGサイト見てみると従業員は 416,501人(2000年末時点) か。でかい…
0366推測
NGNGVC5.0 は template をまともに使えません。
CppUnit は template を使います。たぶん
VC5.0 では CppUnit をコンパイルするだけ
でエラーになると推測します。
0367デフォルトの名無しさん
NGNG0368デフォルトの名無しさん
NGNG継承した解凍/圧縮ストリームの
ユニットテスト書きたいんですけど
ExpandInputStream(InputStream in) extends InputStream {
read() で解凍された1byte読み出し
}
CompressOutputStream(OutputStream out) extends OutputStream {
write() で1byteを圧縮して書き込み
}
みたいなストリームって
どうやってテストしたら良いんでしょ…
0369デフォルトの名無しさん
NGNGまず圧縮して解凍して問題なければもんぢあなし
0370デフォルトの名無しさん
NGNGやっぱ そーゆーテストの方法しかないっすよね…
0371デフォルトの名無しさん
NGNG0372368
NGNG手動で圧縮済みデータ作るの大変そうだなぁ…
はっ 良く考えたら手動で作った圧縮済みデータの
正当性検査はどーしたら?
それは良いとして、 それ以外のチェックって
ストリームの補助機能のチェック
ぐらいしか思いつかんのですけど、
read(int data) で data が 256以上でもちゃんと処理されるとか
mark() / reset() のサポート/非サポートが 仕様どうりかとか
available() の戻り値はOKかとか
それ以外ってチェック項目ありますかねぇ…
0373デフォルトの名無しさん
NGNGJavaは知らんが、圧縮をどうやってやるのかによる。
自前のロジックを組むなら、圧縮されたデータの正当性の検査は出来ると思う。
既存のライブラリを使うなら、圧縮済みデータを作ることは容易だと思うけど。
0374デフォルトの名無しさん
NGNG>それ以外ってチェック項目ありますかねぇ…
自分が実装しようとする(あるいはしたもの)についてテストすれば良い。
異常データのときに、ちゃんと異常処理されるか、
期待した例外がちゃんとthrowされるか、とか。
0375Delフサギコ
NGNG∧,,∧ /
ミ;゚Д゚彡< 解凍ツールで解凍したら・・・
ミつ つ \
〜ミ ,, ミ.  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∪∪ って独自の圧縮形式だったらダメだけど...
圧縮/解凍して元のデータとの整合性を
チェックすればいいだけでは?
0376デフォルトの名無しさん
NGNG0377デフォルトの名無しさん
NGNGデータを食わせてきちんと復元できることを確認しないといかんね…
同じバイトばっかり並んだやつや、欧文、日本語文テキスト、exeファイル、
乱数列、とか。
元が小さい場合、ヘッダ付加の分サイズが膨らむこともよくあるから
常に小さいかどうかってのはアレだが。
0378デフォルトの名無しさん
NGNGというのはブラックボックステストであって
ユニットテストではない。
ExpandInputStream/CompressOutputStream内部で呼んでいる
メソッドについてテストを書くことを検討してみたら。
テストを書くのが簡単になってその上デバッグが楽になるよ。
0379デフォルトの名無しさん
NGNG誰が翻訳者としてダメなわけですか?
ピンク色の本は翻訳はよくても冗長で分厚くなってしまっているのでは?
0380デフォルトの名無しさん
NGNG>圧縮プログラムなんて、圧縮後のサイズが元より小さくて、圧縮したデータを正しく復元
> できれば、多少間違ってても要件を満たしてると思うなり。。。
圧縮済ファイルをもう一度圧縮するとサイズがでかくなるよ
0381デフォルトの名無しさん
NGNGたとえば、lhaとかは圧縮結果をまた圧縮して
これ以上小さくならないところまで圧縮を繰り返す
なんて聞いたことがあるんだけど、ホント?
そういうアルゴリズムなら再圧縮しても大きくならない
ような気もするけど、圧縮ロジックの中での再試じゃないから
やっぱりヘッダなりなんなりが付加されて大きくなるかな?
元ファイルがこれからしようとしてる圧縮形式と同じもので
かつ圧縮後もやっぱりちいさくならないようなら
圧縮しない(もしくはしたフリ)でファイルに手を加えない
ってロジックは欲しいかもね
0382名無しさん@Emacs
NGNGおなじアルゴリズムで2回圧縮したらどうしたって1回目より大きくなっちゃうんじゃないの?
0383359
NGNGcppunit-xという奴です。
http://member.nifty.ne.jp/glad/cpp/test/
ただし、USE_LEAK_CHECKERを有効にすると、コンパイルできません。
(oeprator deleteの引数の数が違うと怒られる)
「eXtreme Programming テスト技法」
http://www.shoeisha.com/book/detail.asp?bid=1304
という本が発売されていて、その中でcppunit-xも紹介されているそうです。
(でも、この本、長瀬氏監修なんだよな・・・)
この本は、まだ買ってないので、評価は出来ません。
0384368
NGNG立した検査方法」とかあるのかな?とか思って質問したんです
けど、やっぱり正攻法でやるしかないみたいですね…
Base64OutputStream とか作ってる人いるみたいだし、
そーゆのあるのかなぁ…とか思ったんですけど。
>>381
>>これ以上小さくならないところまで圧縮を繰り返す
ってのは違います。LHAは名前のとうり LZ77 圧縮した結果を
Huffmanで圧縮して終わりです。
個人的な経験では圧縮2回目は圧縮率9?%で圧縮できます。
でもこの圧縮率はヘッダの大きさ含んでないので書庫サイズ全
体としては1回目の圧縮後より大きくなってる可能性もありま
す。もちろん圧縮失敗する可能性もあり、その場合は「圧縮前
より大きくなる」のでなく無圧縮で格納しなおします。その場
合は確実にヘッダ分だけ書庫サイズは増加します。
普通は解凍に手間と時間がかかるだけで、意味が無いので二重
圧縮は嫌われます。たしか bzip2 だったかは二重圧縮に比較
的強いと聞きましたが自分は試したことが無いので、どの程度
「強い」のかは知りません。
0385デフォルトの名無しさん
NGNGhttp://www.ogis-ri.co.jp/otc/hiroba/others/OORing/interview06.html
この二人のどっちがいいのかな。
0386Delフサギコ
NGNGミ,,゚Д゚彡 < そもそも、Unitテストの使い方がサパリわからないですー
U ミ 猫でもわかるUnitテストを教えてキボーン
@ミ ミ
∪ ∪
DUnitは二つあるみたいです...
DUNIT Am Xtreme testing framework for Delphi programs
http://dunit.sourceforge.net/
DUnit - Delphi Testing Framework
http://members.jcom.home.ne.jp/monazilla/shortcuts/DUnit/index.htm
0387デフォルトの名無しさん
NGNGそれ読め
0388デフォルトの名無しさん
NGNG>>383 の本を読んでみたら?
0389Delphiを知らずにカキコ
NGNGその二つのHPをちらっと見たところ、前者がxUnitのDelphiバージョン、
後者はUnitTestingの精神にのっとった、独自バージョンつー感じがした。
(ダウンロードして試したわけじゃ無いので違うかも。つーか、Delphi知らんし(藁)
まずやるなら、前者の方がいいかも。xprogramming.comでもpreferredに
なってるし。
いちおう、こんなページも見つけた。
http://www.toymap.net/fightingpg/fighting.htm
しかし、GoogleでDelphi&DUnitで<b>約17件</b>とは・・・。
0390Delフサギコ
NGNG>>388さん
[XP-jp:02767]でさりげなく無視されてたり
>>389さん
xUnitもよくわかなのですが、なんとかやってみます。
 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
∧,,∧ サンクスコ
ミ,, ゚Д゚彡
〃 つ旦~~
〜ミ,,,n,,n[ ̄ ̄ ̄.]
 ̄ ̄ ̄
0391デフォルトの名無しさん
NGNG無いので除外)
・TestCaseがクラスになっている
・それぞれのTestCaseの前後で、setUp(), tearDown()というメソッドを
呼び出すことになっていて、そこで、準備、クリーンアップが出来る。
なので、それぞれのTestCaseが独立している。
・TestCaseをまとめる、TestSuite(テスト一式)という概念がある
・オブジェクト(クラス)の情報がわかる言語では、Testメソッドを自動的に
順番に実行してくれる
・テスト実行(TestRunner)はGUIバージョンとCUIバージョンがある。
GUIのほうは必須ではない。
・テスト結果がオブジェクトである。
よって、結果に自由にアクセスできる。
つー感じ。
0392デフォルトの名無しさん
NGNGなるほど。XP-jp で無視されたら読む価値なしか。
0393Delフサギコ
NGNGうーん、いまチュートリアル読んでるけど
http://members.jcom.home.ne.jp/monazilla/shortcuts/DUnit/tutorial/writing_code.htm
なんか説明が難しい。
 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
∧,,∧
ミ,, ゚Д゚彡
〃つl⌒|⌒l
〜ミ,,[ ̄ ̄ ̄.]
 ̄ ̄ ̄
0394Delフサギコ
NGNG>>386の下の方、どうやってもフサには理解できん..
∩,,,,,,,,,,,∩ ,,,_
〜⊂`'''''''''ミ。Д。ミ⊃
`'''''''''''∨ ∨ アボーン
0395デフォルトの名無しさん
NGNG0396デフォルトの名無しさん
NGNG無茶苦茶簡単ですが?
サンプルに以下のコード追加したら普通に動きましたよ
Del6Personalで確認
unit testDUnit;
interface
...
function Plus(a, b: Integer): Integer;
function Minus(a, b: Integer): Integer;
type
TMyTest = class(TTest)
published
procedure testPlus;
end;
implementation
...
function Plus(a, b: Integer): Integer;
begin
Result := a + b;
end;
function Minus(a, b: Integer): Integer;
begin
Result := a * b; // バグ有り
end;
procedure TMyTest.testPlus;
begin
Test(Plus(1,2), 3, 'Plus1');
Test(Plus(1,-2), -1, 'Plus2');
Test(Minus(4,2), 2, 'Minus'); // バグ有り
end;
initialization
TestSuite.Add(TTestTest, [TTestNone, TTestSuccess, TTestFailure, TTestError, TTestException, TTestProfile, TTestExecute
,TMyTest]); // <-追加
end.
エラーレポート
Test failed - Minus
TestName: TMyTest
Type: Integer
Actual: 8
Expected: 2
0397デフォルトの名無しさん
NGNGところでDUnitはテストコードとテスト対象コードを分離することは出来ないの?
0398Delフサギコ
NGNG↑ここまではわかるけど
http://members.jcom.home.ne.jp/monazilla/shortcuts/DUnit/tutorial/condition.htm
↑ここで
procedure TestとかTestNとか
fooとかTMyTestとか定義も説明も一切無いのになぜわかるのですか?
∧,,∧ / ̄
@,,,ミ,,゚Д゚彡 < うーん、>>396さんの説明とチュートリアルに一切接点がみられないのですが...
⊂,,,,,,,,,つつ. \_
unit testDUnit; じゃなくて
uses testDUnit??
0399デフォルトの名無しさん
NGNG一緒に合ったほうが分かりやすくない?
リリースコンパイル時には分離できるのだし。
0400デフォルトの名無しさん
NGNGprocedure TestN(msg: String=''); overload; // 無条件に失敗
右にあるコメント見れば一目瞭然な気が
0401デフォルトの名無しさん
NGNG0402デフォルトの名無しさん
NGNG俺はDelphiも知らない全くの外野ですけど(汗
一緒にあると、バージョン管理がヤじゃないですか?
テストコードを更新すると、テスト対象のバージョンも上がってしまう。
あと、ドキュメント自動生成をやろうとしたときに、両方一緒だと邪魔だとか。
いや、ただ、それだけなんですけど・・・。
0403Delフサギコ
NGNG沢山あるソースのどこにTestが定義されているのかもわからないし
そもそも、そのprocedureを自分で書くのか、利用するのか?
という事も伝わらないです。
procedure TTest.Test(Actual, Expected: Integer; msg: String);
begin
if Actual = Expected then Succeed
else Fail(IntToStr(Actual), IntToStr(Expected), 'Integer', msg);
end;
かろうじて、このソースを見てからなら意味はわかるのですが...
∧,,∧ ムズイ...
\,,,,ミ,,゚Д゚彡 五里霧中の中を突き進むような試行錯誤です。
⊂,,,,,,,,,つつ.
そもそもXPのユニットテストに精通している人間にしか
Test手続きが、評価する関数だって理解できないですよ。
procedure Testって、TTestのメソッドだってのも
どうやって、あのページから類推するのでしょう?
>>401さん、たぶん大丈夫(分かりにくいかもしれませんが)
>>402さん、選択できるといいですよね。
基本的にはテストコードはテスト対象コードと一緒にしておく方が
よいと俺は思っています。
0404デフォルトの名無しさん
NGNG名前同じで引数だけ違うものを複数書くときにoverloadと記述するんだけど
"大丈夫"って何が心配なの?
0405デフォルトの名無しさん
NGNGテストコードを含めてのコードじゃないかな。特に XP の test-first な視点では。
typo 一つでも commit するときはしなきゃいけないので
バージョンが上がるのは気にしない。
ドキュメントの自動生成は面倒だね。
これも気にしないことにしてるけど(w、
生成ツールにテストコードを omit するオプションつけてくれると嬉しいね。
0406Delphiを知らずにカキコ
NGNGそのDUnitがxUnitの精神を忠実に実装しているかどうか知らないけど、
xUnitは、
・テストケースを書く仕組み
・テストケースをハンドリングする仕組み
・各種チェックメソッド
・テストを実行する仕組み
・結果をハンドリングする仕組み
を含んでいる。
つーか、本買ってきて読め。
あるいは、Java, C++, VBを知ってるなら、JUnit, CppUnit, VBUnitのドキュメントを
Googleしてみろ。つーか、使ってみろ。
Ruby知ってるならRubyUnitだな。256倍本も出てるし。
xUnitの枠組みは、簡単で、誰にでも分かるもの(OOPLの場合)。
・提供されたチェックメソッドを使って、提供されたTestCaseクラスを継承したテストコードを書く。
・提供されたTestRunnerでテストを実行する。
・提供された結果表示機能を使って、結果を確認する。
ただそれだけだ。
0407デフォルトの名無しさん
NGNGxUnit が理に適った作りをしていることが分かる。
http://member.nifty.ne.jp/masarl/article/testing-framework.html
0408デフォルトの名無しさん
NGNGそういうもんかな。
今まで使ってきたxUnitが全部TestCaseは別ファイルだったから、
違和感を感じるだけかもしれない。
そもそも、コードとテストコードが同一ファイルにあるというのが、
古くからの伝統だったので、xUnitで分かれたのはそれなりの
理由があったのかもしれない。
単に最初の(ほんとか?)のJUnitがJavaであるがゆえにそうなった
というだけかもしれないけど。
0409デフォルトの名無しさん
NGNG自分のコードみたら言語によってまちまちかも。
分けた方が全体的な保守性はいいのは確かだね。
0410デフォルトの名無しさん
NGNGこのDUnitのクラス構造ちょっと変わってるね。
TComponent <- composite
+ TTest <- この時点でテストを階層化してる。こいつを継承してテストを書く
+ TTestSuite <- テストの(階層的な)実行、レポート、singleton
+ TMethodTest <- TTestの個々のメソッドをオブジェクト化、テストメソッドの呼び出しを担当。テストメソッド毎にもテスト結果を持てる。
あとプロファイラなんかの拡張機能もTTestに突っ込んである。
TComponentって事は登録してフォームに貼り付けてGUIテストもできるのかな?
# ソースではregisterしてないけど
0411デフォルトの名無しさん
NGNGつーか、同じ名前を付けんじゃねーぞ、ゴルァ。
>>386では”DUNIT"ってかいてるけど、ソースフォージの表記は"DUnit"だぞ、ゴルァ。
つーか、>>383の本買ったぞゴルァ。
まだ読んでねーぞ、ゴルァ。
0412デフォルトの名無しさん
NGNG使い勝手どうですか?
0413デフォルトの名無しさん
NGNG0414デフォルトの名無しさん
NGNG0415デフォルトの名無しさん
NGNGmake testでエラーがでて困ってるんですけど
なんとかなりませんか?
あと使い勝手はどうですか?
0416デフォルトの名無しさん
NGNG0417デフォルトの名無しさん
NGNG0418デフォルトの名無しさん
NGNG0419デフォルトの名無しさん
NGNG0420デフォルトの名無しさん
NGNG0421デフォルトの名無しさん
NGNGwebをまわってみても実際に何をするのかがいまいちつかめなかったので
とりあえずXP入門の本から読んでますが、珍妙な訳にくじけそうです。
0422デフォルトの名無しさん
NGNG性格もよくて、将来に何の不安もなくて、毎日楽しく生きてる、
ようなプログラマーが集まれば、勝手にXPになります。
0423デフォルトの名無しさん
NGNG(デジタルなどのおかげで)成果物の「完璧コピー」がとり易い分野であり、
成果物の「ただしさ」がはっきり定義できる分野ならば、
ほかでも使えるかもね。
プログラム以外で、そういう意味でデジタル化されてる分野ってーと
なにがあるでしょう?
とりあえず思いつくのが、音楽とかの芸術分野と、設計図分野。
でも芸術は「ただしさ」が定義できないんで、
UnitTestとかが意味をもたない(藁)
設計図はいけるかもね。
実際、大企業むけのシステムでは最近、(リモートでだけど)複数人間による
図の同時編集なんてのが行なわれている。もちろんVer管理もあるし、
間違いも定義可能なのは言うまでもない。
なのでUnitTestもRefactoringもPairProgもできる。
>勝手にXPになります。
それは言えてるかも。
馬鹿なやつは下らない(有害無益な)管理方法を採用してデスマーチに嵌っていく。
0424デフォルトの名無しさん
NGNGウチでは,UnitTestって言うくらいなんで,当たり前だけどIntegrationTest(組合せテストね)
では全然使えません。何が言いたいかって言うと,単純なクラス以外は適用が困難で(つまり
テストのための準備が大変すぎて)実行時テストの方が工数的に妥当だよね。
ファイルやネットワークやモジュール間通信をするクラスなんかはこれに当たることが多いなり。
で,単純なクラスってなると大抵,基礎的なクラスで,そうそういじらないと。新しいプロジェクト
じゃない限り枯れてる事も多いと。逆に上位のクラス(アプリクラスって言ってるけど)では,適用が
大変だと。むにゅー,どこに使うなり?適用事例求む。
0425デフォルトの名無しさん
NGNG禿しく同意。
cppunit 拾ってきて、UnitTest の環境作って
テストクラス書こうとして、1行目で挫折しました。
0426デフォルトの名無しさん
NGNG俺は出来るところだけテスト書いてる。だからテストが書けるのは10%くらいかな。
でも最初にこれをやることが肝心。いちどコンパイルのサイクルの中にテストが
入ってくれば徐々にテストは増えていく。1ヶ月も続けるとテストなしでは不安を
感じるようになったよ。
「テスト書いたから実行時テストは要らない」にはならないんだから、すべてを
網羅しようとしないことが大切だと思う。
0427デフォルトの名無しさん
NGNGテストユニットは几帳面で完璧主義な人には向かない。
テストユニットは動作保証というより、
コーディング前にテストを用意することにより、
設計検証として役に立つ(ことがある)。
テストを作ると「この仕様だめじゃん」とか気付く。
0428Delフサギコ
NGNG具体例を交えて話題が出ると
スレも盛り上がるかと…
 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
∧,,∧ オレ ハ DUnit ヲ
ミ,, ゚Д゚彡 イキナリ ザセツ シテルンダケド....
〃つl⌒|⌒l
〜ミ,,[ ̄ ̄ ̄.]
 ̄ ̄ ̄
0429デフォルトの名無しさん
NGNGテストしやすいクラスは設計の筋がよいという経験則をよく聞きます。
例えば値を計算するメソッドと、それを表示するメソッドを分けるとか。
ひょっとして関数型プログラミングの副作用をなくして参照透過性を保つとい
う考え方に通じるものがあるんでしょうか?
0430デフォルトの名無しさん
NGNG論理処理とユーザーインターフェイスの分離は前提だよな。
そしてユニットテストは論理処理の側だけに書く。
XP的にはユニットテスト書くのが困難ならリファクタリングすべきだと思うけどどう?
0431デフォルトの名無しさん
NGNG>テストのための準備が大変すぎて)実行時テストの方が工数的に妥当だよね。
「実行時テスト」というのは初めて聞いたけど、どういうものなの?
「テストのための準備」というのを、テストをやるたびにしなきゃならないなら、
多少工数がかかっても、UnitTestを書いておいたほうがいいと思う。
>ファイルやネットワークやモジュール間通信をするクラスなんかはこれに当たることが多いなり。
これも、
>逆に上位のクラス(アプリクラスって言ってるけど)
これも、UnitTestは可能だと思うけどなぁ。
ちなみに僕は、ほとんどの場合、下位クラスはstubに置き換えて結合して、
UnitTestをやってます。
んで、下位クラスが出来たところで、結合してUnitTestを実行。
>>426
>1ヶ月も続けるとテストなしでは不安を
>感じるようになったよ。
うんうん。
となりのチームは、コンパイルもせずに、ダーっとコードを書いて、
山のようなコンパイルエラーが出て、それをちまちま取って、コンパイルできて、
動かそうとしたら全く動かなくて途方に暮れてるみたいだけど、
こんなやり方で、良く集中力が持続するなーって感心する。
0432Error401
NGNG>テストユニットは動作保証というより、
>コーディング前にテストを用意することにより、
>設計検証として役に立つ(ことがある)。
そう?
僕は動作保証の為にUnitTestを書いてるけど。
だって、穴のたくさんあいたTest Suiteだと、リファクタリングも怖くてできないし、
他の人の作ったのなんて、怖くてメンテできない。
そんなことない?
あ、僕はUnitTest依存症なんだと、今気づいた。
0433デフォルトの名無しさん
NGNG0434デフォルトの名無しさん
NGNG0435デフォルトの名無しさん
NGNGサンプルに付いてくる HostApp はMFCアプリですが、自分が
テストしたいのはコンソールアプリです。コンソールアプリから
TestRunnder::run() を呼ぶとダイアログを表示するところで
エラーが出でしまいます。
マニュアルによるとTestRunner.dll のようなMFC と動的にリンクされる
レギュラーDLLではエクスポート関数の先頭でAFX_MANAGE_STATE
マクロを使ってモジュール状態を切り替える必要があると。
で、このマクロをつかうと今度は DllMain の多重定義のエラーが
出てしまい、いろいろ調べまわってみましたが同様のエラーに悩んで
いる人はたくさんいましたが解決法が見つかりません。
だれか解決法知っている人いませんか?
0436デフォルトの名無しさん
NGNG0437デフォルトの名無しさん
NGNGhttp://member.nifty.ne.jp/glad/cpp/test/
こちらがよいと思われますぞ。
0438435
NGNGコンソール版の TestRunner というのはみあたらないですね。
>>437
実は最初に cppunit-x を使ってこれはちゃんと動きました。
プアな環境でも動作するようにつくってあるということで
独自のマクロを使っているので、VC++6で使う分には CppUnit1.5
のほうが分かりやすいと思ったのでそっちも試してみたのでした。
あと結果の表示がグラフィカルで見やすいと思ったので。。
「eXtreme Programming テスト技法」でも主に cppunit-x が
紹介されてましたが、みなさんこっちをつかってるのですか?
0439436
NGNGこれは CppUnit1.5では無いのか。
TextTestResult.h/cpp ってのは入ってないかい?
若干手を加えたので、どれがオリジナルか判らん状態。
0440デフォルトの名無しさん
NGNGサンプルのSmartPtrTestが予期した動作をしてくれないっぽい。
起動すると、「Unknown test class: TestSuite」ってダイアログが出て、その後もフォームこそ出るけど、その中のボタンを押しても反応無し。
どなたか、原因を知っている方いらしたら、よろしくお願いします。
0441435
NGNGTestRunner.dll がレギュラーDLLであると書いてしまいましたが、
拡張DLLの間違いでした。拡張DLLの関数を呼ぶことができるのは
MFCアプリだけということなので、今のままではコンソールアプリから
CppUnit1.5 の TestRunner を使うことはできないみたいですね。
0442435
NGNGSourceForge から CppUnit1.6.2 をひろってきたら TextTestRunner
や TextTestResult というクラスがありました。これを使ったらOKでした。
>>439 ありがとう!
0443(X_P)
NGNG誰かいない?
0444デフォルトの名無しさん
NGNGこれは読んだかな?
http://objectclub.esm.co.jp/eXtremeProgramming/XpPracticeReport.html
0445443
NGNGありがと。
読んでみた。
なかなか面白そうだと思ったけど、444のリンク先は、実際のプロジェクトとは少し離れ過ぎている気もする。
実際のプロジェクトでやってる人の感想とか聞いてみたいなぁ。
UnitTestやリファクタリングは自分でやってみたのでどんな感じかわかるが、
ペアプロとか毎回誰がどこ組むか決められる(共同所有)、とかそういうのがうまくいくのかどうか。
なんかこんなにうまくいかなさそうな気がするんだよなぁ。
顧客周りはいってもはじまらんのでどうでもいいや。
0446デフォルトの名無しさん
NGNGでも全てのプラクティスを実行したわけじゃなかった
例えばペアプロ->一人で組んで、もう一人がコードレビューとか
雑誌名忘れちゃったな。日経ソフトウェアだったかな???
0447デフォルトの名無しさん
NGNG0448デフォルトの名無しさん
NGNG0449Delフサギコ
NGNGミ ゙''゙゙゙つ
ミ∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ,,゚Д゚彡 < いきなりシツモンなのですが
U U \________
ピンク色XP本の
P180の完成したストーリーグラフ図の
5番と6番のところに黒色の塗りつぶし分がないのが
なぜかよくわかりません。
なぜでしょう。
0450Error401
NGNG0451Delフサギコ
NGNG@'"ミ,,゚Д゚ミ < サンクス
UU''UU \___________
あら、ご無沙汰してます>>Error401さん
では
5になれば
自動的に75以上のストーリーが完成するという事でいいのですか?
妙に日本語訳が意味通じない気がしますが
適当に感じたらいいのかな。
0452Error401
NGNG>あら、ご無沙汰してます>>Error401さん
ちょっと前にデータベーススレで切れてしまったので、コテハンは
やめようと思ってたんだけど、文体を変えるのが面倒なので復活
させることにしました。
>5になれば
>自動的に75以上のストーリーが完成するという事でいいのですか?
でしょ?
それから、あそこで言いたいのは、
・トラッキングせよ
・公開せよ
・ストーリー数が増えている理由を把握せよ
ってことでしょう。
>妙に日本語訳が意味通じない気がしますが
さっきP179-P181を読み返してみたけど、意味が良くわからない
ところがありました。
最初に読んだときには気にならなかったんだけどね。っていうか
精読してないし・・・。
気になる箇所があったら、しかるべき所にメールしてみればいいかもね。
0453Error401
NGNGhttp://www.pearsoned.co.jp/washo/object/wa_obj46-j.html
んで、さっき買ってきた。
Servlet+JSP+DBのWebアプリケーションを例にしてるみたい。
パラパラとめくってみると、具体的な(完全な)コードがかなり
載ってる。ほとんどがServletのだけど。
なかなかよさげだよ。
0454デフォルトの名無しさん
NGNG日本人で書ける奴いねーの?
0455デフォルトの名無しさん
NGNGにしちゃっている。訳注でちゃんとフォローしているからいいけど。
0456Error401
NGNG翻訳も良かった。こなれた日本語になってる。
ところで、XPを「究極の〜」といってる人をたまに見かけるけど、
アレ、何か元ネタあるんでしょうか?
0457デフォルトの名無しさん
NGNG修正しなきゃならないってのはテストとしてよくないんでしょうか?
ここを変えるとするとああここもあそこも…って感じで
ちょっとげんなりです。
0458デフォルトの名無しさん
NGNGミスター味っ子
0459デフォルトの名無しさん
NGNGテストとしてよくないというか、プログラムとしてよくないというか…
変更が波及しています。スメルがバッドです。リファクタリングのサインです。
でも、ある程度は仕方がないと思う。
0460Error401
NGNGGoogleしてみたら、テクノロジックアーツのページなんかで、
extremeを「究極の」って訳してた。
「究極のプログラミング」と言われると、ちょっと違和感あるんだけど・・・。
>>457
なぜ「あちこちのテストを修正しなければならない」ことになるんでしょう?
それがわからないと、なんとも言えません。
ひょっとしたら、テストコードのリファクタリングが必要なのかも。
foo()がbar()を呼び出していて、bar()に仕様変更が入り、その結果foo()の
挙動も変更になるので、foo()のテストもbar()のテストも変更する必要がある、
ということなら、それは仕方が無い。
0461Error401
NGNG暇なときに探してみようかな。
なぜこのことが気になるかというと、
「XPって究極のプログラミングと言ってるが、どこが”究極”なんだよ」
みたいな批判をするのを、たまに目にするから。
■ このスレッドは過去ログ倉庫に格納されています