クソコードとは何かat TECH
クソコードとは何か - 暇つぶし2ch317:デフォルトの名無しさん
21/02/17 19:19:20.02 DzAxBoaP.net
>>298
1番馬鹿なのはお前

318:デフォルトの名無しさん
21/02/17 19:29:15.15 p8cob7ED.net
テストコードはあって当たり前の前提でスレタイの話がしたかった...

319:デフォルトの名無しさん
21/02/17 19:40:45.14 p8cob7ED.net
まぁ、意味のあるテストコードがあればクソコードと言われるレベルのものはなくなるけどさ、そうじゃなくて
クソコードと良いコードを知った上でテスト駆動やるべきだからこそ、クソコードの分析がしたかったよ...

320:デフォルトの名無しさん
21/02/17 20:38:23.05 ltamn3iy.net
むしろ時代の流れは既にテストコードを「書く」という流れではなく、既に外部ソフトウェアを利用して
テストする段階に来ている。これは日本では「単体」しないのですか?と受け止めれれるがそうではない。
例えばテストしづらいソフトウェアにはLinux-KernelがあるがリリースはTorvaldsが十分に安定していると
「感じ」たときにリリースされる。ではLinuxは全くテストしていないですか?と思うがそうではない。
Kernelはテストコードが書きづらいため、様々な工夫がされる。外部ツールとして静的コード分析、
継続的インテグレーションツール、テスト自動化など様々なツールが使われる。もちろん単体テストもある。
現在のソフトウェアの主流において(ランダムな引数を渡す)ファジングテストツール(Fuzzer)なども
使われる。日本では一向に使われる気配は無い(誰も使わない・知らない企業独自のプロダクトのような
自動ツールが使われるのみである)ストレステストツールは何も知らない営業のアホが書いた根拠不明の
性能要件を満たすためのツールではないのである。フェイクデータを用意してテストするのが一部では
流行っているがそれでは網羅性はない。
例えば、1ファンクション/メソッド/スコープの変数の数、分岐の数、ループ、演算子の数の増えれば
増えるほど複雑度は増大しバグが発生しやすくなるはずである。そう言った統計的な手法を見ないで
宗教のようにテストコードばかりに注目するのは悪である。

321:デフォルトの名無しさん
21/02/17 20:56:14.06 3Rkqt+9c.net
>>312
むしろテストコードがないからこそ仕様書をきっちり更新してる可能性のほうが高いやろ
それにコードからテストコードを作るのはアンチパターンだぞ

322:デフォルトの名無しさん
21/02/17 21:16:09.34 3Rkqt+9c.net
>>316
自分がクソコードだと思う例をあげて解説してみればいいんでない?
クソだと思ったものが意外とそうでもない場合もあればその逆もあるから

323:デフォルトの名無しさん
21/02/17 21:24:29.62 v0/tbLAB.net
再利用性の無いクラスは糞
お前らもあるやろ?
アプリ全体で一箇所でしかインスタンス化されないようなクラス
邪魔だなぁと思いつつも
それを書く事で若干の整理と局所化が得られるから作っちゃうようなクラス

324:デフォルトの名無しさん
21/02/17 21:48:55.78 FwS3TBTC.net
>>317
嘘つくな(笑)
オープンソースでなんか証拠持ってきてみ

325:デフォルトの名無しさん
21/02/17 22:15:44.97 ltamn3iy.net
>>321
いろいろ書いてますが、どの辺が嘘だと言っていますか?全て?

326:デフォルトの名無しさん
21/02/17 22:36:40.80 JcWwc4WJ.net
>>318
> むしろテストコードがないからこそ仕様書をきっちり更新してる可能性のほうが高いやろ
ないない、世の中にはテストコードも仕様書もちゃんとしてる組織とテストコードもないし仕様書もちゃんとしてないクズ組織しかないと思っていい
> それにコードからテストコードを作るのはアンチパターンだぞ
そんなことはみんなわかってる
やむを得ずのケースな

327:デフォルトの名無しさん
21/02/17 22:43:42.98 FwS3TBTC.net
仕様書をきっちり更新しているとして、
ちゃんとその通りにテストしたことを担保するのはどうすればいいの?
なんでこの質問に答えられないの?

328:デフォルトの名無しさん
21/02/17 22:44:31.47 FwS3TBTC.net
>>322
ソースを持ってきてない所全て

329:デフォルトの名無しさん
21/02/17 22:52:29.81 gjncEnw2.net
パーフェクトRuby on Rails には、
毎週モジュールを更新してテストするように書いてある
こういうのが出来るのは、Ruby/Rails コミッターのいるような技術力のある自社開発系だけ。
普通の会社は、できた後は放置するだけw
一切、更新しない
会社全体で、AWS の800資格と、
全12資格を持つ、ジェダイマスターが7人いる、クラスメソッドの動画を見ると、
全部、Lambda などのサーバーレス
自社で毎週、OS・アプリ・モジュールなどを更新してテストできる、会社は無い。
だから、AWS がOS・Aurora などのデータベースなどを更新する、サーバーレスを使う
サイボウズのkintone は、Kubernetes で毎日すべてのシステムを破棄して、作り直している。
これが究極のTDD・継続的インテグレーション
毎日、全システムをrolling update する

330:デフォルトの名無しさん
21/02/17 23:03:43.66 3Rkqt+9c.net
>>323
>そんなことはみんなわかってる
>やむを得ずのケースな
やむを得ずのケースもやっちゃダメ
わかってるつもりでわかってないパターン

331:デフォルトの名無しさん
21/02/17 23:09:24.60 ltamn3iy.net
>>324-325
まあ暇だから相手するけど、「その通りにテストしたことを担保する」っていうのはテストコードを
流しただけでは出来ませんよ。なぜならテストにもバグが介在するからです。イテレーションテストでも
反復回数が足りなければデグレします。極限値テストでもその中にバグを起こす特定値が無ければ
何の意味もありません。多くの人があんたの質問には答える価値があんまりないからじゃないかな?
「ソースを持ってきて」という表現方法もプログラミングに置き換えると非常に曖昧で解釈が不明です。
情報源のURLを提示しろ、元のオープンソース(笑)を証拠を持ってこいよ」どちらにも取れますが
プログラミングには向かない人だと思います。マウントポジション取りたいだけなら話は良く分かりますが
煽りたいだけであれば、幼稚園にでも通いなさい

332:デフォルトの名無しさん
21/02/17 23:14:35.28 FwS3TBTC.net
>>328
初っ端から論点をすり替えるなよ
もう一回やり直し
「手動テストでどうやってちゃんと書いてあるとおりにテストしたと担保するの?」

333:デフォルトの名無しさん
21/02/17 23:16:22.98 ltamn3iy.net
手動テストなんて1回も書いた事無いのに、すべての人があんた以外の同一人物じゃないんだから
あんたの脳内が正常に回ってるかテストしたほうがいいんじゃないですか?

334:デフォルトの名無しさん
21/02/17 23:19:03.48 FwS3TBTC.net
>>328
わかりやすく言えば
一人目「なんか手順を省いちゃった気がするけど、次の人がちゃんとやるだろうからヨシ」
二人目「正しく動いてない気がするけど、前の人がスクショとってOKって言ってるからヨシ」
三人目「前の二人がOKって言ってるからヨシ」
こんなたくさんのスクショあっても見る時間ねーよヨシ
これをどうやって防ぐの?

335:デフォルトの名無しさん
21/02/17 23:19:39.55 FwS3TBTC.net
>>330
論点をすり替えて答えた気になるなって言ってるだけ
「手動テストでどうやってちゃんと書いてあるとおりにテストしたと担保するの?」

336:デフォルトの名無しさん
21/02/17 23:24:26.28 ltamn3iy.net
こいつは相手にしちゃダメな人だったか、テスラでもトヨタでも自動運転のテストを公道でやってますが
担保するために何をやっているかと言えば色々な現実的な状況や環境、人の動きなど特殊な例外パターンを
実地でチェックシートを用意してテストしてます。コードを書いて自己満足しているわけではありません。
そもそも自動運転というか自動学習のようなモデルでは何が正しいのかを定義することさえ困難です
「論点をすり替えて答えた気」といっていますがあなたが何を「論点」としているのか、まったくもって
説明していません。とても残念な方だと思いますが同僚や仲間には迷惑をかけないようにしましょう

337:デフォルトの名無しさん
21/02/17 23:26:31.02 FwS3TBTC.net
>>333
だから論点すり替えるなって言ってるだろ
自動運転の話なんかしてないんだわ
「手動テストでどうやってちゃんと書いてあるとおりにテストしたと担保するの?」
これに答えればいい。色々やってます!は答えじゃないからな

338:デフォルトの名無しさん
21/02/17 23:35:59.81 ltamn3iy.net
「手動テストでどうやってちゃんと書いてあるとおりにテストしたと担保するの?」
「(手動テストでは)テスト項目を作成し、(完璧な)テスト要員はテスト(それに完全に従い)した結果を記録します」
この時、不良なテスト要員やテスト抜け、人間らしいヒューマンエラー許容しません。これはテストコードを
作成した場合についても同じです。だからあんたの脳内に大事にしまってある「論点」を語りなさい

339:デフォルトの名無しさん
21/02/17 23:52:39.21 rF5wbzd/.net
自動テストだと手動テストでできない説明ができるって?

340:デフォルトの名無しさん
21/02/18 00:00:13.06 uiIjzHNM.net
>>335
> 「(手動テストでは)テスト項目を作成し、(完璧な)テスト要員はテスト(それに完全に従い)した結果を記録します」
完璧なテスト要員なんて存在しません。
書いてあるテスト項目通りに、人間が作業したことを担保(記録)する方法を聞いています。
「完璧に記録するにはどうすればいいですか?」という質問に対して
「結果を記録します」は答えになっていません。
それが質問です。

341:デフォルトの名無しさん
21/02/18 00:03:21.14 CDAKHrDM.net
自動テストはオマケ。最後は品質保証チーム。

342:デフォルトの名無しさん
21/02/18 00:04:06.22 uiIjzHNM.net
>>336
> 自動テストだと手動テストでできない説明ができるって?
今の論点は「テスト項目通りに間違いなくテストを行ったか?」です
人間がやる以上、間違い(ミス)すること作業することはできないので、それを防ぐのが自動テストです。
もし手動テストでやる場合「書いてあるテスト項目に従い人間が間違いなく行動する」
または「人間の行動を後から再現できるように完璧に記録する」のどちらかが必要になるはずです
これだけやって、ようやく自動テストと同等の信頼性が得られますが、
それでも実行速度(テスト実行時間)はコンピュータにはかないません。

343:デフォルトの名無しさん
21/02/18 00:04:52.19 uiIjzHNM.net
人間がやる以上、間違い(ミス)することなく作業することはできないので、それを防ぐのが自動テストです。

