人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

テスト手法や複数人開発の詳しい人に質問です。
(CodeCompleteの内容は前提知識としてあるぐらい)

コードのマージ時にマージミスで重複行が発生してしまうのを防ぐ
良い方法ってご存じでしょうか。

具体的にはマージ時に、マージのミスで

call_method(foo)
if cond
call_method(foo)
end

みたいな重複行が発生することをチェックする仕組みがや取り組みが知りたいです。

なおテストケースではc1は網羅しててもメソッドの重複呼び出しだと場合によりテストが失敗しないので、テストをもっと書くべきというアドバイス以外でお願いします。

●質問者: セコン
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● さぼてん
●200ポイント ベストアンサー

質問のようなことをやりたければ、Jenkinsを使ってる会社の人ということで回答しますが、静的解析ツールで重複しているコード数を把握し、増加を見るというのはどうでしょうか?

単なるマージで増加するのは普通はおかしいので、その都度チェックを入れればいい、という考えです。

そういうことをするのに、JavaだとPMDというツールが重複もチェックしてくれて、Jenkinsにはそれ用のPMD Pluginがあります。

Rubyには詳しくないですが、Flayというツールを使えば重複をチェックできるんじゃないんでしょうか?

残念ながらJenkinsにはPluginがないので、Plot Pluginなどを使えば増減を測定できるはずです。


セコンさんのコメント
ありがとうございます、重複チェックのツール使うというのも機械的に把握できそうで良いですね〜

2 ● a-kuma3
●100ポイント

質問に書いたケースは、単純化してるから余計にそう感じるのかもしれませんが、

この手のマージのミスを防ぐのはテストでは無い、と思います。


さすがに Git なり、バージョン管理システムを使っているだろうとは、想像しますが、

commit の単位が大きすぎるんじゃないでしょうか?

例えば、チケットの単位でしか commit を認めてない、とか。

Unit テストが通る、というのは大前提になると思いますが、その範囲内で、細かく commit していれば、

特定のコードを if でくくった程度のマージがミスるというのは、ちょっと想像がつきません。


セコンさんのコメント
git 使っててますが、コミット単位は人それぞれです。(特に規約等では決めてません) 大量のコードをマージしまくるようなお仕事も中にはあって、その場合仕様の完全な把握は難しいので、どうしてもヒューマンエラーが発生してしまうこともあるので、そのことに対する具体的な手法があれば知りたいのです。

a-kuma3さんのコメント
>> どうしてもヒューマンエラーが発生してしまう << なんとなく、想像はつきます。 障害分析とか、結構やるんですけど、「障害をテストで救う」というのが、そもそも間違っている、ということも往々にしてあります。 >> 大量のコードをマージしまくるようなお仕事も中にはあって、 << 「だから、テストで救うしかない」ということを前提にしてしまってはいないですか? 具体的な場面が分かってないので、的を外しているかもしれませんが、 ヒューマンエラーを起こした原因は、がっつりコードを変更するような修正方法を 選択したことに問題があった、というケースには、よく遭遇します。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