ソフトウェア開発にテストは必要か?テストの代わりになるものは無いのか?

「テストって本当に要るの?」という僕の疑問に皆さんが回答してくれました。 D言語に unittest なんてあったのですね。 あと Coq についても少し出てきます。
19
@s50

テストとか書きたい時に書けばいいのサ!そのうちオマエら俺のテストを聞けぇ!

2010-08-12 16:14:45
@s50

←そんくらい気軽に書けるよーに言語機能に組み込みなんだと思ってる

2010-08-12 16:15:43
@rf0444

電車でCoqりさんやろうと思ったらノーパソのバッテリがきれた・・・

2010-08-12 16:20:47
くっくっkura 🇯🇵🦀 @PG_kura

@Rayerd 例えば int add( int a, int b ) in { } body { int ret = a + b; return ret; } out { assert( ret == a + b ); } のとき、事後条件は ret == a + b で、

2010-08-12 16:20:52
くっくっkura 🇯🇵🦀 @PG_kura

@Rayerd ここにテストを unittest { assert( add( 1, 2 ) == 3 ); } って書くのって、冗長な感じしないのかなぁって。契約で十分明示されてるやん、みたいな気分にならないのかなーと思うのですが。

2010-08-12 16:22:31
はるえす@イカのフレンズ @Rayerd

@PG_kura pure関数限定なら部分的に同意メンバ関数やnon-pure関数は状態に依存するかも.int g_v; int g_add(int a,int b)out(r){assert(r==a+b+g_v)}body{return a+b+g_v;}だと契約では不足か

2010-08-12 16:42:47
はるえす@イカのフレンズ @Rayerd

@PG_kura 本当はすべての値で検査したいという前提がある気がします.でもできないので値空間全体を検査対象にする契約と,いくつかの例示を検査対象にするunittestと,というイメージがあります,僕は.

2010-08-12 16:44:33
くっくっkura 🇯🇵🦀 @PG_kura

@Rayerd なるほどなるほど。あとこれはぶれいず卿にも聞いたのですが、もしお時間あれば http://twitter.com/PG_kura/status/20951148167 についてどう思うか感想を post してくれると嬉しいです。

2010-08-12 16:48:02
はるえす@イカのフレンズ @Rayerd

@PG_kura コードの正しさをテスト(unittest?)以外で検証する方法ですか・・・うーん思いつかない

2010-08-12 16:56:01
ぐるぐる系SQL @bleis

@Rayerd 証明!証明! [CIについて話します http://bit.ly/dtXLqV ]

2010-08-12 17:01:36
めるぽん.c @melponn

事実上は必要なんだろうけど、テストってブルートフォースみたいな感じがして結構大変そうなので、誰かもっといい方法開発して下さい。先人が素晴らしい方法を切り開いてくれれば自分はその道を悠々と歩くので。

2010-08-12 17:04:53
ぐるぐる系SQL @bleis

あ、CoqCoq言ってますけど全然Coqとか知らないですはい [CIについて話します http://bit.ly/dtXLqV ]

2010-08-12 17:07:46
くっくっkura 🇯🇵🦀 @PG_kura

@Rayerd りょーかいです!(テストに限らず、テストと目的を共にするものなら何でもいいのですが。) 何か思いついたらリプ下され。> Togetter 見てくださった方も。

2010-08-12 17:10:56
@rsinfu

add(a,b)みたいにトリビアルな関数なら,複数人に独立に実装させて,コンパイラの最適化出力が一致すれば妥当とみなすとか….複数人が同じバグを作る確率は小さいという前提のもと.

2010-08-12 17:27:32
@Rayerd

R f(T t)out(r){assert(r>=0);};かつ R g(T t)in{assert(0<t&&t<1);};のとき g(f(...))と書いたらコンパイルエラーにできるか?0を返す可能性があるfの結果をgに渡すと危険なことを証明できるかな?どうすればできるかな?

2010-08-13 08:37:14
くっくっkura 🇯🇵🦀 @PG_kura

■■■■■■■■■■ 数ヵ月後 ■■■■■■■■■■■■■

2010-10-30 11:54:00
くっくっkura 🇯🇵🦀 @PG_kura

昨夜は @otf さんにモジュールについて教えてもらった。にゃるほどなぁ、と。

2010-10-30 11:38:54
くっくっkura 🇯🇵🦀 @PG_kura

なんというか、そのおかげでテストに対する認識変わったとです。『ソフトウェア開発にテストは必要か?テストの代わりになるものは無いのか?』 http://togetter.com/li/41604@bleis センセが即レスくれたのも、そういうことだったんだなぁ。

2010-10-30 11:42:23
Geforce RTX 3060Ti @showyou

なんかこれテスト=モジュールテストとしか思ってないように見えるんだけど。。。『ソフトウェア開発にテストは必要か?テストの代わりになるものは無いのか?』 http://togetter.com/li/41604

2010-10-30 11:48:47
くっくっkura 🇯🇵🦀 @PG_kura

@showyou いやー、そういう節があったのですよ。そのときの僕には。なので、実は認識のズレが話のズレになってるです。今になって思えば根本的に間違ってたなぁと。

2010-10-30 11:50:45
mkszk @m_k_szk

「テスト」という語句が指している概念は幅が広すぎるよなあ。単体や結合と検証や評価とでは、するべきことがまったく違う。

2010-10-30 12:00:30