344:デフォルトの名無しさん
21/02/18 00:05:13.93 GR+auC/2.net
やっぱマウントポジション取りたいストレスだらけの無能ハゲやったか
手動テストって上の方でも書いてるけど、ほんまもんの気狂いだなww
同様にテストコードも完璧なテストなんてありませんし書けません

345:デフォルトの名無しさん
21/02/18 00:07:58.06 uiIjzHNM.net
>>341
いやちゃんと>>339に書いたんだからレスしろよ
マウント取るんじゃなくて、お前がマウント取られに行ってるじゃんw
言い返す言葉はなにもない。だがレスだけはしたいんだって

346:デフォルトの名無しさん
21/02/18 00:09:19.27 uiIjzHNM.net
> 同様にテストコードも完璧なテストなんてありませんし書けません
だーれも完璧なテストがあるなんて言ってない
完璧なテストがない=必ず後で修正が入るからこそ、
何度も高速に同じテストを実行できることが重要なんだわ

347:デフォルトの名無しさん
21/02/18 00:10:15.82 uiIjzHNM.net
何度も高速に同じテストを実行できることが重要だから
それを人間の手動テストでどうやるの?と聞いてる
無理。だから自動テストが重要
って答えになるやろが?

348:デフォルトの名無しさん
21/02/18 00:29:33.49 unHOG45Z.net
は?全く苦労に見合った見返りが見えないんだが?
あとサブルーチンの戻り値で分岐しまくるコードが入りまくってるときに
テストコードってどうやって書くの?
戻り値を意図的に制御できないじゃん?

349:デフォルトの名無しさん
21/02/18 00:31:37.57 uiIjzHNM.net
>>345
> あとサブルーチンの戻り値で分岐しまくるコードが入りまくってるときに
手動テストってどうやるの?
それを書くのが先だ

350:デフォルトの名無しさん
21/02/18 00:34:28.27 uiIjzHNM.net
手動テスト vs 自動テストで
ドロー(引き分け)になる項目を持ってきて
勝てると思ってるんだろうか?
手動テストは、高速に同じテストを何度も実行できない
手動テストは、正しくテストをしたという担保がない
この項目で負けてるだろうが
そこに引き分け項目持ってきても勝てねーよw

351:デフォルトの名無しさん
21/02/18 00:42:57.81 80X4NLoW.net
なんかもう、テストコード書く書かないのスレ立ててそこでやれば?いつまでこのネタ引っ張るの?

352:デフォルトの名無しさん
21/02/18 00:43:39.30 GR+auC/2.net
>>342
思い込みのハゲしい人ですね。最初からいいますよ?私は自動テストも手動テストも否定してない。まず上の方の
人たちと同一人物視をやめなさい。あなたは「担保するの」と書いていて「速度」のことなんて、ID上は今まで
1回も言っていません。ちゃんと質問するなら
「手動テスト”だけ”で仕様通りにテストを行い、変更があったら”同じテストを繰り返した”と
 担保して、素早いテストの繰り返しによる開発を継続するのでしょうか?」ですよね
もちろん手動テスト”だけ”でも時間と費用があれば無理ではありませんが、当然時間がかかります。
この質問であれば、「素早い開発」の要件を満たせないのでテストコードによるイテレーションテスト「も」
必要になります。「無理」というのはあんたの頭の中でできてるストーリーに無理ができているだけです。
「嘘つくな(笑) オープンソースでなんか証拠持ってきてみ 」
このような会話は5chだから通用しますが、現実世界ではあなたは爪弾きでしょう。何を言いたいのか
サッパリ分かりません。日本語が不自由な方かと思いましたが、思考が不自由な方だ
1.聞きたいことが質問にまとめられていない
2.聞きたいことを回答する人を馬鹿にして遊んでる
3.最初から(自分だけの)結論ありきで語っている
また頻繁に変更が入るコードで何度も同じテストを実行することはありますが、変更が入らないコードでは
同じテストを実行する事は無駄です。一部のツールはテスト結果で省略すらします。
自動vs手動という考えはあんたの頭の中にしかない初めて披露された考えです。この両者は対立構造では
ありませんし、ましてや勝つとか負けるとかどーでもいい事です。それがマウントと言っているのですよ

353:デフォルトの名無しさん
21/02/18 00:44:42.11 vQ0bM4Ab.net
>>345
一般的な言語なら普通にできるよ

354:デフォルトの名無しさん
21/02/18 00:45:02.81 uiIjzHNM.net
長文読まないよ

355:デフォルトの名無しさん
21/02/18 00:45:40.48 uiIjzHNM.net
結局の所、手動テストは時間がかかって
信頼性もないってことだろ

356:デフォルトの名無しさん
21/02/18 00:46:31.03 unHOG45Z.net
>>347
自動テストでそれは解決できないだろ

357:デフォルトの名無しさん
21/02/18 00:48:39.39 uiIjzHNM.net
>>353
それはシートベルトでは衝突事故は防げないだろ論法?w
手動テストは、高速に同じテストを何度も実行できない
手動テストは、正しくテストをしたという担保がない
自動テストで解決できてるだろ

358:デフォルトの名無しさん
21/02/18 00:49:53.24 GR+auC/2.net
>>348
ごめんね、引数が100個あればクソコードかと言えば、そうでもなく可変引数展開するような言語では
配列渡しになったりするので「テストコード」も「開発手法」もここのタイトルだと何も関係ないね

359:デフォルトの名無しさん
21/02/18 00:51:16.80 unHOG45Z.net
>>354
自動テストってなんで正しいの?

360:デフォルトの名無しさん
21/02/18 00:52:15.60 unHOG45Z.net
自動テストってコードありきで作っちゃったゴミカステストしか見たことないよ

361:デフォルトの名無しさん
21/02/18 00:54:40.11 uiIjzHNM.net
>>356
それをいうなら、
「自動テストは、正しくテストをしたという担保があるの?」
だよね。
コンピュータは書いたとおりに動く
だから、テストコードで書いたテストを
正しく行ったことが担保されている
それに対して人間は、いくらテスト指示書にこうしろと
書いてあったとしても間違えることがあるしサボることもある
なんかおかしい気がしたけど気づかずにスクショ取ってOKと記入してしまうこともある
だがあとになって調べようとしても、その時のテストが
間違っていたり手抜きしたことがわからない

362:デフォルトの名無しさん
21/02/18 00:56:12.19 GR+auC/2.net
>>357
OSSなら基本的にテストファーストはしてないね、プロトタイプ作って0.1にバージョニングして
後からテストコード追加ですね。業務コードだとTDDを最初からやろうとする企業もあるけどさ
作ったテストが要件や機能に合わなくなることはあるあるネタだ

363:デフォルトの名無しさん
21/02/18 00:57:26.69 unHOG45Z.net
>>358
いや、ないよ

364:デフォルトの名無しさん
21/02/18 00:57:49.51 uiIjzHNM.net
>>359
普通、一つのコミットの中にテストコードと実装コードが含まれるけど
テストファーストしてないという根拠は?
後からテストコードが追加されたことがあるからといって、
それはテストファーストしてない理由にはならない

365:デフォルトの名無しさん
21/02/18 00:58:20.53 uiIjzHNM.net
>>360
何か言い返せよw
言い返せないのにレスだけするか�


366:迺pをかくんだぞw



367:デフォルトの名無しさん
21/02/18 00:59:52.93 unHOG45Z.net
>>362
だってないもん
単体テストなんか仕様書ビルドしてできたわけでもねーのにそんな正しさがいきなり入る前提なのが気が狂ってる

368:デフォルトの名無しさん
21/02/18 01:01:03.98 unHOG45Z.net
バカが作ればバカなりな正常が定義されるだけだろ
夢みんな

369:デフォルトの名無しさん
21/02/18 01:01:59.98 uiIjzHNM.net
>>363
ああ「正しさ」だけ書いて論点をすり替えようとしてるのねw
俺がずーっと言ってるのは
「手動テストでどうやってちゃんと書いてあるとおりにテストしたと担保するの?」

370:デフォルトの名無しさん
21/02/18 01:02:43.80 uiIjzHNM.net
手動テストではいくらテスト項目が書いてあったからって
そのとおり正しくテストしたという保証がまったくないんだわ
人間は間違えることがあるから

371:デフォルトの名無しさん
21/02/18 01:04:27.27 unHOG45Z.net
>>365
いや、それ自動テストと手動テストに違いないじゃん
自動テストの間違ったテストコードで正常になっちゃったも
手動テストで間違ったエビデンスのとり方して正常になっちゃったも
違いねーし
頭おかしんちゃう?お前

372:デフォルトの名無しさん
21/02/18 01:06:47.98 uiIjzHNM.net
>>367
自動テストの間違ったテストコードで正常になっちゃった場合は
テストコードを見れば、テストコードが間違っていたとあとからわかる
手動テストでは、テスト作業が間違っていたのかどうかもわからない
あとから見た所で、作業内容自体までスクショ取ってないから。
それとも監視カメラで作業員の行動を動画で撮って
あとからその動画を眺めるつもりか?
コンビニの監視カメラの映像を確認するように
一体何時間時間がかかると思ってるんだ

373:デフォルトの名無しさん
21/02/18 01:07:56.11 unHOG45Z.net
>>368
え?わかるやり方もあるでしょ?バカなん?

374:デフォルトの名無しさん
21/02/18 01:08:25.16 uiIjzHNM.net
だから手動テストでは
もう一回やったら再現できませんでしたとか
ちゃんとテストしたのに実際は動きませんでした
とか発生した時に、その原因の追求ができない
うごくからヨシっていう
適当な仕事をしてる

375:デフォルトの名無しさん
21/02/18 01:09:01.59 uiIjzHNM.net
>>369
その分るやり方を書けよw
お前議論できねーな
言い返す言葉がないならレスしなくていいんだぞ?

376:デフォルトの名無しさん
21/02/18 01:09:10.15 unHOG45Z.net
>>368
あとテストコード見たってわかんないよ
仕様書見るんでしょ?
それは手動テストだって同じだよね?

377:デフォルトの名無しさん
21/02/18 01:10:46.79 unHOG45Z.net
>>370
は?
自動テストだって同じでしょ?
デバイス絡みがコードだけで動くわけ無いじゃん

378:デフォルトの名無しさん
21/02/18 01:11:16.43 uiIjzHNM.net
>>372
テストコードみれば、実際にやったテストがわかるだろ?
馬鹿なのか?
手動テストでは、何が書いてあっても
実際にどういうテストをやったかがわからない
人間が間違えたかもしれないって話をしてるのだが
ついてこれてる?

379:デフォルトの名無しさん
21/02/18 01:11:52.03 unHOG45Z.net
俺がつないであるプリンタを踵落としで叩き割ったらもう動かないよね?

