アカウント名:
パスワード:
> 改修がわずか1行でも、影響調査に1カ月、テストに数週間かかることが珍しくなかった
うん、普通。修正が1行でも100行でも、かかる期間は大して変わらない。
どこにぶら下げようかと思ったのですがとりあえずここに。
世間では悪徳として名高い「コピペによるコード量産」ですが、テストまで視野に入れると、コピペもそれほど悪くないんじゃないかと思うことがあります。
「10の機能から呼び出される共通の下請け処理」を、「共通のコード一つ」にまとめた場合、そのコードに修正を入れることになったら、たとえその修正の影響が出るはずなのは一つの機能からの呼び出しの時だけ、だったとしても、呼び出し元のの10の機能全てについて問題がないかテストを行う必要があります。
でも、コピペでコードを10個に分散させている場合
テストファーストっていうんですかね、本来のコードより先にテスト書いておいて、テスト自体は自動化して回しなさいみたいな奴。そういうのって、オブジェクト指向なんてどこ吹く風の(いわゆるCOBOLの)同じプログラムを呼び出しパラメータだけ変えてほぼ毎日動かすんだけど、年に1回しか通らないルーチン満載なシステムでも頑張れば実現できるものですかね?業務的な観点ではなくて、もっと抽象化した小さい部品にわければいけるのかなー。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
ハッカーとクラッカーの違い。大してないと思います -- あるアレゲ
よくある (スコア:0)
> 改修がわずか1行でも、影響調査に1カ月、テストに数週間かかることが珍しくなかった
うん、普通。
修正が1行でも100行でも、かかる期間は大して変わらない。
Re: (スコア:1)
以前いたところで、危なそうなシステムを組む人たちが理由も確かめずに適当な(そう見えた)対策をちゃっちゃとするので危ないと思い
出荷にはロングランなどもしないとだめじゃ無いの??
っていったら煙たがられました
そのチーム出すトラブルがあまりに多くて顧客よりクレームが入って
結局はロングランとかも始めたそうです
# もちろん、私が言ったことなんぞ...
# 倍返しは無理でしたね :-)
Re: (スコア:1)
どこにぶら下げようかと思ったのですがとりあえずここに。
世間では悪徳として名高い「コピペによるコード量産」ですが、
テストまで視野に入れると、コピペもそれほど悪くないんじゃないかと思うことがあります。
「10の機能から呼び出される共通の下請け処理」を、「共通のコード一つ」にまとめた場合、そのコードに修正を入れることになったら、たとえその修正の影響が出るはずなのは一つの機能からの呼び出しの時だけ、だったとしても、
呼び出し元のの10の機能全てについて問題がないかテストを行う必要があります。
でも、コピペでコードを10個に分散させている場合
Re:よくある (スコア:1)
もうひとつは、「その修正の影響が出るはずなのは一つの機能からの呼び出しの時だけ」というのは、おそらく、「共通のコードにまとめる」という設計なり手法なりが間違っている可能性がかなり高いと思います。
それ、共通の処理ではないという可能性が高いですから。
逆に、「処理を共通化している」と、「どの機能から呼び出しても、必ず同じバグが出現する」ので、対処はしやすくなると思います。
¶「だますのなら、最後までだまさなきゃね」/ 罵声に包まれて、君はほほえむ。
Re: (スコア:0)
テストファーストっていうんですかね、本来のコードより先にテスト書いておいて、テスト自体は自動化して回しなさいみたいな奴。そういうのって、オブジェクト指向なんてどこ吹く風の(いわゆるCOBOLの)同じプログラムを呼び出しパラメータだけ変えてほぼ毎日動かすんだけど、年に1回しか通らないルーチン満載なシステムでも頑張れば実現できるものですかね?業務的な観点ではなくて、もっと抽象化した小さい部品にわければいけるのかなー。
Re:よくある (スコア:1)
COBOLだと、そもそも、データ量の制約があるので、実用的にできるかどうかは確認必要ですが、考え方としては、毎日パラメータを変えて動かすという、日々のデータと、パラメータの組が保存できて、毎日の動作に相当するものが、スクリプトで実行できるのであれば、「以前のデータを処理したら、そのときと同じデータが出力される」ということで、回帰テストはできると思います。
発想としてはそういうことだと思います。
あと、開発環境とは別に、「バグを見いだすには、どういうパターンのデータとパラメータが必要か」というのが決められれば、それをもとに、テストケースを作るような、ツールや、スクリプトや、そっち方面で、最近の環境を使うというのは、考えられる方策だと思います。
以前組み込みでやったときに、構文的に考えられるコマンドを全部生成して、出てくるはずの出力を別途計算して、それを一晩かけて動かすようなこともやっていました。
¶「だますのなら、最後までだまさなきゃね」/ 罵声に包まれて、君はほほえむ。