このスレはクソコードとは何かを考えるスレです。
・親クラスが子クラスに依存する処理を持つコード
例...社員クラスを継承した正社員クラスと派遣社員クラスがあり、社員クラスが正社員クラスの知識を持つ状況
・staticにするべきではないモデルにまでstaticにする人
例...社員クラスのメソッドを全てstaticにしたり、社員クラスにシングルトンパターンに相応するものを適用する人
等、クソコードを見た時に「あっ、これクソコードだ」って認識する根拠を挙げていきましょう。
探検
クソコードとは何か
■ このスレッドは過去ログ倉庫に格納されています
2021/01/30(土) 17:33:05.78ID:BjNTZWUI
378デフォルトの名無しさん
2021/02/18(木) 01:13:10.82ID:uiIjzHNM379デフォルトの名無しさん
2021/02/18(木) 01:13:51.03ID:unHOG45Z >>374
は?それが正しいかどうかは仕様書見ないとわからないだろ?
仕様書とテストコードとコード見るんやな
なんか無駄じゃねぇの?
仕様書とコード見るだけでよくね?
なんでテストコード書く必要あったんだっけ?
は?それが正しいかどうかは仕様書見ないとわからないだろ?
仕様書とテストコードとコード見るんやな
なんか無駄じゃねぇの?
仕様書とコード見るだけでよくね?
なんでテストコード書く必要あったんだっけ?
380デフォルトの名無しさん
2021/02/18(木) 01:15:16.04ID:unHOG45Z そもそも仕様書とコードを見比べてどうして正しいかわからないんだっけ?
381デフォルトの名無しさん
2021/02/18(木) 01:15:18.95ID:uiIjzHNM >>377
> 「普通、一つのコミットの中にテストコードと実装コードが含まれる」間違い、0点です。
ん?証拠を持ってくればいいわけ?
例なんていくらでもあるけど、一つのコミットの中にテストコードと実装コードが含まれてます。
https://github.com/facebook/react/pull/20813/files
> 「普通、一つのコミットの中にテストコードと実装コードが含まれる」間違い、0点です。
ん?証拠を持ってくればいいわけ?
例なんていくらでもあるけど、一つのコミットの中にテストコードと実装コードが含まれてます。
https://github.com/facebook/react/pull/20813/files
382デフォルトの名無しさん
2021/02/18(木) 01:15:52.08ID:unHOG45Z >>381
ウィルス
ウィルス
383デフォルトの名無しさん
2021/02/18(木) 01:16:06.06ID:uiIjzHNM384デフォルトの名無しさん
2021/02/18(木) 01:16:36.10ID:uiIjzHNM >>382
そうだよね。そうやって嘘を付くしかないもんねw
そうだよね。そうやって嘘を付くしかないもんねw
385デフォルトの名無しさん
2021/02/18(木) 01:17:07.59ID:unHOG45Z >>383
え?それは仕様書通りって意味でないとビジネスで役に立たないよね?
え?それは仕様書通りって意味でないとビジネスで役に立たないよね?
386デフォルトの名無しさん
2021/02/18(木) 01:17:45.50ID:unHOG45Z 自動テストでどうやって仕様書通りかどうかわかるの?
387デフォルトの名無しさん
2021/02/18(木) 01:18:14.28ID:unHOG45Z お前のテストコードがクソコードだったら終わりじゃん
388デフォルトの名無しさん
2021/02/18(木) 01:20:25.65ID:unHOG45Z さっきからなんの正しい説明にもなってないじゃん
自動テストも手動テストも仕様書通りかどうかテストすんだろ
何度も言わせるなクソが
自動テストも手動テストも仕様書通りかどうかテストすんだろ
何度も言わせるなクソが
389デフォルトの名無しさん
2021/02/18(木) 01:27:53.27ID:GR+auC/2 >>381
js系の人ですか(笑)reactの場合、ver17.0.0になってもissueのOpen数が500あります。明らかにデグレを
生んでいますが、issueのClose数も1万近くです。テストが完璧だとどうやって担保しているでしょうか?(笑)
リリース数は数えたら137回です
js系の人ですか(笑)reactの場合、ver17.0.0になってもissueのOpen数が500あります。明らかにデグレを
生んでいますが、issueのClose数も1万近くです。テストが完璧だとどうやって担保しているでしょうか?(笑)
リリース数は数えたら137回です
390デフォルトの名無しさん
2021/02/18(木) 01:35:12.01ID:GR+auC/2 >>381
ん?ショーコですか?誰もそんな事言ってないと思いますが?w
参考までにそのコミットの1つ前にはテストコードが含まれてませんが?w2つ前も含まれてませんw
対象コードはCIのコードですがwよくあるFix typo も多くはテストコードとやらは含まれませんね。
ん?ショーコですか?誰もそんな事言ってないと思いますが?w
参考までにそのコミットの1つ前にはテストコードが含まれてませんが?w2つ前も含まれてませんw
対象コードはCIのコードですがwよくあるFix typo も多くはテストコードとやらは含まれませんね。
391デフォルトの名無しさん
2021/02/18(木) 01:55:43.96ID:GR+auC/2 >>387
”「書いてあるとおりに正しくテストしたことが自動テストならわかる」って言ってるだろ ”
上の方を見ても1回もそんな事はいってませんね・・・それと、日本語の区切りがおかしいので
直しておきました。「書いてあるとおりに正しくテストした」これを一言で言えばオナニー猿です。
逃げてしまったのか
”「書いてあるとおりに正しくテストしたことが自動テストならわかる」って言ってるだろ ”
上の方を見ても1回もそんな事はいってませんね・・・それと、日本語の区切りがおかしいので
直しておきました。「書いてあるとおりに正しくテストした」これを一言で言えばオナニー猿です。
逃げてしまったのか
392デフォルトの名無しさん
2021/02/18(木) 06:37:17.08ID:EVRbmhyV >>327
はいはい、どうしようもない現実を知らないとか幸福な人生で何よりですw
はいはい、どうしようもない現実を知らないとか幸福な人生で何よりですw
393デフォルトの名無しさん
2021/02/18(木) 06:54:09.45ID:qR1rH4Mn テストの内容(文章 or コード)が、仕様書通りかは、手動テストも自動テストもわからない
この勝負はドロー(引き分け)
テストの内容(文章 or コード)が仕様書通り正しいと仮定する
手動テストは、テストの内容を正しく実行したとは限らないが
自動テストであれば、テストの内容を正しく実行したことが保証される
なぜならコードは書いたとおりに動くから
この勝負は自動テストの勝ち
この勝負はドロー(引き分け)
テストの内容(文章 or コード)が仕様書通り正しいと仮定する
手動テストは、テストの内容を正しく実行したとは限らないが
自動テストであれば、テストの内容を正しく実行したことが保証される
なぜならコードは書いたとおりに動くから
この勝負は自動テストの勝ち
394デフォルトの名無しさん
2021/02/18(木) 07:11:33.36ID:K1XgX+kk395デフォルトの名無しさん
2021/02/18(木) 08:22:53.92ID:qR1rH4Mn >>394
テストコードのテストというのは意味不明
お前の理屈だと、テストのテストが必要になるだろ
テストのテストのテストも必要になるだろ
アホらしい
テストコードに必要なのはコードレビュー
テストコードのレビューが必要なように
テスト実行手順書のレビューも必要
この勝負はドロー
そしてテストコードのレビューがOKだった場合
書いてあるテストコードの通りテストは行われるが
テスト実行手順書のレビューがOKでも
手動でテストすると、そのとおりにテストが行われるとは限らない
ということで、手動テストの負けになる
テストコードのテストというのは意味不明
お前の理屈だと、テストのテストが必要になるだろ
テストのテストのテストも必要になるだろ
アホらしい
テストコードに必要なのはコードレビュー
テストコードのレビューが必要なように
テスト実行手順書のレビューも必要
この勝負はドロー
そしてテストコードのレビューがOKだった場合
書いてあるテストコードの通りテストは行われるが
テスト実行手順書のレビューがOKでも
手動でテストすると、そのとおりにテストが行われるとは限らない
ということで、手動テストの負けになる
396デフォルトの名無しさん
2021/02/18(木) 10:15:13.26ID:64/LOwh9397デフォルトの名無しさん
2021/02/18(木) 10:27:02.08ID:PBViQ2A6398デフォルトの名無しさん
2021/02/18(木) 11:03:49.56ID:gOUQkM00 推奨するやつの頭が悪いから
テストの自動化自体も悪く見えるパターンだなこれ
ルビきちパターン
テストの自動化自体も悪く見えるパターンだなこれ
ルビきちパターン
399デフォルトの名無しさん
2021/02/18(木) 11:05:28.89ID:ZCTHPCfZ >>397
馬鹿筆頭の自覚無しw
馬鹿筆頭の自覚無しw
400デフォルトの名無しさん
2021/02/18(木) 11:40:46.00ID:Nx8G+5tf >>399
煽り耐性無さ過ぎ...
煽り耐性無さ過ぎ...
401デフォルトの名無しさん
2021/02/18(木) 11:49:50.78ID:nrHJXjYu スレの趣旨的にはむしろ>>305が正しい
402デフォルトの名無しさん
2021/02/18(木) 12:14:02.17ID:2k7+F3J5403デフォルトの名無しさん
2021/02/18(木) 12:21:36.18ID:2k7+F3J5 >>320の"再利用性の無いクラスは糞"でトライしてみたんだろうけどペラすぎて役に立たないから誰も反応しない
404デフォルトの名無しさん
2021/02/18(木) 12:27:34.11ID:nrHJXjYu そう?
むしろさり気なくanemic domainの話をしてる奴らがいたから、良スレの予感したのに一人の馬鹿が荒らした挙げ句に単体テストの必要性の有無とかいう低レベルスレになってがっかりしてる俺がここにいるけど?
内容がペラいってか、本当の経験者なら察せるし、一言二言から深堀すればいいのに
むしろさり気なくanemic domainの話をしてる奴らがいたから、良スレの予感したのに一人の馬鹿が荒らした挙げ句に単体テストの必要性の有無とかいう低レベルスレになってがっかりしてる俺がここにいるけど?
内容がペラいってか、本当の経験者なら察せるし、一言二言から深堀すればいいのに
405デフォルトの名無しさん
2021/02/18(木) 12:28:13.80ID:nrHJXjYu 単体テストの話で流れるせいで誰も手が出せん
何なら、隔離スレいる?
何なら、隔離スレいる?
406デフォルトの名無しさん
2021/02/18(木) 12:55:48.46ID:nrHJXjYu ペラいとか言うけど、そもそも>>320の言ってることわかる?
他人を批判する前に貴方の実力チェックがしたいのだが、なんで再利用できないクラスがクソなのかわかる?
他人を批判する前に貴方の実力チェックがしたいのだが、なんで再利用できないクラスがクソなのかわかる?
407デフォルトの名無しさん
2021/02/18(木) 14:03:58.21ID:d72Uy3wC408デフォルトの名無しさん
2021/02/18(木) 14:20:32.85ID:nrHJXjYu >>407
その考えとは?わからないから教えてくれや
その考えとは?わからないから教えてくれや
409デフォルトの名無しさん
2021/02/18(木) 14:52:32.67ID:nrHJXjYu >>407
まさか再利用できないクラスが普通だとか思ってる?流石にそれはレベル低すぎてその発想はなかったけど、そういうこと?
たのむから伝わるように文章を書いてくれ
お前の文章こそ情報量がない
あるのは相手にマウントを取ろうとする意気込みだけ
まさか再利用できないクラスが普通だとか思ってる?流石にそれはレベル低すぎてその発想はなかったけど、そういうこと?
たのむから伝わるように文章を書いてくれ
お前の文章こそ情報量がない
あるのは相手にマウントを取ろうとする意気込みだけ
410デフォルトの名無しさん
2021/02/18(木) 15:50:41.18ID:bN9e6Enp411デフォルトの名無しさん
2021/02/18(木) 15:59:27.62ID:nrHJXjYu412デフォルトの名無しさん
2021/02/18(木) 17:08:42.38ID:kV6+8waU まず再利用性とは何かをまるで理解していない
アプリ全体の一箇所でしかインスタンス化されないからといって再利用性が無いとは言わない
再利用には様々な形があるにもかかわらずインスタンス化される箇所の数という著しく狭い一つの側面だけしか見えていない
そもそもインスタンス化される箇所の数と、そのクラスがクソかどうかとは何の関係も無い
ないない尽くし
アプリ全体の一箇所でしかインスタンス化されないからといって再利用性が無いとは言わない
再利用には様々な形があるにもかかわらずインスタンス化される箇所の数という著しく狭い一つの側面だけしか見えていない
そもそもインスタンス化される箇所の数と、そのクラスがクソかどうかとは何の関係も無い
ないない尽くし
413デフォルトの名無しさん
2021/02/18(木) 17:23:27.31ID:kV6+8waU クラスの再利用性の度合いが低ければそのクラスがクソかと言えば全くそんなことは無い
クソがどうかは再利用性の度合いとは関係ない
クラスベースのOO言語を使ってるならどんなアプリでそのアプリ特有の処理はそのアプリの用途に特化したクラスで実現する
当然、一般的に言うところのクラスとしての再利用性は無い
それだけでクソだと言い出したらGoogleが作るものでもMSが作るものでも世の中のアプリはほぼ全てクソの塊
クソがどうかは再利用性の度合いとは関係ない
クラスベースのOO言語を使ってるならどんなアプリでそのアプリ特有の処理はそのアプリの用途に特化したクラスで実現する
当然、一般的に言うところのクラスとしての再利用性は無い
それだけでクソだと言い出したらGoogleが作るものでもMSが作るものでも世の中のアプリはほぼ全てクソの塊
414デフォルトの名無しさん
2021/02/18(木) 17:49:20.06ID:HwjlNY0O ジョブがやたら多いシステムきつい
415デフォルトの名無しさん
2021/02/18(木) 17:53:10.20ID:EQNcYV6O >>413
> クラスベースのOO言語を使ってるならどんなアプリでそのアプリ特有の処理はそのアプリの用途に特化したクラスで実現する
> 当然、一般的に言うところのクラスとしての再利用性は無い
そんなの当たり前じゃん
殺人事件が起きて殺人は駄目だと訴える遺族の前で死刑囚は殺してはいけないと言うのか?とか言い出すようなもの
それくらい察してやれ
> クラスベースのOO言語を使ってるならどんなアプリでそのアプリ特有の処理はそのアプリの用途に特化したクラスで実現する
> 当然、一般的に言うところのクラスとしての再利用性は無い
そんなの当たり前じゃん
殺人事件が起きて殺人は駄目だと訴える遺族の前で死刑囚は殺してはいけないと言うのか?とか言い出すようなもの
それくらい察してやれ
416デフォルトの名無しさん
2021/02/18(木) 17:59:21.72ID:EQNcYV6O って、アプリ特有ってまさか業務特有の処理とかじゃないよな?
フレームワーク特有だったらわかるけど
フレームワーク特有だったらわかるけど
417デフォルトの名無しさん
2021/02/18(木) 18:07:15.94ID:TPOb/Xi+ 組込してるけど、USBクラス、SDカードクラスのインスタンス化が封じられていて、しかもUSBクラスの中にMCUのポートに依存する処理が書かれてたらクソだと思う
なんで、回路構成変わるたびにいちいちUSBのロジックを実装しなきゃなんねーんだよクソがって言いたい
なんで、回路構成変わるたびにいちいちUSBのロジックを実装しなきゃなんねーんだよクソがって言いたい
418デフォルトの名無しさん
2021/02/18(木) 18:40:52.03ID:uVIafMoc419デフォルトの名無しさん
2021/02/18(木) 18:56:01.13ID:z09WEaLy トイレ行っていい?
420デフォルトの名無しさん
2021/02/18(木) 19:02:24.32ID:TPOb/Xi+ >>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
ご自由に
文面だと伝わりづらいと思うからコード書くけど
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
ご自由に
421デフォルトの名無しさん
2021/02/18(木) 19:30:22.47ID:unHOG45Z422デフォルトの名無しさん
2021/02/18(木) 20:13:35.08ID:qR1rH4Mn423デフォルトの名無しさん
2021/02/18(木) 20:54:43.88ID:Tudb2iMs >>420
インスタンス化しとるやーん
USBに共通する処理をコンポジションで切り出してれば1箇所の修正で済むよね
シングルトンにするメリットがある前提ならそのコードの形だけでクソコードだとは思わないな
インスタンス化しとるやーん
USBに共通する処理をコンポジションで切り出してれば1箇所の修正で済むよね
シングルトンにするメリットがある前提ならそのコードの形だけでクソコードだとは思わないな
424デフォルトの名無しさん
2021/02/18(木) 21:58:25.07ID:unHOG45Z425320
2021/02/18(木) 22:15:10.24ID:1R5qg2DM 反応してくれるやつがおっただけでも嬉しいわ(ヽ´ω`)
426デフォルトの名無しさん
2021/02/18(木) 22:24:23.85ID:1R5qg2DM >>412
ワイはそれをあると言っている
インスタンス化された個数こそがそのクラスの価値だと言っている
抽象クラスやインタフェースについてはこの主張では扱わない
アホらしいと思うのなら聞き流してくれていい
ワイはそれをあると言っている
インスタンス化された個数こそがそのクラスの価値だと言っている
抽象クラスやインタフェースについてはこの主張では扱わない
アホらしいと思うのなら聞き流してくれていい
427デフォルトの名無しさん
2021/02/18(木) 22:27:00.40ID:1R5qg2DM428デフォルトの名無しさん
2021/02/18(木) 22:30:19.90ID:1R5qg2DM429デフォルトの名無しさん
2021/02/18(木) 22:55:26.26ID:GanGg3no430デフォルトの名無しさん
2021/02/18(木) 23:10:12.48ID:1R5qg2DM ごめんね下のほうの意味が本来言いたかったこと
実行時のことは考えず単にコード上での評価
実行時のことは考えず単にコード上での評価
431デフォルトの名無しさん
2021/02/18(木) 23:35:55.78ID:lCP5Fc9O >>430
そうすると何か特殊な前提を置いてるかインスタンス化する箇所という言葉の定義が全く違うかだな
インスタンス化がnewしたりファクトリメソッドを呼ぶ事だとしたら
Webでもモバイルでもデスクトップでもコード上の1箇所でしかインスタンス化されないクラスが結構な割合で存在するほうが普通
わかりやすいところで言えばコントローラクラスやアプリケーションクラス
そうすると何か特殊な前提を置いてるかインスタンス化する箇所という言葉の定義が全く違うかだな
インスタンス化がnewしたりファクトリメソッドを呼ぶ事だとしたら
Webでもモバイルでもデスクトップでもコード上の1箇所でしかインスタンス化されないクラスが結構な割合で存在するほうが普通
わかりやすいところで言えばコントローラクラスやアプリケーションクラス
432デフォルトの名無しさん
2021/02/19(金) 02:02:43.04ID:C4/TpWTT >>420
USB io = USB.create(port1)で物理的なUSBが重複する可能性があり、排他制御が必要ならそうすると思うよ。
USB io = new USB(port1)で個別にインスタンス作って、マルチスレッド・マルチプロセスで動くなら必要ないけど
自然的なコンストラクタでメンバー変数は初期化されることに意味があるだけで、それ以外の構築初期化を
しようとしたらファクトリーメソッドが必要になる。もちろんnewの後にメンバーメソッドを毎回自分で
呼び出して初期化しても良いわけだけど、ま、言いたいことは確かに安易な設計でシングルインスタンスは
避けるべきだけど、近代的なクラス型の言語によるメンバーの隠蔽とファクトリーメソッドは無関係
USB io = USB.create(port1)で物理的なUSBが重複する可能性があり、排他制御が必要ならそうすると思うよ。
USB io = new USB(port1)で個別にインスタンス作って、マルチスレッド・マルチプロセスで動くなら必要ないけど
自然的なコンストラクタでメンバー変数は初期化されることに意味があるだけで、それ以外の構築初期化を
しようとしたらファクトリーメソッドが必要になる。もちろんnewの後にメンバーメソッドを毎回自分で
呼び出して初期化しても良いわけだけど、ま、言いたいことは確かに安易な設計でシングルインスタンスは
避けるべきだけど、近代的なクラス型の言語によるメンバーの隠蔽とファクトリーメソッドは無関係
433デフォルトの名無しさん
2021/02/19(金) 02:35:10.05ID:lLyiEvh3 >>424
> え?コードレビューの他にテストコードのレビューやるの?
当たり前だろ
お前コードレビューをするのは当然として、
お前、テスト手順書のレビューしないのか?
だからお前がやったテストはいつも抜けがあるんだろうがw
すいません、テストが漏れてましたじゃねーよ、いっつもいっつも
> え?コードレビューの他にテストコードのレビューやるの?
当たり前だろ
お前コードレビューをするのは当然として、
お前、テスト手順書のレビューしないのか?
だからお前がやったテストはいつも抜けがあるんだろうがw
すいません、テストが漏れてましたじゃねーよ、いっつもいっつも
434デフォルトの名無しさん
2021/02/19(金) 02:43:27.34ID:3DiTZZbV >>433
じゃあテストコードのテストもいるよね?
じゃあテストコードのテストもいるよね?
435デフォルトの名無しさん
2021/02/19(金) 02:59:07.17ID:lLyiEvh3436デフォルトの名無しさん
2021/02/19(金) 06:52:05.98ID:zJ55MHzK437デフォルトの名無しさん
2021/02/19(金) 07:43:49.70ID:tQjoVXv/438デフォルトの名無しさん
2021/02/19(金) 07:48:43.11ID:tQjoVXv/ 設計書
→コード→テスト
→テスト手順書→レビュー
で済むはずが
設計書
→コード→テスト
→テストコード
→レビュー
→テスト
になってるんだろ
テストコードがソースコードである以上テストしないわけにはいかんだろ
→コード→テスト
→テスト手順書→レビュー
で済むはずが
設計書
→コード→テスト
→テストコード
→レビュー
→テスト
になってるんだろ
テストコードがソースコードである以上テストしないわけにはいかんだろ
440デフォルトの名無しさん
2021/02/19(金) 08:24:00.57ID:IIFo83yT クソ言語とは
PHP、Swift、Python
JavaScriptも昔はかなりクソだったが完全に復活した
Obj-CはSwiftに取って代わられることは無かった、コード効率が良すぎる
PHP、Swift、Python
JavaScriptも昔はかなりクソだったが完全に復活した
Obj-CはSwiftに取って代わられることは無かった、コード効率が良すぎる
441デフォルトの名無しさん
2021/02/19(金) 08:51:26.62ID:f7HYpZpv >>438
レビューのあとの「テスト」ってビルドボタンを押す度に走るテストのこと?
それとと、gitとかにcommitする度に走るテストのこと?
作業をカテゴリ分けすると増えているように見えるだけで、作業量は減っているように見えるが
途中からこのスレ来たから、流れがわかっていない
レビューのあとの「テスト」ってビルドボタンを押す度に走るテストのこと?
それとと、gitとかにcommitする度に走るテストのこと?
作業をカテゴリ分けすると増えているように見えるだけで、作業量は減っているように見えるが
途中からこのスレ来たから、流れがわかっていない
442デフォルトの名無しさん
2021/02/19(金) 08:52:42.54ID:hd6MOPhf443デフォルトの名無しさん
2021/02/19(金) 08:54:08.49ID:f7HYpZpv444デフォルトの名無しさん
2021/02/19(金) 09:01:26.16ID:f7HYpZpv445デフォルトの名無しさん
2021/02/19(金) 10:36:32.08ID:zJ55MHzK >>438
> 設計書
> →コード→テスト
> →テスト手順書→レビュー
もうこの時点で意味不明w
普通は
1) 設計書 ⇒ コード(⇒ レビュー)
2) 設計書 ⇒ テスト手順書 ⇒ レビュー
3) 手動テスト(工数大)
だろ
で、自動テストなら
1) 設計書 ⇒ コード
2) 設計書 ⇒ テストコード ⇒ レビュー
3) 自動テスト(工数ほぼ "0")
要するにテストコードは計算機に対するテスト手順書だから手間は変わらんよ
むしろプログラマーだと仕様書よりコード書く方が楽と思う奴もいっぱいいるしw
あとどっちもテストと書いてるけど手動テストと自動テストでは工数が全く違うから同じ「テスト」という言葉でごまかすなよ
なおテストコードはデバッグが必要と主張するなら>>255にちゃんと反論しろ
> 設計書
> →コード→テスト
> →テスト手順書→レビュー
もうこの時点で意味不明w
普通は
1) 設計書 ⇒ コード(⇒ レビュー)
2) 設計書 ⇒ テスト手順書 ⇒ レビュー
3) 手動テスト(工数大)
だろ
で、自動テストなら
1) 設計書 ⇒ コード
2) 設計書 ⇒ テストコード ⇒ レビュー
3) 自動テスト(工数ほぼ "0")
要するにテストコードは計算機に対するテスト手順書だから手間は変わらんよ
むしろプログラマーだと仕様書よりコード書く方が楽と思う奴もいっぱいいるしw
あとどっちもテストと書いてるけど手動テストと自動テストでは工数が全く違うから同じ「テスト」という言葉でごまかすなよ
なおテストコードはデバッグが必要と主張するなら>>255にちゃんと反論しろ
446デフォルトの名無しさん
2021/02/19(金) 10:53:49.57ID:IIFo83yT テストコードは暇なら書くレベルの価値しかない。
テスト仕様書に漏れがない事が最も重要。
実データで実動作で検証するのが納品条件。
テスト仕様書に漏れがない事が最も重要。
実データで実動作で検証するのが納品条件。
447デフォルトの名無しさん
2021/02/19(金) 11:02:12.72ID:8jP4Tkvg 実機繋がってないと無意味なテストにしかならんの多いのよな
448デフォルトの名無しさん
2021/02/19(金) 11:29:00.52ID:RipgTCDE >>438
> テストコードがソースコードである以上テストしないわけにはいかんだろ
だからいらない
馬鹿なのかな?
テストコードのテストなんてお前したことないだろ?
世の中の誰もしたことないわw
そんなものありはしないんだから
> 設計書
> →コード→テスト
> →テスト手順書→レビュー
> で済むはずが
だめでしょ?レビューが正しいかをテストしなきゃwww
> テストコードがソースコードである以上テストしないわけにはいかんだろ
だからいらない
馬鹿なのかな?
テストコードのテストなんてお前したことないだろ?
世の中の誰もしたことないわw
そんなものありはしないんだから
> 設計書
> →コード→テスト
> →テスト手順書→レビュー
> で済むはずが
だめでしょ?レビューが正しいかをテストしなきゃwww
449デフォルトの名無しさん
2021/02/19(金) 11:45:25.31ID:3OrjGIvj450デフォルトの名無しさん
2021/02/19(金) 11:47:16.24ID:3OrjGIvj 間違えた
レビューが正しいかのテストが適切かどうかもテストしよう
だった
レビューが正しいかのテストが適切かどうかもテストしよう
だった
451デフォルトの名無しさん
2021/02/19(金) 11:50:29.27ID:RipgTCDE レビューした結果もちゃんと記録しないといけないからな
レビューの結果をドキュメントとして残すなら
そのドキュメントのレビューも必要になる
当然の帰結だ
レビューの結果をドキュメントとして残すなら
そのドキュメントのレビューも必要になる
当然の帰結だ
452デフォルトの名無しさん
2021/02/19(金) 11:52:44.73ID:wrciXaB+ 単体テストの範囲でこんな凝った仕組みいらんよ
一番やりたい結合は今度セッティングのが時間かかるんで
一番やりたい結合は今度セッティングのが時間かかるんで
453デフォルトの名無しさん
2021/02/19(金) 12:21:07.58ID:RipgTCDE 「結合テストはすごく時間がかかる」
え?なんで?
「単体テストでやるべきことも
全部結合テストで手動でテストやってるからさ!」
↑馬鹿じゃね?
え?なんで?
「単体テストでやるべきことも
全部結合テストで手動でテストやってるからさ!」
↑馬鹿じゃね?
454デフォルトの名無しさん
2021/02/19(金) 12:30:35.44ID:F46jrkhY 敢えて皆と同じくらいテストコードの書き方を知ってる自分が弁護するけど
class クソクラス
頻繁に仕様が変わるメソッド
クソコード
不具合が生じると仕様が変わるメソッド
クソコード
思考停止でプライベート変数のgetter
思考停止の変数リターン
思考停止でプライベート変数のsetter
思考停止の変数代入
みたいなクラスを単体テストするところを考えてみよう
他の皆の無駄じゃない主張は疑いもなく事実だろうけど、テストコードは無駄という主張はある意味では事実なのだと思う
これは...扱うコードの質の違いが生んだ悲劇
そう、事故だったんだ
テストコード厨呼ばわりについては...うん(諦め)
class クソクラス
頻繁に仕様が変わるメソッド
クソコード
不具合が生じると仕様が変わるメソッド
クソコード
思考停止でプライベート変数のgetter
思考停止の変数リターン
思考停止でプライベート変数のsetter
思考停止の変数代入
みたいなクラスを単体テストするところを考えてみよう
他の皆の無駄じゃない主張は疑いもなく事実だろうけど、テストコードは無駄という主張はある意味では事実なのだと思う
これは...扱うコードの質の違いが生んだ悲劇
そう、事故だったんだ
テストコード厨呼ばわりについては...うん(諦め)
455デフォルトの名無しさん
2021/02/19(金) 12:34:28.76ID:RipgTCDE >>454
テストコードが無駄なケースでは
手動テストも無駄になる
頻繁に仕様が変わるメソッドがあったとして
手動テストをしたら時間の節約になるとでも?
ああ、テストしないってことね(笑)
プロの仕事じゃねーよ
テストコードが無駄なケースでは
手動テストも無駄になる
頻繁に仕様が変わるメソッドがあったとして
手動テストをしたら時間の節約になるとでも?
ああ、テストしないってことね(笑)
プロの仕事じゃねーよ
456デフォルトの名無しさん
2021/02/19(金) 12:43:07.19ID:F46jrkhY457デフォルトの名無しさん
2021/02/19(金) 12:54:53.31ID:F46jrkhY458デフォルトの名無しさん
2021/02/19(金) 13:02:30.29ID:F46jrkhY まず、クラス設計する際にテストコードみたいなコードを書いたりしない?
クラス利用者から見たクラスの使い勝手を確かめる意味で
で、何度も試行錯誤して、素晴らしいクラスモデルができたらテストコードを書いて、その後、実装をして...
この作業プロセスができていないから単体テストは無駄だという主張が生まれたと思っていた
クラス利用者から見たクラスの使い勝手を確かめる意味で
で、何度も試行錯誤して、素晴らしいクラスモデルができたらテストコードを書いて、その後、実装をして...
この作業プロセスができていないから単体テストは無駄だという主張が生まれたと思っていた
459デフォルトの名無しさん
2021/02/19(金) 13:19:31.43ID:IIFo83yT460デフォルトの名無しさん
2021/02/19(金) 14:03:37.42ID:RipgTCDE >>456
そうなんだよな。テストしたつもりになってるんだろうなって思うよ
「手動テストでテストできる!
リリース前に、人を大量に集めて人海戦術でテストするんだ!」
なんて言われたら、バグ出たらどうするの?って聞きたくなる
「バグを直して(そこだけ)テストするだけじゃないか!」っていうだろうな
たぶん、そこだけしかテストして無くて全体の再テストをしないだろう
最後にもう一回テストすればいい? いやいやバグはなくならないんだから
最後なんてありえないだろ
時間がないときは小さいバグは運用でカバーとかいってリリースするんだろ?
そしてあとから修正するんだろ?再テストするだろ?
何回小さいバグを修正する?そのたびに人を大量に集めて人海戦術でテストする?
どんだけ時間とコストがかかるんだよ?
たぶんその答えは
「小さいバグの修正なんだから、たぶん他に影響してないはずだ。動いていればヨシっ」
なんだろ?
プロの仕事じゃねーよ
自動テストしてるプロジェクトでは、一日数回のリリースと全テストを行うことだってある
このスピードに手動テストでは追いつけない
そうなんだよな。テストしたつもりになってるんだろうなって思うよ
「手動テストでテストできる!
リリース前に、人を大量に集めて人海戦術でテストするんだ!」
なんて言われたら、バグ出たらどうするの?って聞きたくなる
「バグを直して(そこだけ)テストするだけじゃないか!」っていうだろうな
たぶん、そこだけしかテストして無くて全体の再テストをしないだろう
最後にもう一回テストすればいい? いやいやバグはなくならないんだから
最後なんてありえないだろ
時間がないときは小さいバグは運用でカバーとかいってリリースするんだろ?
そしてあとから修正するんだろ?再テストするだろ?
何回小さいバグを修正する?そのたびに人を大量に集めて人海戦術でテストする?
どんだけ時間とコストがかかるんだよ?
たぶんその答えは
「小さいバグの修正なんだから、たぶん他に影響してないはずだ。動いていればヨシっ」
なんだろ?
プロの仕事じゃねーよ
自動テストしてるプロジェクトでは、一日数回のリリースと全テストを行うことだってある
このスピードに手動テストでは追いつけない
461デフォルトの名無しさん
2021/02/19(金) 14:39:19.79ID:IIFo83yT 自動テストじゃほとんど何もできない。
日本語/フォント間違えてるとか色違うとかカクカク動くとか。
日本語/フォント間違えてるとか色違うとかカクカク動くとか。
462デフォルトの名無しさん
2021/02/19(金) 14:45:40.28ID:fG69+Z1U しばらくぶりに見たプロジェクトの自動テストが通らないことぐらい
開発現場じゃ常識なんだよ!(パプリカ:DCmini)
開発現場じゃ常識なんだよ!(パプリカ:DCmini)
463デフォルトの名無しさん
2021/02/19(金) 14:48:09.77ID:RipgTCDE464デフォルトの名無しさん
2021/02/19(金) 14:49:14.42ID:RipgTCDE >>462
> しばらくぶりに見たプロジェクトの自動テストが通らないことぐらい
それを手動テストして動いたら面白いなw
まあよくあるよね。本当はバグってるのに
表面上は動いてるように見えちゃう
だから手動テストは駄目なんだよ
> しばらくぶりに見たプロジェクトの自動テストが通らないことぐらい
それを手動テストして動いたら面白いなw
まあよくあるよね。本当はバグってるのに
表面上は動いてるように見えちゃう
だから手動テストは駄目なんだよ
465デフォルトの名無しさん
2021/02/19(金) 14:55:40.06ID:IIFo83yT466デフォルトの名無しさん
2021/02/19(金) 15:01:38.27ID:RipgTCDE 直接変数に値入れるとは?
まさかデバッガ経由でやってんの?
デバッガを使うと挙動が変わるからテストにならない
まさかデバッガ経由でやってんの?
デバッガを使うと挙動が変わるからテストにならない
467デフォルトの名無しさん
2021/02/19(金) 15:01:59.28ID:RipgTCDE テストは本番用ビルドでやるのが鉄則
468デフォルトの名無しさん
2021/02/19(金) 15:03:42.70ID:IIFo83yT >>466
mockかデバッガーで十分です
mockかデバッガーで十分です
469デフォルトの名無しさん
2021/02/19(金) 15:06:22.55ID:IIFo83yT 客を自動テストして欲しいわ、言うことコロコロ変わるからw
470デフォルトの名無しさん
2021/02/19(金) 15:20:06.23ID:LoU7pdW5 判定させたら99.99%がクソレスだった件
471デフォルトの名無しさん
2021/02/19(金) 16:24:05.46ID:RipgTCDE472デフォルトの名無しさん
2021/02/19(金) 17:47:03.42ID:IFuFAMn0 要件を確定させずレスバってプログラマどころじゃないな
しかも平日の昼間から真っ赤ってまともじゃないの自己紹介しているようなもの
しかも平日の昼間から真っ赤ってまともじゃないの自己紹介しているようなもの
473デフォルトの名無しさん
2021/02/19(金) 17:47:13.51ID:ACLJAhWF 自分はアプリ開発と組み込み開発の経験があるけど、Web開発って単体テストやらんの?
Webは、Python+Django、node、古いPHPの入門書を読んだ程度にしか触れないからリアル開発事情に興味がある(開発経験が無い)
Webは、Python+Django、node、古いPHPの入門書を読んだ程度にしか触れないからリアル開発事情に興味がある(開発経験が無い)
474デフォルトの名無しさん
2021/02/19(金) 18:57:54.50ID:Clj7wgUu web開発ってユーザーが入力欄に何を入れてくるかの組み合わせが
膨大になるから、テストも困難になるな。
膨大になるから、テストも困難になるな。
475デフォルトの名無しさん
2021/02/19(金) 18:58:00.55ID:RipgTCDE 単体テストをやらないのはSIerだよ
ああ、いや、エクセルに単体テスト報告書を書くとか
そういう意味でなら単体テストをやってるよw
テストコードを書かない手動テストのことをSIerは単体テストって言ってる
ああ、いや、エクセルに単体テスト報告書を書くとか
そういう意味でなら単体テストをやってるよw
テストコードを書かない手動テストのことをSIerは単体テストって言ってる
476デフォルトの名無しさん
2021/02/19(金) 19:01:29.71ID:RipgTCDE ああ、わかりやすいのが見つかった。これがSIerのいう単体テスト(手動テスト)
【Web系最高って言うけと゛本当なの?】siの5次請けから離脱したエンシ゛ニアか゛話してみた
https://www.slideshare.net/yuukinakajima794/websi-67526868#8
8. てすとほうほう winshot、エクセル、人間 スクショ一枚取り忘れただけでも
テストがやり直しになるプレッシャーと進捗表.xls との戦い テスト結果.xlsが
不要なのでめんどくささがない 開発者が目で見ておk
https://www.slideshare.net/yuukinakajima794/websi-67526868#12
12. ソース修正とかテスト バグが出た!→単体テスト障害報告書.xlsを書く→
必要に応じて単 体テストケース.xlsを直す→上司にお話して単体テスト障害報告
書を確認して貰う→テストをする バグが出た!→直す→必要に応じてテストパターン を
増やす→テストする あまりに、あまりにめんどくさい、進捗表.xlsには障害数も書くのでバグゼロは困るらしい
【Web系最高って言うけと゛本当なの?】siの5次請けから離脱したエンシ゛ニアか゛話してみた
https://www.slideshare.net/yuukinakajima794/websi-67526868#8
8. てすとほうほう winshot、エクセル、人間 スクショ一枚取り忘れただけでも
テストがやり直しになるプレッシャーと進捗表.xls との戦い テスト結果.xlsが
不要なのでめんどくささがない 開発者が目で見ておk
https://www.slideshare.net/yuukinakajima794/websi-67526868#12
12. ソース修正とかテスト バグが出た!→単体テスト障害報告書.xlsを書く→
必要に応じて単 体テストケース.xlsを直す→上司にお話して単体テスト障害報告
書を確認して貰う→テストをする バグが出た!→直す→必要に応じてテストパターン を
増やす→テストする あまりに、あまりにめんどくさい、進捗表.xlsには障害数も書くのでバグゼロは困るらしい
477デフォルトの名無しさん
2021/02/19(金) 19:04:03.28ID:uscWUjsm 田中勇←口だけテストコード大好き変態老人
技術力はゼロwww
技術力はゼロwww
478デフォルトの名無しさん
2021/02/19(金) 19:19:27.73ID:2/3+b4qC >>476
まあそういうテストが必要なフェイズは確かにあるが、その前に自動テスト入れるべきではある。
まあそういうテストが必要なフェイズは確かにあるが、その前に自動テスト入れるべきではある。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★2 [ぐれ★]
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★3 [ぐれ★]
- 【速報】高市総理が官邸入り [Hitzeschleier★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 【震度6強】政府 危機管理センターに官邸対策室を設置 [ぐれ★]
- 青森で火事 [Hitzeschleier★]
- 【悲報】高市早苗、議員定数1割削減の根拠を答えられず終了 [834922174]
- 地震 ★2
- 【速報】高市早苗、起床 [779938112]
- ぺこーら、地震で同僚が次々配信を止めるなか強行し続けるので悪目立ちするwww [268244553]
- 巨大地震 [957955821]
- 高市すごい勢大発生 [256556981]