380:デフォルトの名無しさん
21/02/18 01:12:02.27 uiIjzHNM.net
>>373
> 自動テストだって同じでしょ?
なにが同じなんだよ?
自動テストなら実際にやったテストがわかる or 手動テストではわからない
って話をしてるんだが、ついてこれてる?

381:デフォルトの名無しさん
21/02/18 01:12:12.31 GR+auC/2.net
>>363
「普通、一つのコミットの中にテストコードと実装コードが含まれる」間違い、0点です。
OSSでもクローズドソースでも普通はコミットの中には、偏在が生じます。TDD推進や原理主義者では
テストコード比率は80%だと主張する方もいます。一般的にOSSではテストコードがほとんどない方が
多いです。もちろんこれの正当性を主張するわけでもありませんが、何故そうなるのかと言えば多くが
個人開発だからです。いい加減な自動テストが含まれていて、それをテストファーストと主張するなら
主張すればいいですよw

382:デフォルトの名無しさん
21/02/18 01:13:10.82 uiIjzHNM.net
>>375
その点テストコードは、バージョン管理するから
動いていたものが動かなくなった原因までしっかり記録される

383:デフォルトの名無しさん
21/02/18 01:13:51.03 unHOG45Z.net
>>374
は?それが正しいかどうかは仕様書見ないとわからないだろ?
仕様書とテストコードとコード見るんやな
なんか無駄じゃねぇの?
仕様書とコード見るだけでよくね?
なんでテストコード書く必要あったんだっけ?

384:デフォルトの名無しさん
21/02/18 01:15:16.04 unHOG45Z.net
そもそも仕様書とコードを見比べてどうして正しいかわからないんだっけ?

385:デフォルトの名無しさん
21/02/18 01:15:18.95 uiIjzHNM.net
>>377
> 「普通、一つのコミットの中にテストコードと実装コードが含まれる」間違い、0点です。
ん?証拠を持ってくればいいわけ?
例なんていくらでもあるけど、一つのコミットの中にテストコードと実装コードが含まれてます。
URLリンク(github.com)

386:デフォルトの名無しさん
21/02/18 01:15:52.08 unHOG45Z.net
>>381
ウィルス

387:デフォルトの名無しさん
21/02/18 01:16:06.06 uiIjzHNM.net
>>379
いい加減「正しい」の意味をすり替えるのやめろ
「書いてあるとおりに正しくテストした」ことが
自動テストならわかるって言ってるだろ

388:デフォルトの名無しさん
21/02/18 01:16:36.10 uiIjzHNM.net
>>382
そうだよね。そうやって嘘を付くしかないもんねw

389:デフォルトの名無しさん
21/02/18 01:17:07.59 unHOG45Z.net
>>383
え?それは仕様書通りって意味でないとビジネスで役に立たないよね?

390:デフォルトの名無しさん
21/02/18 01:17:45.50 unHOG45Z.net
自動テストでどうやって仕様書通りかどうかわかるの?

391:デフォルトの名無しさん
21/02/18 01:18:14.28 unHOG45Z.net
お前のテストコードがクソコードだったら終わりじゃん

392:デフォルトの名無しさん
21/02/18 01:20:25.65 unHOG45Z.net
さっきからなんの正しい説明にもなってないじゃん
自動テストも手動テストも仕様書通りかどうかテストすんだろ
何度も言わせるなクソが

393:デフォルトの名無しさん
21/02/18 01:27:53.27 GR+auC/2.net
>>381
js系の人ですか(笑)reactの場合、ver17.0.0になってもissueのOpen数が500あります。明らかにデグレ�


394:� 生んでいますが、issueのClose数も1万近くです。テストが完璧だとどうやって担保しているでしょうか?(笑) リリース数は数えたら137回です



395:デフォルトの名無しさん
21/02/18 01:35:12.01 GR+auC/2.net
>>381
ん?ショーコですか?誰もそんな事言ってないと思いますが?w
参考までにそのコミットの1つ前にはテストコードが含まれてませんが?w2つ前も含まれてませんw
対象コードはCIのコードですがwよくあるFix typo も多くはテストコードとやらは含まれませんね。

396:デフォルトの名無しさん
21/02/18 01:55:43.96 GR+auC/2.net
>>387
”「書いてあるとおりに正しくテストしたことが自動テストならわかる」って言ってるだろ ”
上の方を見ても1回もそんな事はいってませんね・・・それと、日本語の区切りがおかしいので
直しておきました。「書いてあるとおりに正しくテストした」これを一言で言えばオナニー猿です。
逃げてしまったのか

397:デフォルトの名無しさん
21/02/18 06:37:17.08 EVRbmhyV.net
>>327
はいはい、どうしようもない現実を知らないとか幸福な人生で何よりですw

398:デフォルトの名無しさん
21/02/18 06:54:09.45 qR1rH4Mn.net
テストの内容(文章 or コード)が、仕様書通りかは、手動テストも自動テストもわからない
この勝負はドロー(引き分け)

テストの内容(文章 or コード)が仕様書通り正しいと仮定する
手動テストは、テストの内容を正しく実行したとは限らないが
自動テストであれば、テストの内容を正しく実行したことが保証される
なぜならコードは書いたとおりに動くから
この勝負は自動テストの勝ち

399:デフォルトの名無しさん
21/02/18 07:11:33.36 K1XgX+kk.net
>>393
だからテストコードのテストを行わなければ完結しない
ということだね

400:デフォルトの名無しさん
21/02/18 08:22:53.92 qR1rH4Mn.net
>>394
テストコードのテストというのは意味不明
お前の理屈だと、テストのテストが必要になるだろ
テストのテストのテストも必要になるだろ
アホらしい
テストコードに必要なのはコードレビュー
テストコードのレビューが必要なように
テスト実行手順書のレビューも必要
この勝負はドロー
そしてテストコードのレビューがOKだった場合
書いてあるテストコードの通りテストは行われるが
テスト実行手順書のレビューがOKでも
手動でテストすると、そのとおりにテストが行われるとは限らない
ということで、手動テストの負けになる

401:デフォルトの名無しさん
21/02/18 10:15:13.26 64/LOwh9.net
>>308

402:デフォルトの名無しさん
21/02/18 10:27:02.08 PBViQ2A6.net
俺が折角>>305で流れ戻してやろうと思ったのに馬鹿を刺激すんな
もう手遅れだけど
馬鹿は詭弁を並べて相手にならねーから会話するな
馬鹿と会話しようとするから疲れる
テキトーに流しとけ

403:デフォルトの名無しさん
21/02/18 11:03:49.56 gOUQkM00.net
推奨するやつの頭が悪いから
テストの自動化自体も悪く見えるパターンだなこれ
ルビきちパターン

404:デフォルトの名無しさん
21/02/18 11:05:28.89 ZCTHPCfZ.net
>>397
馬鹿筆頭の自覚無しw

405:デフォルトの名無しさん
21/02/18 11:40:46.00 Nx8G+5tf.net
>>399
煽り耐性無さ過ぎ...

406:デフォルトの名無しさん
21/02/18 11:49:50.78 nrHJXjYu.net
スレの趣旨的にはむしろ>>305が正しい

407:デフォルトの名無しさん
21/02/18 12:14:02.17 2k7+F3J5.net
>>1>>305の中身がペラいから欲しい反応を貰えないだけやろ

408:デフォルトの名無しさん
21/02/18 12:21:36.18 2k7+F3J5.net
>>320の"再利用性の無いクラスは糞"でトライしてみたんだろうけどペラすぎて役に立たないから誰も反応しない

409:デフォルトの名無しさん
21/02/18 12:27:34.11 nrHJXjYu.net
そう?
むしろさり気なくanemic domainの話をしてる奴らがいたから、良スレの予感したのに一人の馬鹿が荒らした挙げ句に単体テストの必要性の有無とかいう低レベルスレになってがっかりしてる俺がここにいるけど?
内容がペラいってか、本当の経験者なら察せるし、一言二言から深堀すればいいのに

410:デフォルトの名無しさん
21/02/18 12:28:13.80 nrHJXjYu.net
単体テストの話で流れるせいで誰も手が出せん
何なら、隔離スレいる?

411:デフォルトの名無しさん
21/02/18 12:55:48.46 nrHJXjYu.net
ペラいとか言うけど、そもそも>>320の言ってることわかる?
他人を批判する前に貴方の実力チェックがしたいのだが、なんで再利用できないクラスがクソなのかわかる?

412:デフォルトの名無しさん
21/02/18 14:03:58.21 d72Uy3wC.net
>>406
>なんで再利用できないクラスがクソなのかわかる?
その考え方がペラいって言ってんのにわかんないやつだな
これ全部同一人物じゃなきゃありえんな

413:デフォルトの名無しさん
21/02/18 14:20:32.85 nrHJXjYu.net
>>407
その考えとは?わからないから教えてくれや

414:デフォルトの名無しさん
21/02/18 14:52:32.67 nrHJXjYu.net
>>407
まさか再利用できないクラスが普通だとか思ってる?流石にそれはレベル低すぎてその発想はなかったけど、そういうこと?
たのむから伝わるように文章を書いてくれ
お前の文章こそ情報量がない
あるのは相手にマウントを取ろうとする意気込みだけ

415:デフォルトの名無しさん
21/02/18 15:50:41.18 bN9e6Enp.net
>>408
一般常識を持たず
自分の半径5cmの出来事の一側面だけを見て
コンテキストを無視して一般化しようとする考え方

416:デフォルトの名無しさん
21/02/18 15:59:27.62 nrHJXjYu.net
>>410
一般常識?ID変えながら、こんな時間に2chやる俺らが?w
発言元からコンテキスト境界を読み取れずに他人を批判するお前こそ薄ペラ野郎だわ

417:デフォルトの名無しさん
21/02/18 17:08:42.38 kV6+8waU.net
まず再利用性とは何かをまるで理解していない
アプリ全体の一箇所でしかインスタンス化されないからといって再利用性が無いとは言わない
再利用には様々な形があるにもかかわらずインスタンス化される箇所の数という著しく狭い一つの側面だけしか見えていない
そもそもインスタンス化される箇所の数と、そのクラスがクソかどうかとは何の関係も無い
ないない尽くし

418:デフォルトの名無しさん
21/02/18 17:23:27.31 kV6+8waU.net
クラスの再利用性の度合いが低ければそのクラスがクソかと言えば全くそんなことは無い
クソがどうかは再利用性の度合いとは関係ない
クラスベースのOO言語を使ってるならどんなアプリでそのアプリ特有の処理はそのアプリの用途に特化したクラスで実現する
当然、一般的に言うところのクラスとしての再利用性は無い
それだけでクソだと言い出したらGoogleが作るものでもMSが作るものでも世の中のアプリはほぼ全てクソの塊

