アカウント名:
パスワード:
「動くこと」だけは保証するけど、コードの質を保証するもんじゃないでしょ。
コードレビューだって、自分の仕事とかかわってこない部分の他人のコードは、さほど真剣に読まないよな。書いた本人が取り組んでいる問題の深さのレベルに、そう簡単に到達できるとは思えないし。そんな暇あったら自分の仕事を進める。
それが「コードの品質」ってことなんだよね。ソフトウェア開発における「品質」ってのは、一般に理解されている品質とはちょっと意味が違っていて、仕様通りに実装されているかどうか、を指す。達人的に超絶コーディングされている、という意味ではない。
テスト自体が仕様なのであれば、テスト駆動で「品質」を保証できるってことになる。一方、仕様自体にバグがあれば、コードの「品質」はクリアしてるのに動かないってこともありうる。
もっとも、テストに書ききれない仕様やコーディング規約ってのはあるかも知れないので、テスト駆動だけで「品質」をすべてカバーできるわけじゃないだろうね。
> ソフトウェア開発における「品質」ってのは...
「品質」を正確に定義しないで使っているから、なんか曖昧模糊な文章になってしまうんだよね。
・ソフトウェア品質特性・外部品質/内部品質/利用品質の違い・ソフトウェア品質特性の品質特性/品質副特性が外部品質/内部品質/利用品質のどれに含まれるか
なんてのを把握すると、明確な言い方が出来る様になると思う。
まあ、試験で担保出来るのは、外部品質のほとんどと、内部品質や利用品質の極一部だわね。内部品質や利用品質に含まれる品質副特性には、有効なメトリックスが存在しなくて主観的な判断をせざるを得ないものも少なく無い。有効なメトリックスが存在しないものは有意な試験なんか出来ないしね。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
犯人はmoriwaka -- Anonymous Coward
テスト駆動って (スコア:0)
「動くこと」だけは保証するけど、コードの質を保証するもんじゃないでしょ。
コードレビューだって、自分の仕事とかかわってこない部分の他人のコードは、さほど真剣に読まないよな。
書いた本人が取り組んでいる問題の深さのレベルに、そう簡単に到達できるとは思えないし。
そんな暇あったら自分の仕事を進める。
Re: (スコア:3, 参考になる)
テスト駆動は、
仕様をテストという形でコードに起こす。
テストは自動化されているのでいつでも繰り返しテストができる。
テストがいつでもできるので、リファクタリングというコード品質改善プロセスを安心して行える。
リファクタリングが済んだら次の仕様をテストに起こす。
次の仕様をクリアする段階で既にあるコードに手が入り、問題が発生しても(既にあるコード向けの)テストを実行すればクリアできる。
です。
コード書いてて、これちゃんとうごくんだっけと別窓で簡単な確認コード
# yes, fly. no, fry.
Re: (スコア:1)
それが「コードの品質」ってことなんだよね。ソフトウェア開発における「品質」ってのは、一般に理解されている品質とはちょっと意味が違っていて、仕様通りに実装されているかどうか、を指す。達人的に超絶コーディングされている、という意味ではない。
テスト自体が仕様なのであれば、テスト駆動で「品質」を保証できるってことになる。
一方、仕様自体にバグがあれば、コードの「品質」はクリアしてるのに動かないってこともありうる。
もっとも、テストに書ききれない仕様やコーディング規約ってのはあるかも知れないので、テスト駆動だけで「品質」をすべてカバーできるわけじゃないだろうね。
Re:テスト駆動って (スコア:0)
> ソフトウェア開発における「品質」ってのは...
「品質」を正確に定義しないで使っているから、なんか曖昧模糊な文章になってしまうんだよね。
・ソフトウェア品質特性
・外部品質/内部品質/利用品質の違い
・ソフトウェア品質特性の品質特性/品質副特性が外部品質/内部品質/利用品質のどれに含まれるか
なんてのを把握すると、明確な言い方が出来る様になると思う。
まあ、試験で担保出来るのは、外部品質のほとんどと、内部品質や利用品質の極一部だわね。内部品質や利用品質に含まれる品質副特性には、有効なメトリックスが存在しなくて主観的な判断をせざるを得ないものも少なく無い。有効なメトリックスが存在しないものは有意な試験なんか出来ないしね。