[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 05/09 17:10 / Filesize : 237 KB / Number-of Response : 735
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

テストを軽視する者ども



1 名前:仕様書無しさん [2008/06/28(土) 19:49:20 ]
何だよ、8割方終わった風な顔で、「コーディング終わりました。後はテストするだけです。」
って...
コーディングが終わってやっと3割終わったかどうかってところだろが。
コーディングが終わってからが本番だっちゅーの。テスト仕様書に従い、テストデータ用意して、
正常系、異常系含めて、抜かりなく全網羅テストすること。これがどれだけ大変なことか。
本当に理解してんのか? コーディングが終わってやっとスタートラインに立ったぐらいの気持ち
でいろよ、ってくヘラヘラしやがって。

こういう、テストを軽視する輩共が、プログラミングという作業を軽んじ、工数見積りを誤り、
徒に製造を急かし、バグの混入率を間接的に高めているということに気づかんのか。
どんな優秀な奴だって、人間だもの、間違いを犯す。バグを生み出す。それを極力未然に防ぐのが
テストだろ。いつバグが判明するかとドキドキしながら納品後の時間を過ごすか、自信と満足感を
もって笑顔で過ごすか。どちらがいいか自明のことだろ。

プログラミングはなぁ、テストに始まりテストに終わるんだよ。要件を理解し、その中に潜む異常
パターンを見抜き、どんだけ抜かりなくテストをやれるかが一流とカスを分かつ分水嶺だ。
コーディングなんかできてあたり前、肝心なのはテストだ。テストを極めてこそ、一流のプログラ
マーって呼べるんだよ。

この馬鹿者どもが。


244 名前:仕様書無しさん mailto:sage [2008/07/07(月) 12:55:08 ]
専ブラの番号ズレたんじゃね?

245 名前:仕様書無しさん mailto:sage [2008/07/07(月) 16:29:11 ]
>>241
そんな(おれらに被害が及ぶような)こと言うなよ

246 名前:仕様書無しさん mailto:sage [2008/07/07(月) 16:34:17 ]
>>245
だって(めんどくさいんだもの)仕方ないじゃない

247 名前:仕様書無しさん mailto:sage [2008/07/07(月) 19:53:15 ]
>>210
> 仕様書・・・システムが、ユーザー(人、外部システム)に提供する利益
>       が記されている。

世間では、その部分を要件定義書と外部設計書にわけてるんだよ。
例えばユーザインターフェース仕様。これはクライアントが要件として出す場合もあるが
それはまれで、普通はシステムを作る方が設計する。

> 仕様書に基づいたテスト・・・システムテスト
> 設計書に基づいたテスト・・・ユニットテスト

なるほど、「俺定義」で今まで話してたのはわかった。

> 仕様書や設計書はシステム、サブシステム、コンポーネントといった
> 開発対象それぞれに対して作成される。

サブシステム分割や、何をコンポーネント化するかというのは、内部設計と普通は言う。
なので顧客レビューはせず、80定義で言う所の仕様書は書かない。

> ユニットテストはもろ刃の剣で、プログラマーのレベルが高い事が前提だ。
> それに、テストコードを書くのはコスト高だ。

ユニットテストのケースレビューやコードレビューをするという概念は全くないの?

顧客はユニットテストにはお金を出さないというようなことを繰り返し言ってるが、
まったくそんなことない。顧客は品質にもお金を払ってる。
ユニットテストでバグを潰そうが、システムテストでバグを潰そうが、顧客が知ったこっちゃ
ないのは同意する。

248 名前:仕様書無しさん mailto:sage [2008/07/07(月) 20:02:58 ]
(続き)
「効率の悪いユニットテスト」や「品質の低いユニットテスト」は確かに否定されるべきだが、
だからと言って、ユニットテストが否定されるものではない。
バグは潰すのが早ければ早いほど、その修正コストは低くなる。これには80も同意してくれる
ものと思う。
「効率の悪いユニットテスト」や「品質の低いユニットテスト」が、開発コストを押し上げている
のであれば、「効率の良いユニットテスト」「品質の高いユニットテスト」に出来ないかを考えるのが
まず第一だ。なぜなら、バグは潰すのが早ければ早いほど修正コストが低いからだ。
修正コストが低ければ、開発コスト全体も低くなり、それが顧客のメリットになる。

ユニットテストをほとんどやらずに、第三者によるシステムテストに力を入れるという方法論も
あるだろう。

俺自身は、この方法論を全く支持しないが、スキルの低いプログラマが多数いるチームであれば
そのような方法論を取った方が、全体のコストが下がるのかもしれない。

しかし、方法論として提示するのであれば、システムテスト重視の方が品質が高くなる理由(根拠)と
ある程度のメトリクスを提示しなければ、第三者を納得させることはできないと思う。

249 名前:仕様書無しさん mailto:sage [2008/07/07(月) 20:18:40 ]
サブシステムやコンポーネントやレイヤーを合わせてテストするのは、普通、結合テストと言います。

250 名前:仕様書無しさん mailto:sage [2008/07/07(月) 20:28:37 ]
(少し追加)

>>231
> これを、テスト自動化によりコストを減らしているわけだ。

今のところ、80の発言から読み取れる「削減できているもの」は、このシステムテスト
(ブラックボックステスト)実行コストのみだ。

本気でテストの自動化をやってるところは、自動化されたテストの実行コストなど、
テスト全体のコストにほとんど影響を与えないことを知っている。
つまり、本当に自動化されているなら、実行するPCの台数を増やし、夜間に動作
させればよいのである。

問題は、自動化にかかるコストと、第三者検証の場合は、テスタ−プログラマ間の
コミュニケーションコスト、プログラマチームからテスタチームへ引き渡すリソース管理、
出荷判定(100%バグを修正できない場合の判定という意味での)などのコストをどう
減らすかなんだよ。

251 名前:仕様書無しさん mailto:sage [2008/07/07(月) 20:31:23 ]
(書き忘れ)
テストのコストを引き上げる要因をひとつ忘れていた。
自動化テストの場合、それが正しいテストかどうかのチェックに非常に時間を取られる。
事前条件は正しいのか、テストの内容は正しいのか、事後条件は正しいのか、(自動)確認は
正しく行えているかなど。

252 名前:仕様書無しさん mailto:sage [2008/07/07(月) 20:43:11 ]
・PGが作ったものが「作ったとおりに」動く事(あるパス通したら落ちる、ボタンはあるけど反応がない、など)
 単体としてはまともに動く事を確認するのが単体テスト

・1PGから複数PG、はては複数チームが作ったものが、ちゃんと連動すること
 お客様にうたった仕様どおりの動作をしている事を確認するのが結合テスト

・(結合との位置づけがあいまいなんだけど)
 お客様レベルでの操作をしてもらって、「うん、ちゃんと動いてますね」
 って確認を本番環境、現地レベルで取るのがシステムテスト、そして最終的な運用テスト

とか位置づけちゃってたわ、ワタシ

>>248の言うように、単体レベルでの不備はテスト初期(というか開発途中)のレベルで
とっておいた方がいいと思う、コストというより、後の方のテストはざるの目が粗いから
思わぬ不具合(ある異常系パスを通るとシステム全体がダウンしてしまう、など)を
見逃してしまう可能性が高い(下位のレベルの不具合は上位のテストからはブラックボックスなので)



253 名前:仕様書無しさん mailto:sage [2008/07/07(月) 21:08:02 ]
最後のは、普通、受け入れテストと言いますね。

254 名前:仕様書無しさん mailto:sage [2008/07/07(月) 21:17:01 ]
>>253
thx


255 名前:仕様書無しさん mailto:sage [2008/07/07(月) 21:58:28 ]
テストが億劫になるスレだなぁ

256 名前:仕様書無しさん mailto:sage [2008/07/07(月) 23:25:27 ]
「システムテスト」が設計(design)ではなく、仕様(specification)に基づくものだという80の意見には同意する。
80が言う方法論には同意しないが。

依然として機能テスト以外のテストに関する話が出てこないが、よくまとまっているページを見つけたので
紹介しておく。
en.wikipedia.org/wiki/System_testing

システムテストでは、機能的に要件とマッチしていることを保証するとともに、上記ページにあるようなテストを
行うのが一般的だと思う。

まぁ普通は機能外要件を要件定義書に書けるチームはほとんど無いと思うが、「システムテスト」工程で
行うもんなんだよね。

また、いわゆる「内部設計」以外を「仕様書」におこして、それをクライアントレビューにかけるというのは、
双方にとって負担が大きいと思うね。工事進行基準が始まれば、「要件定義書」の範囲も、業界的に合意が
形成されていくのかもしれないね。

257 名前:仕様書無しさん mailto:sage [2008/07/08(火) 00:11:34 ]
>>256
wikiを良く纏まったページって紹介するのはなんだと思う。

80の言っている事だけど
一つの方法論だけど・・・、

>「問題の難しさ」を「問題の量」に転化したのだから、当然、
>ブラックボックステストの件数がかなり多くなる。
>これを、テスト自動化によりコストを減らしているわけだ。

テスト項目表作成も自動化しないとコストかかるね。
正確には「正しい」テスト項目表の作成。

ぶっちゃけ、テストにコストがかかるのではなくて、
テスト項目の洗い出しにコストがかかり、
さらにその妥当性をだすのにコストがかかる。

半年後のユーザの意見を聞きたいな、ボトルネックが山に
様にできてそうだ。
(まあ、最近のPCは出来が良いので問題おこんないって前提だろうけど)

258 名前:80 mailto:sage [2008/07/08(火) 01:01:27 ]
>>256

■機能要件
機能要件は、インクリメンタル型で開発している。仕様書に基づいて
要求が満たされているかをチェックするのに重点が置かれる。

■フレームワーク
非機能要件は、フレームワークに含まれるのがほとんどで、イテレーティブ
型で開発をしている。
実際には、リファクタリングをしまくるわけだ。つまり、外的な
ふるまいだけをテストして、内部はガンガン変えていくのだ。
なので、単体テストは軽視され回帰テストが重要視される傾向がある。

■再利用可能なコンポーネント
レイヤーの低い位置にいる、再利用可能なコンポーネントは、
不具合が全体に波及するので、ユニットテストからコツコツ積み上げる。
ユニットテストは低レベルのコンポーネント(ライブラリ)開発で役に立つ。

259 名前:80 mailto:sage [2008/07/08(火) 01:09:01 ]
>>256
>また、いわゆる「内部設計」以外を「仕様書」におこして、それを
>クライアントレビューにかけるというのは、 双方にとって負担が
>大きいと思うね。工事進行基準が始まれば、「要件定義書」の範囲も、
>業界的に合意が形成されていくのかもしれないね。

開発プロジェクト内で閉じるレビューがほとんど。レビューは、一種の
テストだから軽視してはいけない。それに、ドキュメント
に関しては、CMMとかISOとかやってるので結局書かなくてはいけない。




260 名前:仕様書無しさん mailto:sage [2008/07/08(火) 01:58:40 ]
80は一体誰と闘い、何が目的なんだ

261 名前:仕様書無しさん mailto:sage [2008/07/08(火) 02:10:45 ]
>>259
>>210の内容と、思いっきり矛盾してるのに気がつかないのか?

262 名前:仕様書無しさん mailto:sage [2008/07/08(火) 02:22:06 ]
80をやり込めても、誰も何も得しないよ。逆もまた真なり。



263 名前:仕様書無しさん mailto:sage [2008/07/08(火) 03:28:11 ]
つまり、80にやり込められても、誰も何も得しないw

264 名前:仕様書無しさん mailto:sage [2008/07/08(火) 08:41:06 ]
>>257
システム/ネットワークのパフォーマンス的なボトルネックは生まれにくくなってきてるけど
利用するライブラリ/パッケージ自体は未だに流行に合わせどんどん入れ替わり立ち替わりな
うちのPrjでは、半年以内に「原因不明系」のトラブルが多発してるよ。

ImageGear許すマジ


265 名前:仕様書無しさん mailto:sage [2008/07/08(火) 08:43:02 ]
>>260、これな
                           _,====ミミミヽ、
                         ,,==≡ミヽミヾミミミ、ヾ、
                       _=≡≡三ミミミ ミミヾ、ソ)),,》  .
                     彡彡二二三≡ミ-_ ミミ|ノノj )||ヽ, )、
                 __,,,,,,,,,/彡二二二    ,- __ミ|/ノ ノノノノ) ||
                -=二ミミミミ----==--'彡 ∠ミミ_ソノノノノ ノ
                  //>=''"二二=-'"_/   ノ''''')λ彡/
        ,,/ ̄''l       彡/-'''"" ̄-=彡彡/ ,,-''",,,,,,,ノ .彡''"
       (,  ,--(      彡 ,,-- ===彡彡彡"_,-_   ヽ Υ
       ヾ-( r'''''\    //=二二''''''彡ソ ̄ ∠__\ .\ソ  .|
         \;;;;  \   Ζ彡≡彡-'''',r-、>   l_"t。ミ\ノ,,r-v   / ̄ ̄ ̄ ̄ ̄ ̄
           \;;;;  \  彡""彡彡-//ヽ" ''''''"" ̄'''""(エア/  /
            \;;  \'''''')彡ヽ// | (tv   /|  , r_>'|  <一体みんな誰と戦っているんだ
             \;;;  \'"  \ ,,"''-,,ノ,r-", /  r'''-, .j   \
               \;;;  \ /,,>--'''二"''' r-|   二'" /  __  \______
                \;;r'""彡_l:::::::::::::::::::::: /./_   " / ̄ ̄"===-,
                  )''//rl_--::::::::::::::::/:/ヽ"'=--":