419:デフォルトの名無しさん
21/02/18 17:49:20.06 HwjlNY0O.net
ジョブがやたら多いシステムきつい

420:デフォルトの名無しさん
21/02/18 17:53:10.20 EQNcYV6O.net
>>413
> クラスベースのOO言語を使ってるならどんなアプリでそのアプリ特有の処理はそのアプリの用途に特化したクラスで実現する
> 当然、一般的に言うところのクラスとしての再利用性は無い
そんなの当たり前じゃん
殺人事件が起きて殺人は駄目だと訴える遺族の前で死刑囚は殺してはいけないと言うのか?とか言い出すようなもの
それくらい察してやれ

421:デフォルトの名無しさん
21/02/18 17:59:21.72 EQNcYV6O.net
って、アプリ特有ってまさか業務特有の処理とかじゃないよな?
フレームワーク特有だったらわかるけど

422:デフォルトの名無しさん
21/02/18 18:07:15.94 TPOb/Xi+.net
組込してるけど、USBクラス、SDカードクラスのインスタンス化が封じられていて、しかもUSBクラスの中にMCUのポートに依存する処理が書かれてたらクソだと思う
なんで、回路構成変わるたびにいちいちUSBのロジックを実装しなきゃなんねーんだよクソがって言いたい

423:デフォルトの名無しさん
21/02/18 18:40:52.03 uVIafMoc.net
>>417
なんで修正しないの?
staticなメソッドとメンバーのみを使うとしても必要なところを入れ替えるように作れるでしょ

424:デフォルトの名無しさん
21/02/18 18:56:01.13 z09WEaLy.net
トイレ行っていい?

425:デフォルトの名無しさん
21/02/18 19:02:24.32 TPOb/Xi+.net
>>418
文面だと伝わりづらいと思うからコード書くけど
USBポートが2ポートある場合
USB usb1 = new USB(port1)
USB usb2 = new USB(port2)
で済むのに、インスタンス化を封じられたら
USB1 usb1 = USB1.getSingleton()
USB2 usb2 = USB2.getSingleton()
みたいにUSB1クラス、USB2クラスを自分で定義しないといけなくなるからやめた方がいいよって話
なぜかというと、USB1と2に同じコードを書かないといけないし、もし、USBの処理に仕様変更が生じると、今後はUSB1と2を変更しないと駄目だから
面倒でしょ?2個程度なら...という油断は命取り
>>419
ご自由に

426:デフォルトの名無しさん
21/02/18 19:30:22.47 unHOG45Z.net
>>395
それで?
仕様書通りであると説明できたん?

427:デフォルトの名無しさん
21/02/18 20:13:35.08 qR1rH4Mn.net
>>421
何度も言ってるが
仕様書通りのテストコード(or テスト手順書)になってるかはレビューで確認する
その点ではテストコードも手動テストの手順書も差はない
差があるのは
テストコードの通りにコンピュータが実行したか(実行したと保証される)
テスト手順書のとおりに人間が実行したか(実行したと保証されない)
この点で、手動テストは劣っている
>>421
なにか言い返す言葉があるならどうぞ

428:デフォルトの名無しさん
21/02/18 20:54:43.88 Tudb2iMs.net
>>420
インスタンス化しとるやーん
USBに共通する処理をコンポジションで切り出してれば1箇所の修正で済むよね
シングルトンにするメリットがある前提ならそのコードの形だけでクソコードだとは思わないな

429:デフォルトの名無しさん
21/02/18 21:58:25.07 unHOG45Z.net
>>422
え?コードレビューの他にテストコードのレビューやるの?
何がよかったんだっけ?

430:320
21/02/18 22:15:10.24 1R5qg2DM.net
反応してくれるやつがおっただけでも嬉しいわ(ヽ´ω`)

431:デフォルトの名無しさん
21/02/18 22:24:23.85 1R5qg2DM.net
>>412
ワイはそれをあると言っている
インスタンス化された個数こそがそのクラスの価値だと言っている
抽象クラスやインタフェースについてはこの主張では扱わない
アホらしいと思うのなら聞き流してくれていい

432:デフォルトの名無しさん
21/02/18 22:27:00.40 1R5qg2DM.net
>>404
単体テストがどうのこうのってもう心底どうでもいいよなw
俺もそれの結論について興味が持てない

433:デフォルトの名無しさん
21/02/18 22:30:19.90 1R5qg2DM.net
>>420
インスタンス化を封じて苦しくなってくるのあるよなw
最初のうちはそれでよさそうに思えるんだけどね

434:デフォルトの名無しさん
21/02/18 22:55:26.26 GanGg3no.net
>>426
インスタンス化された個数と
インスタンス化される箇所の個数は全然違うと思うんだが?
コード上では1箇所でしかインスタンス化されないがリクエスト毎にインスタンス生成されるクラスとか

435:デフォルトの名無しさん
21/02/18 23:10:12.48 1R5qg2DM.net
ごめんね下のほうの意味が本来言いたかったこと
実行時のことは考えず単にコード上での評価

436:デフォルトの名無しさん
21/02/18 23:35:55.78 lCP5Fc9O.net
>>430
そうすると何か特殊な前提を置いてるかインスタンス化する箇所という言葉の定義が全く違うかだな
インスタンス化がnewしたりファクトリメソッドを呼ぶ事だとしたら
Webでもモバイルでもデスクトップでもコード上の1箇所でしかインスタンス化されないクラスが結構な割合で存在するほうが普通
わかりやすいところで言えばコントローラクラスやアプリケーションクラス

437:デフォルトの名無しさん
21/02/19 02:02:43.04 C4/TpWTT.net
>>420
USB io = USB.create(port1)で物理的なUSBが重複する可能性があり、排他制御が必要ならそうすると思うよ。
USB io = new USB(port1)で個別にインスタンス作って、マルチスレッド・マルチプロセスで動くなら必要ないけど
自然的なコンストラクタでメンバー変数は初期化されることに意味があるだけで、それ以外の構築初期化を
しようとしたらファクトリーメソッドが必要になる。もちろんnewの後にメンバーメソッドを�


438:�回自分で 呼び出して初期化しても良いわけだけど、ま、言いたいことは確かに安易な設計でシングルインスタンスは 避けるべきだけど、近代的なクラス型の言語によるメンバーの隠蔽とファクトリーメソッドは無関係



439:デフォルトの名無しさん
21/02/19 02:35:10.05 lLyiEvh3.net
>>424
> え?コードレビューの他にテストコードのレビューやるの?
当たり前だろ
お前コードレビューをするのは当然として、
お前、テスト手順書のレビューしないのか?
だからお前がやったテストはいつも抜けがあるんだろうがw
すいません、テストが漏れてましたじゃねーよ、いっつもいっつも

440:デフォルトの名無しさん
21/02/19 02:43:27.34 3DiTZZbV.net
>>433
じゃあテストコードのテストもいるよね?

441:デフォルトの名無しさん
21/02/19 02:59:07.17 lLyiEvh3.net
>>434
お前の真似をすると
テスト手順書のテストもいるよね?
当然、答えは「はい」になるよねw

442:デフォルトの名無しさん
21/02/19 06:52:05.98 zJ55MHzK.net
>>434
いらない、レビューで足りる
理由は>>255に書いてある

443:デフォルトの名無しさん
21/02/19 07:43:49.70 tQjoVXv/.net
>>435
え?設計書のテストが?
テストコードってもんにしたから特有の手順が増えちゃってるんだろ

444:デフォルトの名無しさん
21/02/19 07:48:43.11 tQjoVXv/.net
設計書
→コード→テスト
→テスト手順書→レビュー
で済むはずが
設計書
→コード→テスト
→テストコード
→レビュー
→テスト
になってるんだろ
テストコードがソースコードである以上テストしないわけにはいかんだろ

445:420
21/02/19 07:59:08.25 PldOIixM.net
>>423
伝わりにくくてすまん
紛らわしい言い方だったか
>>428
分かってくれてありがとう

446:デフォルトの名無しさん
21/02/19 08:24:00.57 IIFo83yT.net
クソ言語とは
PHP、Swift、Python
JavaScriptも昔はかなりクソだったが完全に復活した
Obj-CはSwiftに取って代わられることは無かった、コード効率が良すぎる

447:デフォルトの名無しさん
21/02/19 08:51:26.62 f7HYpZpv.net
>>438
レビューのあとの「テスト」ってビルドボタンを押す度に走るテストのこと?
それとと、gitとかにcommitする度に走るテストのこと?
作業をカテゴリ分けすると増えているように見えるだけで、作業量は減っているように見えるが
途中からこのスレ来たから、流れがわかっていない

448:デフォルトの名無しさん
21/02/19 08:52:42.54 hd6MOPhf.net
>>441
おk
半年Romれ

449:デフォルトの名無しさん
21/02/19 08:54:08.49 f7HYpZpv.net
>>438
あと、よく見ると手順が間違ってる
> 設計書
→コード
→テストコード
→レビュー(?)
→テスト(自動化)
if 自動化のテストにすべて合格したら
→結合テスト以降のテスト
だよ

450:デフォルトの名無しさん
21/02/19 09:01:26.16 f7HYpZpv.net
>>442
あっ(察し)
失礼しました(退場)

451:デフォルトの名無しさん
21/02/19 10:36:32.08 zJ55MHzK.net
>>438
> 設計書
> →コード→テスト
> →テスト手順書→レビュー
もうこの時点で意味不明w
普通は
1) 設計書 ⇒ コード(⇒ レビュー)
2) 設計書 ⇒ テスト手順書 ⇒ レビュー
3) 手動テスト(工数大)
だろ
で、自動テストなら
1) 設計書 ⇒ コード
2) 設計書 ⇒ テストコード ⇒ レビュー
3) 自動テスト(工数ほぼ "0")
要するにテストコードは計算機に対するテスト手順書だから手間は変わらんよ
むしろプログラマーだと仕様書よりコード書く方が楽と思う奴もいっぱいいるしw
あとどっちもテストと書いてるけど手動テストと自動テストでは工数が全く違うから同じ「テスト」という言葉でごまかすなよ
なおテストコードはデバッグが必要と主張するなら>>255にちゃんと反論しろ

452:デフォルトの名無しさん
21/02/19 10:53:49.57 IIFo83yT.net
テストコードは暇なら書くレベルの価値しかない。
テスト仕様書に漏れがない事が最も重要。
実データで実動作で検証するのが納品条件。

453:デフォルトの名無しさん
21/02/19 11:02:12.72 8jP4Tkvg.net
実機繋がってないと無意味なテストにしかならんの多いのよな

454:デフォルトの名無しさん
21/02/19 11:29:00.52 RipgTCDE.net
>>438
> テストコードがソースコードである以上テストしないわけにはいかんだろ
だからいらない
馬鹿なのかな?
テストコードのテストなんてお前したことないだろ?
世の中の誰もしたことないわw
そんなものありはしないんだから

> 設計書
> →コード→テスト
> →テスト手順書→レビュー
> で済むはずが
だめでしょ?レビューが正しいかをテストしなきゃwww

455:デフォルトの名無しさん
21/02/19 11:45:25.31 3OrjGIvj.net
>>448
まて、そのレビューは本当に大丈夫なのか?
レビューが適切かどうかも検証しよう(名案)

456:デフォルトの名無しさん
21/02/19 11:47:16.24 3OrjGIvj.net
間違えた
レビューが正しいかのテストが適切かどうかもテストしよう
だった

457:デフォルトの名無しさん
21/02/19 11:50:29.27 RipgTCDE.net
レビューした結果もちゃんと記録しないといけないからな
レビューの結果をドキュメントとして残すなら
そのドキュメントのレビューも必要になる
当然の帰結だ

458:デフォルトの名無しさん
21/02/19 11:52:44.73 wrciXaB+.net
単体テストの範囲でこんな凝った仕組みいらんよ
一番やりたい結合は今度セッティングのが時間かかるんで

459:デフォルトの名無しさん
21/02/19 12:21:07.58 RipgTCDE.net
「結合テストはすごく時間がかかる」
え?なんで?
「単体テストでやるべきことも
全部結合テストで手動でテストやってるからさ!」
↑馬鹿じゃね?

460:デフォルトの名無しさん
21/02/19 12:30:35.44 F46jrkhY.net
敢えて皆と同じくらいテストコードの書き方を知ってる自分が弁護するけど
class クソクラス
 頻繁に仕様が変わるメソッド
  クソコード
 不具合が生じると仕様が変わるメソッド
  クソコード
 思考停止でプライベート変数のgetter
  思考停止の変数リターン
 思考停止でプライベート変数のsetter
  思考停止の変数代入
みたいなクラスを単体テストするところを考えてみよう
他の皆の無駄じゃない主張は疑いもなく事実だろうけど、テストコードは無駄という主張はある意味では事実なのだと思う
これは...扱うコードの質の違いが生んだ悲劇
そう、事故だったんだ
テストコード厨呼ばわりについては...うん(諦め)

461:デフォルトの名無しさん
21/02/19 12:34:28.76 RipgTCDE.net
>>454
テストコードが無駄なケースでは
手動テストも無駄になる
頻繁に仕様が変わるメソッドがあったとして
手動テストをしたら時間の節約になるとでも?
ああ、テストしないってことね(笑)
プロの仕事じゃねーよ

462:デフォルトの名無しさん
21/02/19 12:43:07.19 F46jrkhY.net
>>455
> ああ、テストしないってことね(笑)
たぶん、彼の言う手動テストは俺らの言う「テストしない」のレベルだと思う
ややこしいのは主張している本人は「テストしたつもり」になっている点

463:デフォルトの名無しさん
21/02/19 12:54:53.31 F46jrkhY.net
>>455
TDD前提で語ってた
クソコードのテストコードを書こうとしたら、直ぐに設計は是正されないとだぞ

464:デフォルトの名無しさん
21/02/19 13:02:30.29 F46jrkhY.net
まず、クラス設計する際にテストコードみたいなコードを書いたりしない?
クラス利用者から見たクラスの使い勝手を確かめる意味で
で、何度も試行錯誤して、素晴らしいクラスモデルができたらテストコードを書いて、その後、実装をして...
この作業プロセスができていないから単体テストは無駄だという主張が生まれたと思っていた

465:デフォルトの名無しさん
21/02/19 13:19:31.43 IIFo83yT.net
>>458
abstractクラス<T>から頭の中で書いてるよ、それで十分
テストコードが必要なケースは、mockableAPIから全ケース流す時くらい、実データだとめんどくさいから

466:デフォルトの名無しさん
21/02/19 14:03:37.42 RipgTCDE.net
>>456
そうなんだよな。テストしたつもりになってるんだろうなって思うよ
「手動テストでテストできる!
リリース前に、人を大量に集めて人海戦術でテストするんだ!」
なんて言われたら、バグ出たらどうするの?って聞きたくなる
「バグを直して(そこだけ)テストするだけじゃないか!」っていうだろうな
たぶん、そこだけしかテストして無くて全体の再テストをしないだろう
最後にもう一回テストすればいい? いやいやバグはなくならないんだから
最後なんてありえないだろ
時間がないときは小さいバグは運用でカバーとかいってリリースするんだろ?
そしてあとから修正するんだろ?再テストするだろ?
何回小さいバグを修正する?そのたびに人を大量に集めて人海戦術でテストする?
どんだけ時間とコストがかかるんだよ?
たぶんその答えは
「小さいバグの修正なんだから、たぶん他に影響してないはずだ。動いていればヨシっ」
なんだろ?
プロの仕事じゃねーよ
自動テストしてるプロジェクトでは、一日数回のリリースと全テストを行うことだってある
このスピードに手動テストでは追いつけない

467:デフォルトの名無しさん
21/02/19 14:39:19.79 IIFo83yT.net
自動テストじゃほとんど何もできない。
日本語/フォント間違えてるとか色違うとかカクカク動くとか。

468:デフォルトの名無しさん
21/02/19 14:45:40.28 fG69+Z1U.net
しばらくぶりに見たプロジェクトの自動テストが通らないことぐらい
開発現場じゃ常識なんだよ!(パプリカ:DCmini)

469:デフォルトの名無しさん
21/02/19 14:48:09.77 RipgTCDE.net
>>461
> 日本語/フォント間違えてるとか色違う
それはクリティカルなバグじゃないですねw
正しくデータが処理されることをテストしたことありますか?
どうやってやりましたか?

470:デフォルトの名無しさん
21/02/19 14:49:14.42 RipgTCDE.net
>>462
> しばらくぶりに見たプロジェクトの自動テストが通らないことぐらい
それを手動テストして動いたら面白いなw
まあよくあるよね。本当はバグってるのに
表面上は動いてるように見えちゃう
だから手動テストは駄目なんだよ

471:デフォルトの名無しさん
21/02/19 14:55:40.06 IIFo83yT.net
>>463
直接変数に値入れればいいじゃん
コード変わったらまたやる
毎回テスト回すとか無駄

472:デフォルトの名無しさん
21/02/19 15:01:38.27 RipgTCDE.net
直接変数に値入れるとは?
まさかデバッガ経由でやってんの?
デバッガを使うと挙動が変わるからテストにならない

473:デフォルトの名無しさん
21/02/19 15:01:59.28 RipgTCDE.net
テストは本番用ビルドでやるのが鉄則

474:デフォルトの名無しさん
21/02/19 15:03:42.70 IIFo83yT.net
>>466
mockかデバッガーで十分です

475:デフォルトの名無しさん
21/02/19 15:06:22.55 IIFo83yT.net
客を自動テストして欲しいわ、言うことコロコロ変わるからw

476:デフォルトの名無しさん
21/02/19 15:20:06.23 LoU7pdW5.net
判定させたら99.99%がクソレスだった件

477:デフォルトの名無しさん
21/02/19 16:24:05.46 RipgTCDE.net
>>468
mockやデバッガーでどうやって
何千ものテスト項目を実行するの?w

478:デフォルトの名無しさん
21/02/19 17:47:03.42 IFuFAMn0.net
要件を確定させずレスバってプログラマどころじゃないな
しかも平日の昼間から真っ赤ってまともじゃないの自己紹介しているようなもの

479:デフォルトの名無しさん
21/02/19 17:47:13.51 ACLJAhWF.net
自分はアプリ開発と組み込み開発の経験があるけど、Web開発って単体テストやらんの?
Webは、Python+Django、node、古いPHPの入門書を読んだ程度にしか触れないからリアル開発事情に興味がある(開発経験が無い)

480:デフォルトの名無しさん
21/02/19 18:57:54.50 Clj7wgUu.net
web開発ってユーザーが入力欄に何を入れてくるかの組み合わせが
膨大になるから、テストも困難になるな。

481:デフォルトの名無しさん
21/02/19 18:58:00.55 RipgTCDE.net
単体テストをやらないのはSIerだよ
ああ、いや、エクセルに単体テスト報告書を書くとか
そういう意味でなら単体テストをやってるよw
テストコードを書かない手動テストのことをSIerは単体テストって言ってる

482:デフォルトの名無しさん
21/02/19 19:01:29.71 RipgTCDE.net
ああ、わかりやすいのが見つかった。これがSIerのいう単体テスト(手動テスト)
【Web系最高って言うけと゛本当なの?】siの5次請けから離脱したエンシ゛ニアか゛話してみた
URLリンク(www.slideshare.net)
8. てすとほうほう winshot、エクセル、人間 スクショ一枚取り忘れただけでも
テストがやり直しになるプレッシャーと進捗表.xls との戦い テスト結果.xlsが
不要なのでめんどくささがない 開発者が目で見ておk
URLリンク(www.slideshare.net)
12. ソース修正とかテスト バグが出た!→単体テスト障害報告書.xlsを書く→
必要に応じて単 体テストケース.xlsを直す→上司にお話して単体テスト障害報告
書を確認して貰う→テストをする バグが出た!→直す→必要に応じてテストパターン を
増やす→テストする あまりに、あまりにめんどくさい、進捗表.xlsには障害数も書くのでバグゼロは困るらしい

483:デフォルトの名無しさん
21/02/19 19:04:03.28 uscWUjsm.net
田中勇←口だけテストコード大好き変態老人
技術力はゼロwww

484:デフォルトの名無しさん
21/02/19 19:19:27.73 2/3+b4qC.net
>>476
まあそういうテストが必要なフェイズは確かにあるが、その前に自動テスト入れるべきではある。

485:デフォルトの名無しさん
21/02/19 19:33:50.76 RipgTCDE.net
>>478
どちらにしろ手動テストするなら
全部、手動テストでやっても同じ
テスト時間も変わらない
と思ってるらしいよw

486:デフォルトの名無しさん
21/02/19 20:27:04.98 ACLJAhWF.net
>>476
URLの闇が深すぎて怖い

487:デフォルトの名無しさん
21/02/19 20:45:17.65 B4GlCKY0.net
>>473
Ruby on Rails では、minitest/RSpec という2種類のテストフレームワークがある。
単体/システムテストの2つある
Rails 6 からは、環境を丸ごとコピーして、並列テストもできる
TDD では、テストが仕様書。
Excel で管理したりしない

488:デフォルトの名無しさん
21/02/19 21:59:46.75 zJ55MHzK.net
>>454
それ扱うコードの質の違いが問題じゃないだろ
テストコードの変更が必要になるのは「頻繁に仕様が変わる」のが原因で当然手動テストでもテスト手順書の変更が必要になるだろ
根本がわかってなさ過ぎ

489:デフォルトの名無しさん
21/02/19 22:05:12.15 ACLJAhWF.net
>>481
おお、なんかスピード感あって楽しそうだな
TDDいいよね!本業の組み込み自社開発でも導入した
何で長年気が付かなかったのか不思議なレベル
この手のノウハウは組み込みより圧倒的にWebの方が進んでるから、俺にとっては上位レイヤーの開発ノウハウが新鮮に感じる

490:デフォルトの名無しさん
21/02/19 22:07:51.51 uYMrqqBZ.net
やっぱり単体テストでそこまで用意する意味ねぇって
時間がかかってるのデバイス周り出し及びじゃねぇよコレ

491:デフォルトの名無しさん
21/02/19 22:08:44.56 /Wn3Sj0O.net
結合入ってから頑張ろうよ

492:481
21/02/19 22:31:54.64 B4GlCKY0.net
伊藤淳一などが翻訳してる「Everyday Rails - RSpecによるRailsテスト入門」は有名な本
テストに関しては、ソニックガーデンの伊藤淳一の動画・Qiita などを読めばよい

493:デフォルトの名無しさん
21/02/20 00:24:53.76 pHrkUBl9.net
>>484
デバイスはモックを使いましょう
ソフトウェアのテストをするのに
本物のデバイスは必要ありません

494:デフォルトの名無しさん
21/02/20 01:40:17.33 LGEbkfhl.net
>>487
いや、それだとレスポンスも早過ぎるしリトライも起きないから何のテストにもなってない
あと何よりデバイス出ないから返ってきて欲しい値を手動で設定するとか苦痛過ぎる
ソフトでset○○って入れた値が次のget○○に反映されるみたいなとこまで作れないやろ

495:デフォルトの名無しさん
21/02/20 01:44:19.60 pHrkUBl9.net
何のためにモック使ってるんだ?
素人かなぁ
レスポンスの時間を自由に変えられるのがモックの利点だし
リトライする状態を自由に再現できるのもモックの利点だし
デバイスから帰ってきてほしい値を自由に設定できるのもモックの利点
うーん、わかってない人が、意味不明な答えをしてる状態だw
まずそもそもモックはお前が行った問題点を解決するための
ものだということを知りましょう

496:デフォルトの名無しさん
21/02/20 01:45:23.84 pHrkUBl9.net
まあ正確にはスタブだけどね
みんなごっちゃにして使ってるから俺もごっちゃにして使ってるw

497:デフォルトの名無しさん
21/02/20 01:48:18.86 mqOV0mvT.net
組み込みでは単体テストよりも実機テストが鬼門
どのプロジェクトでも最初は自動化を夢見ても、実現できたプロジェクトは少ない
自動化ぶん回してたら発熱して煙出てたり電源不足で再起動しちゃったり他の開発機器のノイズ拾ってコケまくったり・・・

498:デフォルトの名無しさん
21/02/20 01:54:30.04 MdDLRkGY.net
MartinFowlerのMocksAre n't Stubsなど、テストでのモックとスタブに関するさまざまな記事を
読みましたが、それでも違いはわかりません。モックvsスタブ=行動テストvs状態テストと言われ
ますし、ライフサイクルが違うと言われますが、それでも違いはわかりません。
先輩がいつもモックモックモック言うので、すこし嫌になりました。

499:デフォルトの名無しさん
21/02/20 02:12:02.30 pHrkUBl9.net
>>491
組み込みのハードの部分が多いのかソフトの部分が多いのか
ハードの部分が多いなら、そりゃソフトウェアのテストじゃなくてハードウェアのテストだ
だが組み込みでもソフトウェアは多いだろ?
そっちはハードウェアなしでテストできる
めんどくさいからソフトウェア部分も
ハードウェア使ってテストするんだよ
時間がかかってしょうがない
っていうのならソフトウェア部分も
ハードウェア使ってじゃないとテストできないのなら
そりゃそうだろうよとしかw

500:デフォルトの名無しさん
21/02/20 02:24:18.76 ZkUFennS.net
>>489
いやーやめた方がいい
値1つとってもそう単純じゃない
例えばある値を3.223から増加量0.005で7まで変化させたいと
その時6.997で装置は処理を止めましたと
これはソフトからしたらクソでも多分バグじゃねぇんだわ
じゃあ、増加量0.001にしたら7になるのかと?
今度は6.995で止まったと
まだ足せんじゃん足せよゴミカスと言いたいが
デバイスのハード的なもんを無理矢理デジタルに直してるようなのはこんなのが限界のときあるんだわ
精度も条件によって変わったりね
多分ハードの値って一つ一つこういう変な癖があって何でもかんでもうまくはいかないと思うよ
ってなるとやっぱり重要なのって結合なんだよね
デバイスと絡んだ値があるとこはすんなりいかないことが多い

501:デフォルトの名無しさん
21/02/20 02:32:10.26 mqOV0mvT.net
>>493
落ち着け、後半日本語めちゃくちゃだぞ・・・

502:デフォルトの名無しさん
21/02/20 02:33:03.30 56yjs2OO.net
>>494
それ実機でテストする段階にならないとわからないことなの?
COCOAみたいなのもあるし実機テストは必須だとは思うが
それ以前にインターフェース仕様に準じたテストしといたほうがよくない?

503:デフォルトの名無しさん
21/02/20 02:35:06.23 /l8xxO7y.net
>>496
そこに金くれる会社ねーな
よくあることだし
でもやってみないと具合がわからん

504:デフォルトの名無しさん
21/02/20 02:37:16.94 3iHtf1vt.net
>>492
マーチンさんはその記事を出すのが遅かったよねw
モックという言葉が広く普及してしまった後だった
rspec界隈?ではテストダブルという言葉を使って言葉を整理しようとしたが
一部でのみ使われて広く普及していない
俺的には、ダミーの値を返すオブジェクトがスタブ
スタブの反対はスパイで、スパイは呼び出された回数や引数を記録しておいて
あとで検証できるもの
スタブとスパイをあわせてモックとしたほうが良かった気がするな
世間的には、スタブ vs モック(スパイはモックの高機能版)と考えればいいよ
スパイは後から検証できるように便利なオブジェクトになってるが
モックはそんな機能がない、もしくは低機能。
だから「テスト対象のコード」から「モック」を呼び出した時に渡されたデータの検証ぐらいしかできない
またスパイもモックも結局はダミーの値を返さないとテスト対象は動かないので多くの場合スタブの機能も兼ねてる
スタブ・・・テスト対象がスタブを呼び出し、スタブはダミーの値を返すだけ
モック・・・テスト対象がモックを呼び出し、その内容をテストする+スタブ(必須ではないが多くの場合必要)
スパイ・・・テスト対象がスパイを呼び出し、その内容を記録しておいて後からテストする+スタブ(必須ではないが多くの場合必要)
テストダブル・・・上記の総称

505:デフォルトの名無しさん
21/02/20 02:41:28.39 WavZWbYg.net
>>494
> いやーやめた方がいい
やめた方がいい理由は?
> 値1つとってもそう単純じゃない
> 例えばある値を3.223から増加量0.005で7まで変化させたいと
> その時6.997で装置は処理を止めましたと
> これはソフトからしたらクソでも多分バグじゃねぇんだわ
バグじゃないなら、その値でテストするだけのこと
お前は、6.997でテストしたか? 6.995でテストしたか?
してないよな。だって装置が都合よくそんな値で止まってくれないんだから
ハードウェアを使って手動でテストすると 6.995 や 6.997 で止めるのが難しいから
テストの時間がかかる。そういう場合にモックを使うと 6.995 や 6.997 の値を作り出すことができる
単体テストであればデバイスの値を自由に作ることができる

506:デフォルトの名無しさん
21/02/20 02:44:52.28 WavZWbYg.net
>>497
> でもやってみないと具合がわからん
やってみれば具合がわかるだろ
そしたらそれをテストコードにするだけだろ
おまえはやってみて、その場でコード修正して終わりか?
リグレッションテストはしないのか?当然するよな
別の機種のための修正が、別の機種で不具合を起こす場合
Aでうまく行かない→修正
Bでうまく行かなくなった→修正
Aでまたテストして→修正
Bでも大丈夫かな?→修正
って機種を何度も変更して、同じテストを何度も「手動」で繰り返すんだろ?
テストコードにしてれば、この繰り返しを
自動でできるって言ってるんだよ

507:デフォルトの名無しさん
21/02/20 06:09:56.09 Mzr1Xumx.net
>>477
それ誰?

508:デフォルトの名無しさん
21/02/20 09:25:13.41 EvFy/+SD.net
>>499
ええ、いくつ値あると思ってんねん
その一つ一つにデバック用動作つけんの?無理っしょ?

509:デフォルトの名無しさん
21/02/20 09:49:08.60 xSEyIqRP.net
>>502
はっきり言えよ。たくさん値があって大変だから
手動テストではテストしませんって
テストしてないんだろ?いくつ値あると思ってんねん(笑)

510:デフォルトの名無しさん
21/02/20 09:55:55.93 O4DpQFuV.net
クソコードとは何か

511:デフォルトの名無しさん
21/02/20 10:00:30.75 xSEyIqRP.net
テストが手動でテストをするのに膨大な時間がかかるコード

512:デフォルトの名無しさん
21/02/20 10:03:35.37 EvFy/+SD.net
>>503
え?モックとか言うやつの話っしょ?

513:デフォルトの名無しさん
21/02/20 10:04:35.86 EvFy/+SD.net
むしろこういう複雑な動作されるのはそもそも単体じゃないじゃん

514:デフォルトの名無しさん
21/02/20 10:06:03.68 xSEyIqRP.net
>>506
だからお前はモックを使わないで
全部手動で膨大な時間をかけてやるんだって話してるんでしょ?
あ、テストしてないんだっけ?w
プロの仕事じゃないなぁ

515:デフォルトの名無しさん
21/02/20 10:07:47.77 xSEyIqRP.net
>>507
複雑なのはたくさん値があってその組み合わせが膨大だから
手動テストも、その組み合わせをテストしないといけない
時間がかかって現実的だからテストしないって言ってる?
手動テストはテストをしないこと・・・意味がわからんw

516:デフォルトの名無しさん
21/02/20 10:24:31.88 MdDLRkGY.net
>>498
ありがとうございます。だけどプロトコルバッファーなどgRPCで生成されるコードにもStubって使うので
もう全部Stubで広義的にはいいじゃんって思います。付加機能があったり、ライフサイクルが複雑であって
テストコードの話に限定できてメインソースじゃない単語だと「モック」と言われてるような気もします。
先輩が見てるといけないので、先輩が嫌いな訳じゃないです、モックモックモックいうのはイライラするので
やめてほしいです。ここで「手動テストは○○○(否定表現)」を連呼する人が先輩に似てます。

517:デフォルトの名無しさん
21/02/20 10:32:54.85 xSEyIqRP.net
「手動テストは時間がかかる」
これは否定表現じゃないからセーフだなw

518:デフォルトの名無しさん
21/02/20 10:37:02.86 MdDLRkGY.net
もうこの際だからハッキリ言うと、先輩、それ誰も知ってるから鬼の首を取ったように言われても
ぼくらは困惑ばかりです。正直ウザいです。みんなから嫌われてます

519:デフォルトの名無しさん
21/02/20 10:49:31.96 EvFy/+SD.net
でもそこまで作って尚まだ単体テストなんだぜソレw
ぜってーねーよw
もう繋げてテストしようよw
無駄だよw

520:デフォルトの名無しさん
21/02/20 10:51:50.41 xSEyIqRP.net
なんだ?今まであれだけ言い返してたのに
今度は何も言い返してないではないかw

521:デフォルトの名無しさん
21/02/20 10:56:54.38 NUXXCfLF.net
キチガイの巣窟スレ

522:デフォルトの名無しさん
21/02/20 13:03:05.75 226xMBL/.net
もう流れ追うのも面倒になってる奴多いやろこれw
当人同士は必死になっちゃってるんで引けないだろうけど
あとワイの研究結果を勝手に報告するで(`・ω・´)キリッ
適当なソースが思い浮かばなかったんでopenjdkのソースを調査したよ
$ grep --include='*.java' -hroE "new +[^<\( \[]+" jdk-master/src | sed -E 's/new +//g' | sort | uniq -c | sort -nr | head -n 30
5039 String
4884 IllegalArgumentException
3231 Object
3099 ArrayList
2465 byte
2186 int
1718 HashMap
1563 IOException
1548 StringBuilder
1513 UnsupportedOperationException
1465 NullPointerException
1263 RuntimeException
1170 IllegalStateException
976 HashSet
  :(以下略)
結論:Stringクラスはワイ理論ではもっとも再利用性の有る優れたクラス

523:デフォルトの名無しさん
21/02/20 13:04:05.48 226xMBL/.net
一応参考までに省略部分も張っとくわ
924 InternalError
886 {@code
755 XColor
742 AssertionError
737 Dimension
710 char
697 Rectangle
632 instance
610 File
594 value
486 DerOutputStream
466 Vector
436 double
408 PrivilegedAction
394 InvalidKeyException
393 Label

524:デフォルトの名無しさん
21/02/21 19:53:59.50 10q0ACVq.net
誰か突っ込んでやれよ

525:デフォルトの名無しさん
21/02/21 21:30:03.47 IppcSdfg.net
再利用できないコードの特徴
・凝集度が低い
・結合度が高い
この2つがセットだと、自分が使いたい機能に対して無関心な知識まで要求される
そういうのがクソコードの筆頭だと思う
Stringは、上手く実装されている例だな

526:デフォルトの名無しさん
21/02/22 00:29:45.74 nzCnkmXH.net
もしかして文字列出力が多いソフトウェアだと文字列クラスの利用が多くなるんじゃないか?
そうでなくとも5000個の文字列が各所に散らばってるんだろ
どうやって文章を管理して辻褄合わせるんだよ

527:デフォルトの名無しさん
21/02/22 00:48:41.83 ESOE+x1C.net
まずさ
別に出来がいいから使ってるわけじゃ無いだろ?
クラスの造りが優秀なのとソースで使用回数が多いことに関連がそんなねぇよ
業務アプリだったらLogってのが簡単にStringをぶっちぎるのなんて簡単に想像できる

528:デフォルトの名無しさん
21/02/22 01:24:32.76 FgGbi9an.net
あれ?手動テストの話終わったの?
もっと罵り合えよつまんねーな

529:デフォルトの名無しさん



530:age
最後はこれでおしまい >>507 複雑なのはたくさん値があってその組み合わせが膨大だから 手動テストも、その組み合わせをテストしないといけない 時間がかかって現実的だからテストしないって言ってる? 手動テストはテストをしないこと・・・意味がわからんw



531:デフォルトの名無しさん
21/02/22 02:33:01.98 ESOE+x1C.net
いや、流石にハードの動作知らんやつが設定値7に対して6.997で止まることを想定できんやろ
どんな組み合わせをやっても無理なはずやで
テキトーなことを言うな

532:デフォルトの名無しさん
21/02/22 02:59:19.84 Vv8+u1qd.net
>>524
ハードの動作知らんやつが手動でテストしても
何の解決もしないけど?頭大丈夫か?

533:デフォルトの名無しさん
21/02/22 03:09:12.22 PA6Gvk4i.net
ここまでをまとめると、自動テストは暇なら書く程度の価値
って事でおk?

534:デフォルトの名無しさん
21/02/22 05:42:49.54 Vv8+u1qd.net
手動テストに膨大な時間がかかるので
自動化してもっと価値が高いことに時間を使いましょうって話だよ

535:デフォルトの名無しさん
21/02/22 05:49:19.42 PA6Gvk4i.net
手動テストに膨大な時間なんかかからないと思うんだが
そもそも
その時間まで積んだうえの開発コストだと思うんだが

536:デフォルトの名無しさん
21/02/22 06:03:54.54 2p9yrjmm.net
コロナウイルス→鳥インフルH5N8→人
もうダメだな、鶏肉も食えない

537:デフォルトの名無しさん
21/02/22 06:23:03.40 Vv8+u1qd.net
>>528
俺が作ってる1万行程度のツールはテスト項目数が1000個以上ある
この項目数は多いというほどのものでもないだろう
このテストを全て自動的に実行する時間はに30秒程度
もし手動で実行するなら1つあたり10秒で終わらせられたとしても
1万秒、300倍以上もの時間がかかっている
1万秒といったら、2時間半以上にもなる
開発しながらテストとかやってられないレベル
大きなシステムではテスト項目数は数万、数十万にもなるから
テストに数日かかる。コードを修正するたびにそんな事やってられないから
手動テストはテストをサボることになる

538:デフォルトの名無しさん
21/02/22 06:34:50.69 PA6Gvk4i.net
>>530
毎回やる必要のないテストばかりだろ?

539:デフォルトの名無しさん
21/02/22 06:38:20.47 Vv8+u1qd.net
> その時間まで積んだうえの開発コストだと思うんだが
開発コストは低い方がいいだろ?
そうすりゃ請求金額の多くを儲けにできる
1ヶ月かかる仕事を効率化して1週間でできるようにしたから
販売金額も1/4でいいですよなんて、技術料ゼロの儲けが出ない
ビジネスモデルで仕事してるなら可哀想としか言うしかないがなw

540:デフォルトの名無しさん
21/02/22 06:40:44.17 Vv8+u1qd.net
>>531
毎回やらなくていいとはどうやって判断したのか?
いつも想定してない所でバグが出るもんだ
コミットのたびにCIで全テストをするのは当たり前
ローカルでは一部のテストだけを行えばいいが
CIで自動的に全テストを行うのは普通の話だ
そこまでの高い信頼性を手動テストでやってるか?

541:デフォルトの名無しさん
21/02/22 06:41:49.22 PA6Gvk4i.net
自動テストで完結しないのに、議論に値しないだろ

542:デフォルトの名無しさん
21/02/22 06:42:47.10 Vv8+u1qd.net
>>534
論点はどれだけ時間を減らせるかだ
手動でしかできない部分だけ手動でやる
自動でできる部分も含めて全部手動でやる
どちらが時間がかかるか言うまでもないな

543:デフォルトの名無しさん
21/02/22 06:42:57.10 PA6Gvk4i.net
自動テストはヒマなら書くレベルの価値しかない

544:デフォルトの名無しさん
21/02/22 06:43:52.26 Vv8+u1qd.net
>>536
話し終わってねーだろw
手動テストが時間がかかるという話が出た途端
なぜそれまでの話をなかった事にするんだ?www

545:デフォルトの名無しさん
21/02/22 06:45:01.26 PA6Gvk4i.net
自動テスト書くくらいなら他の仕事やれよ
単価テスターの6倍とかなんだから

546:デフォルトの名無しさん
21/02/22 06:45:38.77 Vv8+u1qd.net
>>538
ならテスターが自動テスト書けばいいだろwww

547:デフォルトの名無しさん
21/02/22 06:46:59.64 PA6Gvk4i.net
>>539
それはアリ、でもそんな現場は無い

548:デフォルトの名無しさん
21/02/22 06:48:25.53 Vv8+u1qd.net
>>540
類は友を呼ぶってことだよw
自動テストがあるプロジェクトはたくさんある

549:デフォルトの名無しさん
21/02/22 06:48:33.24 PA6Gvk4i.net
プログラム分からないほうがテスターとして価値ある
時々すごい操作するし

550:デフォルトの名無しさん
21/02/22 06:49:22.93 PA6Gvk4i.net
メンテしなくなる自動テストのエレジー

551:デフォルトの名無しさん
21/02/22 06:51:06.89 PA6Gvk4i.net
もう丸1年くらいテストコード見てない

552:デフォルトの名無しさん
21/02/22 06:51:42.66 Vv8+u1qd.net
はい、手動テストの方が時間がかかるって
結論をそらし始めましたよw

553:デフォルトの名無しさん
21/02/22 06:51:53.08 PA6Gvk4i.net
ヒマなら書いたほうが良いのは認めてる

554:デフォルトの名無しさん
21/02/22 06:52:54.59 PA6Gvk4i.net
社員じゃないんで書きたくないというのもある

555:デフォルトの名無しさん
21/02/22 06:53:42.35 wMwiRJvv.net
自動テスト書いた方が早いことは自動テスト書きながら開発してるやつなら分かると思うんだ

556:デフォルトの名無しさん
21/02/22 06:54:15.04 PA6Gvk4i.net
エンドが書けば良いと思うんだが・・オナニーと大して変わらないんだから

557:デフォルトの名無しさん
21/02/22 06:57:07.17 PA6Gvk4i.net
SwaggerとかでAPI自動生成される場合は書いたほうが良いな

558:デフォルトの名無しさん
21/02/22 06:58:12.31 Vv8+u1qd.net
自動テストを書く時間まで積んだうえの開発コストだと思うんだが?w
手動でテストをすると、その開発コストが大きくかかる

559:デフォルトの名無しさん
21/02/22 06:59:23.38 PA6Gvk4i.net
手動テスト要らないプロジェクトを知らない

560:デフォルトの名無しさん
21/02/22 07:00:39.66 Vv8+u1qd.net
手動テスト要らないなんて一言も言ってないよな
自動テストを書く時間まで積んだうえの開発コスト
全部手動でテストをすると、その開発コストが大きく跳ね上がる

561:デフォルトの名無しさん
21/02/22 07:02:05.20 PA6Gvk4i.net
>>553
そんな事ない、テスト観点の洗い出しが変なだけ

562:デフォルトの名無しさん
21/02/22 07:03:27.97 Vv8+u1qd.net
>>554
テスト観点の洗い出しが良くなれば
同じ件数のテストを手動で早く実行できるという
理由を言ってみて
手動テスト要らないなんて一言も言ってないよな
自動テストを書く時間まで積んだうえの開発コスト
全部手動でテストをすると、その開発コストが大きく跳ね上がる

563:デフォルトの名無しさん
21/02/22 07:04:10.61 PA6Gvk4i.net
テストコードの保守工数より手動テストしたほうが確実

564:デフォルトの名無しさん
21/02/22 07:04:42.42 PA6Gvk4i.net
>>555
自分で考えろ

565:デフォルトの名無しさん
21/02/22 07:05:28.58 Vv8+u1qd.net
やっぱり話をすり替えようとしていただけだったかw

566:デフォルトの名無しさん
21/02/22 07:06:08.80 Vv8+u1qd.net
具体例
俺が作ってる1万行程度のツールはテスト項目数が1000個以上ある
この項目数は多いというほどのものでもないだろう
このテストを全て自動的に実行する時間はに30秒程度
もし手動で実行するなら1つあたり10秒で終わらせられたとしても
1万秒、300倍以上もの時間がかかっている
1万秒といったら、2時間半以上にもなる
開発しながらテストとかやってられないレベル
大きなシステムではテスト項目数は数万、数十万にもなるから
テストに数日かかる。コードを修正するたびにそんな事やってられないから
手動テストはテストをサボることになる

567:デフォルトの名無しさん
21/02/22 07:07:12.30 PA6Gvk4i.net
いちいち理由を聞くな、ここは自分考えだけを言って
ストレス解消する便所の落書きだ

568:デフォルトの名無しさん
21/02/22 07:08:35.98 Vv8+u1qd.net
まあ手動のテストで1つあたり10秒って書いたけど
普通そんな時間で終わらせられないよなw
事前準備の手順があって結果のデータを見比べて
画面を注意深く観察してスクショとって
チェック表にチェック入れるんだろ?
1分でも短いかな?

569:デフォルトの名無しさん
21/02/22 07:08:55.27 Vv8+u1qd.net
>>560
お前がストレス解消のために書いてるってことはわかったよw

570:デフォルトの名無しさん
21/02/22 07:08:56.10 PA6Gvk4i.net
暇ならテスト書いていいんじゃない

571:デフォルトの名無しさん
21/02/22 07:10:09.10 Vv8+u1qd.net
暇だからという理由で手動テストをしてたのか?
手動テストをやめれば暇になるぞwww

572:デフォルトの名無しさん
21/02/22 07:10:31.54 PA6Gvk4i.net
開発工数30日とかテストなんか書けるかハゲ

573:デフォルトの名無しさん
21/02/22 07:11:40.21 Vv8+u1qd.net
>>565
だからテストしないと?
プロの仕事じゃないな

574:デフォルトの名無しさん
21/02/22 07:11:58.72 PA6Gvk4i.net
巷には短納期かつトラブル案件だらけ

575:デフォルトの名無しさん
21/02/22 07:12:33.00 Vv8+u1qd.net
そして短納期かつトラブル案件は自動テストがない
なるほどなw

576:デフォルトの名無しさん
21/02/22 07:12:50.79 PA6Gvk4i.net
悠々とテストコード書ける案件やりたいな

577:デフォルトの名無しさん
21/02/22 07:13:46.16 Vv8+u1qd.net
テストコード書く時間がないなら
それよりももっと時間がかかる手動テストやれるわけがないので
テストサボってるだけなんだろうな

578:デフォルトの名無しさん
21/02/22 07:14:21.10 PA6Gvk4i.net
テストコード工数を認めてもらえる案件やりたいな
もう単体テストはエンドでやる、みたいなのばっかり

579:デフォルトの名無しさん
21/02/22 07:15:19.40 PA6Gvk4i.net
そして仕様変更が来る

580:デフォルトの名無しさん
21/02/22 07:16:26.70 PA6Gvk4i.net
エージェントが20%とか抜いてるからエンドがコストにシビアすぎる

581:デフォルトの名無しさん
21/02/22 07:18:04.08 Vv8+u1qd.net
自動テストがないプロジェクトは短納期かつトラブル案件らしいw

582:デフォルトの名無しさん
21/02/22 07:18:22.62 PA6Gvk4i.net
もう60日以上の案件久しくやってないな

583:デフォルトの名無しさん
21/02/22 07:18:33.25 Vv8+u1qd.net
プロジェクトの炎上具合を測れるな
自動テストがないプロジェクトは短納期かつトラブル案件

584:デフォルトの名無しさん
21/02/22 07:19:07.55 PA6Gvk4i.net
自動テストとか暇な案件が羨ましいわ

585:デフォルトの名無しさん
21/02/22 07:19:23.92 Vv8+u1qd.net
自動テストを書いてないやつは、60日以上の案件をやらせてもらえないらしい

586:デフォルトの名無しさん
21/02/22 07:20:34.85 PA6Gvk4i.net
自動テストあるのにメンテしてなくて炎上するケースが50%くらいある
ずっと自動テスト工数割いてくれよ

587:デフォルトの名無しさん
21/02/22 07:21:38.82 PA6Gvk4i.net
60日以上の案件がほぼ無い

588:デフォルトの名無しさん
21/02/22 07:22:34.66 PA6Gvk4i.net
120日半年くらいあればなぁ

589:デフォルトの名無しさん
21/02/22 07:22:48.08 IPejWs3O.net
>>533
最近の単体テストツールは影響がないテストコードを実行しないものが多くある

590:デフォルトの名無しさん
21/02/22 07:23:43.26 PA6Gvk4i.net
他人の書いたテストコードのメンテが辛いのは分かる

591:デフォルトの名無しさん
21/02/22 07:27:46.33 PA6Gvk4i.net
メソッドを今流にメンテしたらテストコード通らないからギリギリまでママにされていて大規模改修とかやめてくれ

592:デフォルトの名無しさん
21/02/22 07:29:23.41 PA6Gvk4i.net
テストを直すのがめんどくさい時が多々ある
やめてくれ

593:デフォルトの名無しさん
21/02/22 07:52:25.48 PA6Gvk4i.net
テストコードとか書かないに限るな

594:デフォルトの名無しさん
21/02/22 08:29:30.69 UqVKWzXS.net
平日にID真っ赤にする手動テストおじさんはNGしとけ
無視して俺らと会話しようぜ
仕事してるからレスは少なくなるけど

595:デフォルトの名無しさん
21/02/22 18:49:35.65 /OsI7R0n.net
本日の職場で見たクソコード
class MainActivity implement 機能Aインタフェース, 機能B,インタフェース 機能Cインタフェース...機能Mインタフェース{
}
なんで12個のインタフェース継承してるの?
円卓の騎士かな?
Androidで発生するイベント全部、1個のアクティビティに継承して実装するのやめてください実装者が死んでしまいます

596:デフォルトの名無しさん
21/02/22 19:43:16.58 FCcJxvZt.net
それはクソコードと言うよりクソ設計だろ

597:デフォルトの名無しさん
21/02/22 22:40:13.49 hhtkxh8a.net
クソコード兼クソ設計だな

598:デフォルトの名無しさん
21/02/23 13:35:47.17 q1iKZVvs.net
>>587
なんか話せよ

599:デフォルトの名無しさん
21/02/23 13:39:35.37 q1iKZVvs.net
>>559
そのテストコード書くのにかかった時間は仕様変更によりすべて無駄になる世界があるんよ、君はまだ世界の広さを知らない

600:デフォルトの名無しさん
21/02/23 14:42:48.42 iu17pC6m.net
>>592
仕様変更によりテスト手順書が全て無駄になる世界はないのか?w

601:デフォルトの名無しさん
21/02/23 16:14:44.38 5BmsWjYf.net
こいついっつもテストする時間のことを無視するよなw
テストコードを書く vs テストコードを書かないでしか比べてない
それよりも重要な何度も行うテストの時間を持ち出されたら困るのだろうな
手動で数回テストをするだけであっという間に開発コストが数倍に跳ね上がる

602:デフォルトの名無しさん
21/02/23 16:23:12.42 xxo3T1mG.net
テスト書くのめんどくさいんで俺が抜けた後のやつに任せるわ

603:デフォルトの名無しさん
21/02/23 16:58:13.53 8QyPv/It.net
テストコード1回書く間に手動テスト5回はできそうなんだが?
んで1回テスト通したら次の変更までやんねーよな?

604:デフォルトの名無しさん
21/02/23 17:21:41.87 0iI/BmGY.net
ここまでをまとめると、テストコードはSWAGGERとかで自動生成される部分のみでおk?

605:デフォルトの名無しさん
21/02/23 17:21:54.85 iu17pC6m.net
>>596
それ、テスト手順書書く時間入れてなくね?

606:デフォルトの名無しさん
21/02/23 17:48:25.42 q1iKZVvs.net
>>593
テスト手順書なんて作るん?

607:デフォルトの名無しさん
21/02/23 17:49:26.31 q1iKZVvs.net
>>598
テスト手順書って何?

608:デフォルトの名無しさん
21/02/23 17:50:39.14 q1iKZVvs.net
仕様変更があるのは手順書作る前だから問題ないのさ、でもテストコードは無駄の極み底辺コーダーの自己満なのさ

609:デフォルトの名無しさん
21/02/23 17:51:03.33 q1iKZVvs.net
>>597
オーケー

610:デフォルトの名無しさん
21/02/23 17:53:11.25 q1iKZVvs.net
ユニットテスト100回回すより総合テスト1回の方が品質高まる、実装ミスなんて現代のプログラミング環境では無視できる

611:デフォルトの名無しさん
21/02/23 18:07:19.13 5BmsWjYf.net
>>596
> テストコード1回書く間に手動テスト5回はできそうなんだが?
たった5回って少なすぎだろw
バグ5個見つかったらそれで終わりじゃん

612:デフォルトの名無しさん
21/02/23 18:33:09.14 0iI/BmGY.net
flutterとかJITでガンガン テスト→修正→リファクタリング を繰り返すからテストコード要らないんだよね。

613:デフォルトの名無しさん
21/02/23 19:03:27.43 5BmsWjYf.net
>>605
Flutter標準のやり方でテストしてるってことかな?
どの方法を使ってるの?
Testing Flutter apps
URLリンク(flutter.dev)
Automated testing falls into a few categories:
- A unit test tests a single function, method, or class.
- A widget test (in other UI frameworks referred to as component test) tests a single widget.
- An integration test tests a complete app or a large part of an app.


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch