ユニットテストの適切なコードカバレッジ率(%)はどれくらいですか(またその理由は?)[closed] 質問する

ユニットテストの適切なコードカバレッジ率(%)はどれくらいですか(またその理由は?)[closed] 質問する

ユニット テストのコード カバレッジの最小パーセンテージを義務付ける場合、おそらくリポジトリへのコミットの要件として、それは何でしょうか。

どのようにして答えにたどり着いたのか説明してください(数字を選ぶだけなら、私も自分でできたはずですが ;)

ベストアンサー1

Alberto Savoia によるこの散文は、まさにその質問に(とても面白い方法で!)答えています。

http://www.artima.com/forums/flat.jsp?forum=106&thread=204677

Testivus のテスト範囲

ある朝早く、あるプログラマーが偉大なる師匠に尋ねました。

「ユニットテストを書く準備はできました。どのくらいのコードカバレッジを目指すべきでしょうか?」

偉大な師は答えた。

「カバレッジについては心配せず、良いテストを書いてください。」

プログラマーは微笑んでお辞儀をし、立ち去った。

...

その日遅く、2人目のプログラマーが同じ質問をしました。

偉大な師は沸騰したお湯の入った鍋を指差してこう言いました。

「あの鍋に米を何粒入れたらいいですか?」

プログラマーは困惑した様子でこう答えました。

「どうやって教えたらいいでしょうか?何人の人に食事を与える必要があるか、どれくらいお腹が空いているか、他にどんな食べ物を出すか、米がどれくらいあるか、などによって変わります。」

「その通りだ」と偉大な師匠は言った。

2人目のプログラマーは微笑んでお辞儀をし、立ち去りました。

...

その日の終わりに、3 人目のプログラマーがやって来て、コード カバレッジについて同じ質問をしました。

「80パーセント以上だ!」マスターはテーブルを拳で叩きながら厳しい声で答えた。

3人目のプログラマーは微笑んでお辞儀をし、立ち去りました。

...

この最後の返答の後、若い弟子が偉大な師匠に近づきました。

「偉大なる師匠、今日、私はあなたがコード カバレッジに関する同じ質問に 3 つの異なる答えで答えているのを耳にしました。なぜですか?」

偉大な師匠は椅子から立ち上がりました。

「一緒に新鮮なお茶を飲みながら、話しましょう。」

彼らが熱い緑茶をカップに注いだ後、偉大なる師匠は答え始めました。

「最初のプログラマーは新人で、テストを始めたばかりです。今のところ、コードはたくさんありますが、テストはありません。まだまだ道のりは長いです。この時点でコード カバレッジに焦点を当てるのは気が滅入るし、まったく役に立たないでしょう。まずはテストを書いて実行することに慣れたほうがいいでしょう。カバレッジについては後で考えればよいのです。」

「一方、2 番目のプログラマーは、プログラミングとテストの両方でかなりの経験があります。私が彼女に、鍋に米を何粒入れたらいいかと尋ねて答えると、必要なテストの量はさまざまな要因によって決まることを彼女に理解してもらいました。そして、彼女の方がそれらの要因を私よりもよく知っています。結局のところ、彼女のコードなのですから。単一の単純な答えなどありません。彼女は真実を受け止め、それに従って作業できるほど賢いのです。」

「分かりました」と若い弟子は言いました。「しかし、単純な答えが一つもないのなら、なぜ3人目のプログラマーに『80%以上』と答えたのですか?」

偉大な先生は、あまりにも大きな声で笑ったので、緑茶以外のものを飲んだ証拠として、お腹が上下に揺れました。

「3 番目のプログラマーは、簡単な答えだけを求めます。簡単な答えが存在しない場合でも...そして結局はそれに従わないのです。」

若い弟子と白髪の偉大な師匠は、物思いにふけりながら沈黙してお茶を飲み終えた。

おすすめ記事