266 名前:仕様書無しさん mailto:sage [2008/07/09(水) 00:48:04 ]
作業指示出してる人が「テスト嫌い。あんなもん無駄だしやってると苛々してくんだよね。」とか言っててこっちが苛々ですよ。

267 名前:仕様書無しさん mailto:sage [2008/07/09(水) 01:13:20 ]
結局結論としては80の言ってるシステムテストと他の人の考えるシステムテストの定義が違ったってことでいい?
俺的には80が言ってるシステムテストは単体テストレベル。
一般的にテストはUT、IT、STという順番でやっていくはず。
だからSTの観点はITより上のレベル。分割したモジュールをテストしてシステムテストとか、一般的じゃない。

268 名前:仕様書無しさん mailto:sage [2008/07/09(水) 01:16:38 ]
>>267
同じ同じ。
UTってMTと一緒なのかな?

269 名前:仕様書無しさん mailto:sage [2008/07/09(水) 01:40:34 ]
80は業務系じゃないらしいから考え方が違うんだと思う。

UT:作ったものが仕様書どおりだよねってことをIF含めて確認するテスト。
⇒コードのチェック
IT:それぞれが作ったものをつなげても動くよね?ってことを確認するテスト。
⇒仕様書の整合性のチェック
ST:とりあえず動くもの作ったけど、そもそもこんなんでよかったんだっけ?ってのを確認するテスト。
⇒要件を満たしてることのチェック。
受け入れテスト:STまでやってるけど、レビューとか適当な客もいるので後で文句を言わせないために
実際に動かしてもらって、確かに要件満たしてますよね?って確認するテスト。
⇒保険。

