太田さん,
平鍋です.
いつも情報ありがとうございます.太田さんのテストに関する一貫
性のある視点には,いつも勉強させられます.太田さんの論旨とは
ちょっとずれますが,
On Wed, 6 Dec 2000 14:57:55 +0900,
"Oota" <oota@....jp> said:
> 私もこの点が気になってJPLoPの友野さんにお聞きしたのですが、XPでいう
> テストはMeyerの契約主導設計の実現の一種であるというお話でした。「表
> 明」というのでしょうか。「表明」は「こうなっているべきだ」というのを事
> 前条件、事後条件、不変条件で通常そのプログラムの内部で記述するものです
> (というのは平鍋さんのほうが詳しいと思います)が、それを外側にもってきた
> のが、XPのテストということでしょうか。
私の最近の頭の中では,
Meyer の表明
"Built-in Test", "Test Inside Code", "Testing-in Strategy"
XP の Unit Test
"Built-out Test", "Test Outside Code", "Testing-out Strategy"
など分類されています.このような分類で,テストを考えている他
の文献等ありませんかね?
例は,自明ですが,こんな感じです.
/** Test in */
class Stack {
int itemCount;
Object pop() {
Assert.require(itemCount > 0);
// 実装...
Assert.ensure(@....itemCount - 1 == itemCout);
}
}
/** Test out */
class StackTest extends TestCase {
void testPop() {
Stack stack = new Stack();
stack.push("1");
int pre_size = stack.size();
Object o = stack.pop();
assert(pre_size - 1 == stack.size());
}
}
あと,Meyer さんの過去の資料を見ていたら,
"All you need is Code" ... bOOtles.
というのがありました.これって XP 的ですね.Meyer さんのこの
言葉の文脈は,ドキュメントとコードが近い位置にないとドキュメ
ントがメンテできない,という話だったと思います.それで,文芸
的プログラミングに継るのでした.
以上