270 名前:仕様書無しさん mailto:sage [2008/07/09(水) 06:36:32 ]
MT?

271 名前:仕様書無しさん mailto:sage [2008/07/09(水) 07:00:15 ]
いやいやいや、

>「問題の難しさ」を「問題の量」に転化したのだから

なんの証明も根拠もなしに、転化できましたなどと無邪気に主張されてもとても納得できない。
80の中で完結しているロジックが存在するとすれば、それはまだこの場では語られていない。
語ったつもりになっているとすれば、それは表現能力に問題があると言わざるを得ない。

272 名前:仕様書無しさん mailto:sage [2008/07/09(水) 19:17:24 ]
80来ないとつまんないね



273 名前:仕様書無しさん mailto:sage [2008/07/09(水) 22:41:42 ]
そもそも、UTとかMTとか、
必ずしも企業間で、示す実作業の統一が取れているとは言い切れない、
曖昧模糊とした略語で話を進めようとするのが問題ではないか?

274 名前:仕様書無しさん mailto:sage [2008/07/09(水) 23:10:36 ]
実作業としては統一されてないだろうけど、UTの概念は統一されてるだろ。知らない奴は論外。

MTは知らんw

275 名前:仕様書無しさん mailto:sage [2008/07/10(木) 02:47:55 ]
あとはPGはあると思う(w。
UTとかPTとかは辺りも曖昧だし、当然それ以上はも場所によって違うだろうし。


276 名前:仕様書無しさん mailto:sage [2008/07/10(木) 03:12:38 ]
世の中にはテスト技術者資格認定とかいう資格があってだな、そこで公開されている
シラバスとか標準用語集位の事を知っておいてもらえるとありがたいなぁと思ったり
するわけですよ。
80みたいに自分理論で色々言われてもねぇ。

ttp://www.jstqb.jp/syllabus.html

277 名前:仕様書無しさん mailto:sage [2008/07/10(木) 23:31:11 ]
あら…
一つのモジュールがちゃんと動くかどうか…みたいなテストを
モジュールテストとかMTとか呼んでるんだけど一般的じゃないのかw

テストの種類は基本情報の勉強で覚えたくらいだな。
ユニットテストとか現場でのレベル感で縛られるな。

278 名前:80 mailto:sage [2008/07/11(金) 00:05:27 ]
>>267
> 結局結論としては80の言ってるシステムテストと他の人の考えるシステムテストの定義が違ったってことでいい?
よいです。

> 一般的にテストはUT、IT、STという順番でやっていくはず。
> だからSTの観点はITより上のレベル。分割したモジュールを
> テストしてシステムテストとか、一般的じゃない。
UT, IT, STという3段階が一般的なのは理解している。
ただし、うちでは、これでは、うまくテストを定義できなかった。

質問1
巨大なシステムでも小さなシステムでも等しく
この3段階でテストを進めるので良いと考えているのか?
俺が聞きたいのは、一般論ではない。過去の経験から判断してほしい。

質問2
小規模の場合、UT->IT->STとするなら大規模だとどうなる?
1. UT->UT->UT->UT->UT->UT->UT->UT->UT->IT->ST
2. UT->IT->IT->IT->IT->IT->IT->IT->IT->IT->ST
3. UT->IT->ST->ST->ST->ST->ST->ST->ST->ST->ST
4. UT->IT->ST->IT->ST->IT->ST->IT->ST->IT->ST
5. UT->IT->ST->UT->IT->ST->UT->IT->ST->UT->IT
6. そのた。

279 名前:仕様書無しさん mailto:sage [2008/07/11(金) 00:14:23 ]
>>278
1.同じでないと困る。

2.テスト結果による。


全体的にはどんなプロジェクトも同じ工程じゃないと困るが、
そのテスト工程で発覚する不具合の深刻度と混入工程によって、
それぞれ小さな部分テストの反復があるんだよ。

修正する度に、部分的にUT→IT→が間に幾つも入るのさ。

280 名前:仕様書無しさん mailto:sage [2008/07/11(金) 00:15:46 ]
場合によっちゃSTまでを反復で何度も行う事だってあるしな。

281 名前:80 mailto:sage [2008/07/11(金) 00:23:30 ]
つまり、仕様や性能を満たせているかを確認するテスト(ST)が
ずいぶん後回しになるやり方を皆は支持しているわけだ。

そもそも、仕様書は、システム全体に対してのみ書かれるのか?


282 名前:仕様書無しさん mailto:sage [2008/07/11(金) 00:29:52 ]
>>281
皆っておい、俺一人しか答えてねえよwww

279も280も俺、俺俺www



283 名前:仕様書無しさん mailto:sage [2008/07/11(金) 00:31:51 ]
>>282
いや、オレオレwww

284 名前:仕様書無しさん mailto:sage [2008/07/11(金) 00:34:56 ]
>>278
工程として考えたいのか、テスト手順と考えたいのかがよくわからない。
工程なら大規模小規模かかわらずUT>IT>STとなるべきだが、
実際に行われてるテストはいくらでも入り組むだろう。
バグ対応入った時とか。

もし工程として(もしくは工程に近いレベルで)
質問2みたいな手順になっているなら
>>78の言うとおり、機能単位で分けるべき。


すごく今更なんだが、>>80
> 分割すると管理コストが増えるし組織が複雑になる。
> そして、意思疎通が難しくなる。
> 問題が形を変えるだけで何も解決したことにはならない。
なんというか…オブジェクト指向じゃない感じみたいな…
モジュール一つで表示から処理から遷移から何から何までって感じがする…

285 名前:仕様書無しさん mailto:sage [2008/07/11(金) 00:40:03 ]
>>80の言っている>>258には同意できる。

■機能要件
開発スタイルにもよるんだろうけどうちの顧客はころころ機能要件を
修正してくるから、機能にマッピングされるモジュール内の関数構成や
実装はそのたびに修正される。
=> ホワイトボックステストはコスト的に合わないので、モジュールの
入出力に相当するAPIだけをブラックボックステスト。

■再利用可能なコンポーネント
タスク・タスク間通信・メモリ管理周りといった部分がそれに含まれる?
不具合が全体に波及するのは勿論だし、そういったモジュールは
関数構成や実装が大きく変わることは無い。
=> ユニットテストで関数ごとにホワイトボックステスト。

コスト的に許されるんなら、全てにホワイトボックステストを用意するに
越した事は無いんだけど。


286 名前:仕様書無しさん mailto:sage [2008/07/11(金) 00:48:20 ]
>>258はよくわからなかったけど>>285には納得できる。

> => ホワイトボックステストはコスト的に合わないので、モジュールの
> 入出力に相当するAPIだけをブラックボックステスト。
コスト的にかどうか知らないんだけど、これが一番理想とするテストだと思ってる。
APIの所だけホワイトな、穴あきブラックボックステストみたいな。

287 名前:仕様書無しさん mailto:sage [2008/07/11(金) 01:03:04 ]
>>278
スパイラル型でもない限り結合超えてUTに戻る、ってのはないんじゃないの?
上位テストフェーズで不具合が見つかった瞬間はともかく

おれはスパイラルスキーなんだけどね。

ちなみに今関わってるPrjは大規模であっても
UT->IT->ST
これだけ。そして受け入れフェーズで多々トラブル。
おれ、どうしたらいい?

あ、
1.よくない。お客様との要件詰めが完全合致していて、仕様変更などが絶対入らない
  前提でもない限りUT->IT->STのみではうまくいかない。
  なぜなら、UT後に仕様変更なぞ入ろうものなら品質面での保証がまったく出来なくなってしまう、
  客は触って初めて「違うぞこれ?」とか言い出す生き物、などなど。
2.同じことの繰り返し、と考えてしまうと、6.その他、が正解だと思う。
  自動テストをUT,IT,STのくくりにいれず同時並行すべきかなー、とか。

288 名前:仕様書無しさん mailto:sage [2008/07/11(金) 01:04:19 ]
みんな考え方は現場経験や本人の考え方により違うんだろうけど
こうやってテストフェーズについて色々活発に話せることはよいことだナァ。

289 名前:仕様書無しさん mailto:sage [2008/07/11(金) 01:05:31 ]
>>288
なー。おれはよくわからんから読んでるだけだけどなー。

290 名前:仕様書無しさん mailto:sage [2008/07/11(金) 01:14:59 ]
>>289
実際現場でテストやその後フェーズで苦労しだすと結構分かってくるんじゃない?
ってか品質面で問題でない現場ならそれが一番の幸せだよ。゜(゚´Д`゚)゜。

291 名前:仕様書無しさん mailto:sage [2008/07/11(金) 01:15:27 ]
>>281
仕様書はもちろん個々の機能についても書かれる。
そしてその仕様どおりの入出力を満たしていることの確認もする。
ただし、業務系ではそれをシステムテストとは呼ばない。
個々の機能の入出力を重点的にテストして、それより下位のテストは適当にするっていうのは
いいと思うよ。
本当にただ言葉の定義が違うために言ってることが分かりづらいだけ。

292 名前:仕様書無しさん mailto:sage [2008/07/11(金) 01:20:39 ]
今回うけた仕事、システム全体の中の1カ所の開発(というかリファクタ)なんだが
自分たちが受けた部分はともかく、他のところはいきなりシステムテストらしい。
ちゃんとモジュールテストされてない・・・

そのせいで、システムテストで
他の会社が作った部分のデバッグをやらされてる。



293 名前:仕様書無しさん mailto:sage [2008/07/11(金) 01:22:10 ]
>>292
そういう段取り/スケジュール考えた奴は軽蔑していいよ

294 名前:仕様書無しさん mailto:sage [2008/07/11(金) 02:33:59 ]
>>290
テスト後フェーズは幾度となく経験してるし、
修正後のテスト堂々巡りも経験してるけど、
大規模開発というものを経験したことがないので、
UT→IT→ST が同時進行ならまだしも、何度も巡る
というのが理解できず、議論についていけないw

というかあれだな、読んでいて思ったけど、
言葉の定義や論点がずれているだけで、
本質はみんな同じ認識の様な気がする。

295 名前:仕様書無しさん mailto:sage [2008/07/11(金) 06:03:21 ]
>言葉の定義や論点がずれているだけで、
>本質はみんな同じ認識の様な気がする。

いや、違うね。俺だけが違ってるという可能性もあるが。

>>281
テストフェーズの定義について、素直に間違っていたと認めた80は評価する。
同じように「仕様書」に関しても、他とずれていると認識してほしいのだが。
そうでないと、>>281の後半部分には答えられない。

>つまり、仕様や性能を満たせているかを確認するテスト(ST)が
>ずいぶん後回しになるやり方を皆は支持しているわけだ。

何度も言うように、システムテストは機能テストと「性能を測る」テストだけではない。
後回しになる(後でやらないと意味がない)テスト(ケース)もあれば、先にやるものもある。

機能テストのことをずいぶん気にしているようだが、「皆」がどう取り組んでいるかは、
「受け入れテスト 自動化」でググってみるとわかるかもね。

296 名前:仕様書無しさん mailto:sage [2008/07/11(金) 06:12:26 ]
俺が80と違っている(と思っている)点は、
・ユニットテストは軽視してはならない。むしろ重視すべき。
・ユニットテストはプログラマが行うべき
・ユニットテストを重視することは、顧客のメリットになる
・(おまけ)外部設計と内部設計という考え方はある

80に同意する点もいくつもあるが、それは列挙しない。

297 名前:仕様書無しさん [2008/07/11(金) 19:44:58 ]
適当でいいんだよ適当で。


298 名前:仕様書無しさん mailto:sage [2008/07/12(土) 02:15:00 ]
適当、よりも、適度、がいいと思うんだ

299 名前:仕様書無しさん mailto:sage [2008/07/12(土) 15:17:35 ]
適当≠手抜き

300 名前:仕様書無しさん mailto:sage [2008/07/12(土) 19:29:48 ]
サンビャク!

301 名前:80 mailto:sage [2008/07/13(日) 08:07:03 ]
>>296
>・ユニットテストは軽視してはならない。むしろ重視すべき。
->軽視はしていない。重視もしていない。
 おれは、テスターじゃなくて、プログラマー上がりなので、
ユニットテストの大切さを知っている。ただ、組織としてユニットテストを
 成功させる場合は、以下の前提条件を満たせないとだめだ。
1. バグが減ったことを評価して、ボーナス査定をUPさせる。
 2. 機能実装よりバグが少ないことを重視する。
重要なのは、2 だ。ユニットテストを重視した結果開発のスピードが
 落ちたのだ。つまり、機能的要件(フレームワーク、下位コンポーネント
 を除く)を実装するチームに関しては、ユニットテストがボトルネックになる。
 よーは、すべてがトレードオフなのだ。ユニットテストを重視しすぎると
 逆に効率が落ちる開発フェーズがあることを俺は、経験で学んだ。
 
>・ユニットテストはプログラマが行うべき
-> ユニットテスト=ホワイトボックステストなら同意。

>・ユニットテストを重視することは、顧客のメリットになる
 -> 大規模開発では、顧客には理解されない。
  業務系ではないうちでは、専門的すぎて説明するのが難しい。

>・(おまけ)外部設計と内部設計という考え方はある
-> うちの会社にも昔はあったよ。外部設計、内部設計という言葉が
間違っているのに気がついた。
   確かに、システムというものを対象にした時にそれの外部について
記述したドキュメントと内部について記述したドキュメントはある。
ただ、外部か内部かという言葉は、対象物を前提としている。
システム、サブシステム、コンポーネント、ライブラリ・・・・などだ。
そして、これらは、整然と関連付けられる。内部設計とか外部設計という
言葉をこれに当てはめると間違いである事が理解できる。
外部は仕様書で、内部は設計書なんだ。これでもわからないなら。
   仕様書と設計書の違いを説明してくれないか

302 名前:80 mailto:sage [2008/07/13(日) 08:17:57 ]
補足だが、プログラマーとテスターの作業量を新規開発の初めから
終わりまで時間を追ってグラフにしてみると俺の言っていることが
分かるかもしれない。
理想を言えば、一番初めのインテグレートの時にテスターが
チームに参加すれば、コスト的にOKなのだが。
大抵は
1. 一番初めのインテグレートは遅れる。つまりテスターが遊ぶ。
2. テスターが開発初期から参加している場合、テスターは
プログラマーよりも暇である。
3. 機能要件は、よく変わる。せっかくユニットテストをばっちりしても
作り直しが多数発生する。さっさと、要求者に「うごく」ソフトを
見せるのは重要だ。

テスターを遊ばせないで、機能要件の間違いを早期に発見できる方法
を俺は支持しているんだ。



303 名前:80 mailto:sage [2008/07/13(日) 08:29:15 ]
>>285
だいたい、同じ考えだ。
機能要件と再利用可能なコンポーネントでは、テストのやり方
を変えないとだめだ。

再利用可能なコンポーネントは、下位の層で人目につかない。
テスターに通信プロトコルや各種規格をすべて理解してもらうことは無理
なので、プログラマーしか「テストができない」と俺は思う。


違うところは、再利用可能なコンポーネントのテストは、
ホワイトボックステストと加えて回帰テスト(ブラックボックス)を
重視するところだ。

再利用可能コンポーネントは、最適化を繰り返すので、ソースコードが激変する。
つまり、ホワイトボックステストは毎回変わってしまう。
ホワイトボックステスト事態の品質を維持することは非常に難しい、
なので、回帰テストとの合わせ技が重要になる。



304 名前:80 mailto:sage [2008/07/13(日) 09:11:20 ]
開発工程の中のボトルネックはどこにあるのか?によってやり方は異なる。
プログラマーのスキルが高い場合、テスターのスキルが高い場合など
状況は様々だ。

うちのボトルネックは、「実装」フェーズだった。
スケジュールの遅れは、プログラマーの責任だという認識が多数を占めていた。
なので、ユニットテストが流行したが、結局、失敗に終わった。

ボトルネックにさらに仕事を増やした(人は増えない)結果、開発そのもの
が遅れ、テスターが遊び始めた。設計者は次の設計に入っている。
しかし、ボトルネックが解消されなければ、実装されない設計が溜まる
ばかりだ。テスターは、空いた時間で別のプロジェクトのテストをしている。
リソースが有効活用されていないのは明らかだ。
ボトルネックを解消するのに設計者にテスターにできることはないのか?
そう考えるのが普通だろう。
設計者には、設計を洗練させた。結果、不要なソースコードをプログラマー
が書かなくても良いようになった。
ユニットテストを強要することはやめた。その代りテスターの負担が増えた
が、もともとテスターは遊んでいたのでプロジェクト全体のスループットは
向上した。テスターのストレスは増えたが・・・。

ユニットテストを完璧にやるという事は、ウォーターフォールの考え方
に近い。うちは、繰り返し型の開発をやっているので、たとえバグが残っても
開発の最後の方でプログラマーの手が空いてきたころに網羅性の高いテストを
行うので実質品質が下がるようなことはない。
ユニットテストは有効だが、使い方を間違ってはいけないと思う。
重要なのは、部分最適化(ユニットテストだけを協調する)のではなく
全体最適化(全ての開発工程を見直す)の方だと思う。

305 名前:80 mailto:sage [2008/07/13(日) 09:30:44 ]
>>291
業務系は、書籍などで知っているだけで現場は知らない。

うちは、メカトロニクス。半分は制御系。ただし、大規模な制御系だ。
Web技術、データーベース、各種通信、など色々開発要素も多い、
言語もC++, C#, Java, その他が入り乱れている。

うちのシステムは、多層になっているシステムの集合体だ。
担当者は、自分の担当範囲だけどをシステムと呼んでいる。
つまり、人によって、システムの範囲(スコープ)が違うんだ。
そして、多段階にインテグレートしてテストを行う。

なので、スコープとレベルの違うシステムテストはチーム内の複数存在
することになる。

見方を変えれば、下位のシステムは、ユニットとも言えなくもないが、
よほどの下位でもない限り「一般論で言うユニット」とは違う。

うちでは以下のように定義している。
・(粒度はともかく)機能的要件を実現する単位をシステム
 (サブシステム)と呼んでいる
・下位の原始的なメカニズムを提供するものを、ユニットと呼んでいる。
・機能外要求や、システムのアーキテクチャーをつかさどるものを
フレームワークと呼んでいる。



306 名前:仕様書無しさん mailto:sage [2008/07/13(日) 11:05:04 ]
>>301
>ユニットテストを重視した結果開発のスピードが落ちたのだ

結局ユニットテスト非重視と重視で品質面はどちらがあがったの?
非重視で品質落ち(最悪客先リリース後に不具合多々発現)だとしたら
開発スピードが落ちた、ではなく必要フェーズをはぶいてスピードあげてた、
ってだけでは??

307 名前:仕様書無しさん mailto:sage [2008/07/13(日) 11:10:26 ]
みんなの会社で「専任テスター」っている?うちは

a.管理:チームMGR、PL
b.営業/客対応:客対応向けSE、営業
c.開発:開発向けSE、PG

みたいな位置づけになってて、テストは
「それ開発の一環だろ」って見方を上がしているから結局c.が全員で当たってる。

いい形とは思ってないけど、この場合、
フェーズによって「テスター」が暇になる、ってのはないけどなー


308 名前:仕様書無しさん mailto:sage [2008/07/13(日) 12:54:44 ]
80の方法だと、ユニットが細かい区分になるので、つまり単純化される。
つまり単純で小さなテストが沢山できる。

質の問題を量に転化したと言っている。
で、コスト削減の為にテストを自動化したと。

まあ、制御系で1000万コードってどんだけーって話だけど。
工場の制御丸ごとやったとしか思えんなぁ。

309 名前:仕様書無しさん mailto:sage [2008/07/13(日) 18:02:22 ]
グローバル変数が100万個位あるんだろ

310 名前:80 mailto:sage [2008/07/13(日) 20:32:06 ]
>>306
品質は向上した。第三者テストの重要性を再認識することとなった。
多分、問題点や間違いを早期のうちに把握できたことと、プロジェクト管理
がやりやすくなったことなども良かったと思う。

プログラマーに、プレッシャーを与えることになったのと、
テスターの地位が向上したのも良かったのかもしれない。

311 名前:80 mailto:sage [2008/07/13(日) 20:40:06 ]
>>307
うちは、専任のテスターがいる。
そして、開発の初めから開発に参加している。
要件定義が終わったら、これをもとにテストを作成しはじめる。
(テスターが要件を事細かに見るので要件は洗練されるというおまけもつく。)


312 名前:仕様書無しさん mailto:sage [2008/07/13(日) 21:11:33 ]
つーか、日本の現場にありがちな曖昧な部分を消したという事が重要だと思う。
グラマーのプライドなんて、邪魔ものだからなー(本人にとってもー)。



313 名前:80 mailto:sage [2008/07/13(日) 23:04:06 ]
>>312
そういう見方もできるな。要件の曖昧さとテスターのカバレッジを
ユニットテストで補えるとプログラマーが考えているなら、
勘違いも甚だしいな。

314 名前:仕様書無しさん mailto:sage [2008/07/13(日) 23:05:54 ]
プログラマの常識は一般人の非常識って事ですね。わかります。

315 名前:仕様書無しさん mailto:sage [2008/07/14(月) 01:12:09 ]
>そういう見方もできるな。要件の曖昧さとテスターのカバレッジを
>ユニットテストで補えるとプログラマーが考えているなら、
>勘違いも甚だしいな。

いや、それに甘えてきたSEが問題でしょ。
厳密に言えば、曖昧さは発生しない為に仕様があるわけで、
仕様抜けとか仕様に考慮を入れていないというミスを
グラマーがプログラミングやユニットテストで吸収するのは
よくある風景だ。
単純にそれはSEの怠慢でしかない。

ちなみにそれやらないと、ユニットテストが上がらないっていう
話になって仕様書を押し戻すと作成元の責任になったりする
ので出来ないってのも基本。


316 名前:仕様書無しさん mailto:sage [2008/07/14(月) 06:01:41 ]
>>301
> よーは、すべてがトレードオフなのだ。ユニットテストを重視しすぎると
> 逆に効率が落ちる開発フェーズがあることを俺は、経験で学んだ。
バグを取り除くのが早ければ早いほど、トータルコストが少なくなるというのには同意してもらえるのかな?
もっと言えば、トータルコストが少なくなるような効果的なユニットテストを模索しなければならない。

> -> 大規模開発では、顧客には理解されない。
>  業務系ではないうちでは、専門的すぎて説明するのが難しい。
トータルコストが少なくなり、品質も安定するという意味で、顧客のメリットになる。

>-> うちの会社にも昔はあったよ。外部設計、内部設計という言葉が
>間違っているのに気がついた。
>そして、これらは、整然と関連付けられる。内部設計とか外部設計という
>言葉をこれに当てはめると間違いである事が理解できる。
君が間違っていると主張しても、それでも世界は回っているんだよ。
目をふさぐのは簡単だけどね。

317 名前:80 mailto:sage [2008/07/14(月) 06:56:34 ]
>>316
>バグを取り除くのが早ければ早いほど、トータルコストが少なくなるというのには
>同意してもらえるのかな?
当然そうだが、早いというのは、開発のスケジュールの早い段階でという
意味でだ。うちはスパイラルだからできる芸当なんだが、早期の詳細な
テストが徒労に終わることを経験で知っている。
開発の初期で最低限の要件で開発して、さっさとインテグレート
してさっさとシステムテストをやることで早期にテストを行って
要件の問題を修正している。この場合、ユニットテストは簡単にしか
行われない。


318 名前:80 mailto:sage [2008/07/14(月) 07:10:39 ]
>>316
>君が間違っていると主張しても、それでも世界は回っているんだよ。
>目をふさぐのは簡単だけどね。
世界って広いぞ。うちは外資系だからアメリカ、インド、ロシア・・・・
いろんな奴と一緒に仕事しているけど、ソフト開発なんてのは、世界的に
統一されたりしてないぞ。各国各様でばらばらだ。つまり、外部設計と
内部設計という言葉が通用しないのを、実際に経験で知っている。



319 名前:仕様書無しさん mailto:sage [2008/07/15(火) 01:47:04 ]
なんでシステムテストをやると
ユニットテストをサボれると思うのだろう?

320 名前:仕様書無しさん mailto:sage [2008/07/15(火) 08:56:28 ]
>>317
> 意味でだ。うちはスパイラルだからできる芸当なんだが、早期の詳細な
> テストが徒労に終わることを経験で知っている。

誰も、過剰なユニットテストをやれなんて言ってねーよ。ユニットテストをプログラマにやらせると
必ず過剰なものになるからやらせないってことか。
まぁ、お前のチームのプログラマがレベル低すぎて効果的なユニットテストをできないのならそれも仕方ないかもな。

>>318
どんだけ田舎者と仕事してんだよ。
internal designとexternal designも通じない奴と仕事してんのかよ。

321 名前:仕様書無しさん mailto:sage [2008/07/15(火) 08:58:53 ]
そろそろメトリックスベースで話さないと埒があかんな。
1000万行のシステムで、第三者検証チームが検出したバグは何件だったんだ?

322 名前:仕様書無しさん mailto:sage [2008/07/15(火) 09:26:09 ]
>>318
とりあえず、原著で読んだsoftware development processの本の題名を列挙してくれ。



323 名前:80 mailto:sage [2008/07/15(火) 23:50:38 ]
>>320
シリコンバレーは、確かに田舎だな。。。。

ちなみに言うとうちでは設計書はあまりかかれない。仕様書を重視する。
うちの外人さんは、「設計書=ソースコード」だと言い張る。
年収3000万を超えるプログラマーだからできる芸当なのかもしれない。
こいつらテストはしない。テストは、テスターの仕事だと言い張る。

324 名前:仕様書無しさん mailto:sage [2008/07/16(水) 00:20:17 ]
ダメだ、はったりにしか見えない。゜(゚´Д`゚)゜。おれもうROMるわ

325 名前:仕様書無しさん mailto:sage [2008/07/16(水) 01:51:18 ]
「顧客のメリットになる」ことにこだわっている人が
いるけど、それが必ずしも自社にとってメリットになる
わけでは無いわけで。そういった意味で顧客との間で
落とし所をさぐる時にユニットテストを一部省くというのは
普通にあると思うけど?

やった作業に対して全て金を払ってくれる契約
(それって派遣?)なら全ソースに対してユニット
テストするのもありかもね。

326 名前:仕様書無しさん [2008/07/16(水) 16:08:56 ]
経験上の話だが、(良い)詳細設計というものは考えていても作れない。

そういう頭の中で考えただけの設計というものは実際に作るときに、
絶対に問題点やバグがある。パフォーマンスの問題なんか
実際に作らないで目標を達成することなんか不可能。

結局コーディングして、その結果をフィードバックして
設計を完成させなければならない。

ユニットテストってのは、その設計を完成させる為のチェックポイントなんだ。

これは重要なこと。
「設計・コードは簡単に変わるが、チェックポイント(テスト内容)は変わらない。」

ゲームに例えるとこうなる。
仕様・・・世界を平和にする。
ユニットテスト・・・各ステージのボスを倒す。(チェックポイント)
設計・・・どういうルートを通ると早くすすめるか。
コーディング・・・実際のキー操作


最初に仕様があるが、これはすごくあいまいなもの。
システムを作るうえでの大前提だが、コレを決めてもシステムは作れない。
個々の目標が、ユニットテスト。これがシステムを作るうえで一番重要なもの。
これがあれば、設計やコードを柔軟に変更することができるし、間違っていない証明になる。
そして、ユニットテストを作ってから、設計とコーディングを行いながら開発していく。
(実際にキー操作をしないと、考えたルートが通れるのか本当に早いかはわからないね)


327 名前:仕様書無しさん mailto:sage [2008/07/16(水) 16:20:33 ]
>>325
あなたが言っているのは、ユニットテストに限った話じゃないね。

「自社のメリットにならない場合はテストを省く。」
「やった作業に対して全て金を払ってくれる契約なら全部テストするのもありかもね。」

もし俺が客で、あなたの会社にシステム開発を依頼する立場なら、
お金を払って開発したシステムを、あなたがちゃんとテストしてくれるかどうか不安だけど。

> やった作業に対して全て金を払ってくれる契約
これは、全部のテストの作業量を見積もって、その金額で契約するわけだから、
全部テストするのが当たり前だと思うんだけど?(客が80%で良いとか言うのなら別)

328 名前:仕様書無しさん [2008/07/16(水) 16:37:47 ]
>>1
おれの作ったプログラムにはバグがない。
だからテストは不要。

と書きたいところだが、
C言語だと1万ステップに3カ所ぐらいは
バグがある。

ただし重要なところでバグがでないように
単体テストをしっかりとやってから納品している。

バグは意思の疎通が十分にできていれば
ほとんどでることはない。
バグのでる仕事というのは、だいたい意志の疎通がとれていない
ということ。


329 名前:仕様書無しさん mailto:sage [2008/07/16(水) 16:45:46 ]
俺も1万行に一回くらいしかコンパイルしないけど
ほとんどバグないな

330 名前:仕様書無しさん mailto:sage [2008/07/16(水) 17:08:08 ]
何この全力で釣られるスレは・・・

331 名前:仕様書無しさん mailto:sage [2008/07/16(水) 19:24:52 ]
>>327
>これは、全部のテストの作業量を見積もって、その金額で契約するわけだから、
>全部テストするのが当たり前だと思うんだけど?(客が80%で良いとか言うのなら別)
100%見積もれて、客が1つも仕様変更をしない場合の話だよね。それって。
そこら辺は開発スタイルの問題かと。俺が言いたいのは「仕様変更のリスクを設計や
計画に含めた形で客に説明しているし、客にもある程度納得してもらってる」
という事。

そういった意味でテストの手法や粒度をどうしましょうか?という事を>>80は言い
たいんじゃないの?

332 名前:仕様書無しさん mailto:sage [2008/07/16(水) 19:37:34 ]
>>331
でも、最初っから変更出来るって頭を顧客に植え付けちゃうのもどうかと思う。
費用込みなんだから一度くらいは変更できるよね? とか言われないか?



333 名前:仕様書無しさん mailto:sage [2008/07/16(水) 19:59:42 ]
>>332
プロジェクトがある程度続いている or 続く事が期待できる
相手であればそれもありかと。いずれにしても開発・契約
スタイルによるわな。


334 名前:仕様書無しさん mailto:sage [2008/07/16(水) 20:01:37 ]
まあ、変更は一切出来ませんとか言っててもどうせ変更させられるんだけどなwww

335 名前:仕様書無しさん mailto:sage [2008/07/16(水) 21:27:23 ]
普通は1000行あたりバグが5〜50個くらいかな。数え方やプロダクトの難易度にもよるが。
1000万行だったら、5万〜50万個くらいか。
まぁ、正直、これだけのバグを10人でさばけるのなら大したもんだよ。

336 名前:仕様書無しさん mailto:sage [2008/07/16(水) 23:05:12 ]
>>335
ちょっと待て
最悪20行に一個出るのが普通か?
たとえ200行に一個でもかなり多いだろ
新人レベルがかなり混じってるならともかく・・・

337 名前:仕様書無しさん mailto:sage [2008/07/16(水) 23:25:32 ]
>>336
設計から実装までやれば、延べにしてそのくらいは出るよ。
設計ミスで全面入れ替えの所とか、パフォーマンス出なくてとか、必ず出てくるwww

338 名前:仕様書無しさん mailto:sage [2008/07/16(水) 23:35:42 ]
ここがコーディング界のネ申達がおわす所、バルハラですか(1万ステップに1バグあるかないかを誇るという)?

それにしては冴えない連中が多いのですが・・・

339 名前:仕様書無しさん mailto:sage [2008/07/16(水) 23:37:43 ]
あいつ使えねーからこっちで直しておこーぜ。
いいよ、バグ無しって言っておけよ。

340 名前:仕様書無しさん mailto:sage [2008/07/16(水) 23:39:08 ]
>>329
それはデータ込みの・・・むしろデータのみを扱ったコードですか?
社会保険庁よりは優秀ですねwww

341 名前:仕様書無しさん mailto:sage [2008/07/16(水) 23:42:32 ]
>>340
一般人には想像すらできない天才っているもんなのよ。
天才というか、障害というか。

342 名前:仕様書無しさん mailto:sage [2008/07/16(水) 23:43:54 ]
>>337
設計にしてもキモになる部分ならプロトタイプなりなんなりで
実装可能性やパフォーマンス検討するだろ。
それを実装まで持ち越しているなら設計工程が十分でないだけ。

ひょっとして手戻りが好きなのか?w



343 名前:80 mailto:sage [2008/07/16(水) 23:46:47 ]
>>324
はったりじゃないんだけど・・・。
それに、嘘ついても仕方がないじゃんか。


344 名前:仕様書無しさん mailto:sage [2008/07/16(水) 23:48:32 ]
>>342
やらねえよ。
だって動作環境が半年後じゃないと揃わないとかザラにあるからな。
パソコン上で幾ら理論構築しても、載せて初めて発覚するパフォーマンスなんてのは普通だし。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<237KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef