このスレはクソコードとは何かを考えるスレです。
・親クラスが子クラスに依存する処理を持つコード
例...社員クラスを継承した正社員クラスと派遣社員クラスがあり、社員クラスが正社員クラスの知識を持つ状況
・staticにするべきではないモデルにまでstaticにする人
例...社員クラスのメソッドを全てstaticにしたり、社員クラスにシングルトンパターンに相応するものを適用する人
等、クソコードを見た時に「あっ、これクソコードだ」って認識する根拠を挙げていきましょう。
探検
クソコードとは何か
■ このスレッドは過去ログ倉庫に格納されています
2021/01/30(土) 17:33:05.78ID:BjNTZWUI
267デフォルトの名無しさん
2021/02/16(火) 14:53:52.36ID:OZpOEjmI268デフォルトの名無しさん
2021/02/16(火) 14:57:32.28ID:YiD3bxyB269デフォルトの名無しさん
2021/02/16(火) 15:05:00.94ID:QovxsXZg いいんじゃないの、優秀な人が揃っててバグがないならサイコーやん
超優秀なグーグルの技術者さんが単体テストツールとか作ってるのが現実だけどw
超優秀なグーグルの技術者さんが単体テストツールとか作ってるのが現実だけどw
270デフォルトの名無しさん
2021/02/16(火) 15:26:10.69ID:1bhKa/Av >>268
ソースに基づいて機械的に書いてるだけでテストが何のテストにもなってないことが多かったとかじゃなくて
すべてのテストコードがそうなった
少なくとも網羅されてなくては意味がないので
複雑な分岐のあるコードを通すときは同じコードをテストコードに貼り付けてすべての取りうる値をループで回すように組んだ
switch caseのような文ね
それの更に上の階層のコードも
結局subルーチンの取りうる値が結局わからないというか数が多過ぎていちいち調べてられないので
サブルーチンのテストコードを貼り付けてさらに本ルーチンのテストを加える形で追加していった
こんな手順でやるので一番うえの階層に行く頃には超巨大スパゲッティテストコードができていた
ソースに基づいて機械的に書いてるだけでテストが何のテストにもなってないことが多かったとかじゃなくて
すべてのテストコードがそうなった
少なくとも網羅されてなくては意味がないので
複雑な分岐のあるコードを通すときは同じコードをテストコードに貼り付けてすべての取りうる値をループで回すように組んだ
switch caseのような文ね
それの更に上の階層のコードも
結局subルーチンの取りうる値が結局わからないというか数が多過ぎていちいち調べてられないので
サブルーチンのテストコードを貼り付けてさらに本ルーチンのテストを加える形で追加していった
こんな手順でやるので一番うえの階層に行く頃には超巨大スパゲッティテストコードができていた
271デフォルトの名無しさん
2021/02/16(火) 16:07:47.96ID:JE34XZEs ホントテストが有用な説明を一切出来ないんだよなぁw
テストコード厨ってwww
頭が悪いからテスト書かないとボクのコードが正しいかわかりましぇーんwww
みたいなレベルなのかもしれんがw
こういう奴らって自分で動作確認しないでコミットしたりマジでしそうなんだよなぁw
普通はデバッグとかして大丈夫なものを上げるやろ
あ、デバッグの仕方やコールスタックとか全く知らんのかwwwwwwww
マイナスしか生産しない奴の場合、ちょっとパラメータ変えただけで動かないとか
エラー処理が無いとかそんなのばかりなんだよなw
それで、テストコードwも当然そのエラー処理に関するものは一切ないというwwwww
テストコード厨ってwww
頭が悪いからテスト書かないとボクのコードが正しいかわかりましぇーんwww
みたいなレベルなのかもしれんがw
こういう奴らって自分で動作確認しないでコミットしたりマジでしそうなんだよなぁw
普通はデバッグとかして大丈夫なものを上げるやろ
あ、デバッグの仕方やコールスタックとか全く知らんのかwwwwwwww
マイナスしか生産しない奴の場合、ちょっとパラメータ変えただけで動かないとか
エラー処理が無いとかそんなのばかりなんだよなw
それで、テストコードwも当然そのエラー処理に関するものは一切ないというwwwww
272デフォルトの名無しさん
2021/02/16(火) 16:16:01.07ID:VGyCnBhh wが多いほど余裕がなくて必死になってるように見えるぞ
273デフォルトの名無しさん
2021/02/16(火) 16:58:55.10ID:+4LTd2t4 >>223で、すげー分かりやすい説明してるんだけどなぁ
274デフォルトの名無しさん
2021/02/16(火) 17:13:03.88ID:+kNhNUJJ 芝の数は知能指数の低さを表す定期
池沼だから周りの指摘が理解できないのだろう
というかさ、単体テストができないレベルは論外なので他スレ逝ってください
お願いします
池沼だから周りの指摘が理解できないのだろう
というかさ、単体テストができないレベルは論外なので他スレ逝ってください
お願いします
275デフォルトの名無しさん
2021/02/16(火) 17:18:14.85ID:+kNhNUJJ 単体テストが必要ない→テスト済みのライブラリを使っており独自定義のモデルが無いから なら耳を傾けてやったが、流石に単体テストそのものの否定は論外
もし、これでテスト済みのフレームワークであるRailsやAndroid SDK、Django、Electron等を使ってたら嗤う
まぁ、フレームワークを一切使わない上、単体テストもしないとかだったらもっと嘲笑ってやるが
もし、これでテスト済みのフレームワークであるRailsやAndroid SDK、Django、Electron等を使ってたら嗤う
まぁ、フレームワークを一切使わない上、単体テストもしないとかだったらもっと嘲笑ってやるが
276デフォルトの名無しさん
2021/02/16(火) 17:44:56.71ID:2fDc5cBr >>270
文章がスパゲッティ過ぎて説得力ゼロ
文章がスパゲッティ過ぎて説得力ゼロ
277デフォルトの名無しさん
2021/02/16(火) 17:52:58.50ID:+kNhNUJJ >>270
> ソースに基づいて機械的に書いてるだけでテストが何のテストにもなってないことが多かったとかじゃなくて
> すべてのテストコードがそうなった
あなたはもう一人の頭おかしい人とは別人と見なして回答するけど、そもそもソースに基づいてテストケースを書くのが間違い
ソースを書く段階で既に正しいソースの答えが存在しないといけない
テストコードを書く→コード実装する→ビルドする→テストコードが自動で実行→コード修正する→ビルドする→テストコードが自動で実行
これを繰り返すから不具合の無いプログラムが書ける
もしも、これを否定するのなら、是非、もっと素晴らしい開発ノウハウを教えてほしいものだ
「俺がつくったものはほとんど不具合を出さない」とか、そういうイキリ情報だけ吐き出すのはどうでもいいから
> ソースに基づいて機械的に書いてるだけでテストが何のテストにもなってないことが多かったとかじゃなくて
> すべてのテストコードがそうなった
あなたはもう一人の頭おかしい人とは別人と見なして回答するけど、そもそもソースに基づいてテストケースを書くのが間違い
ソースを書く段階で既に正しいソースの答えが存在しないといけない
テストコードを書く→コード実装する→ビルドする→テストコードが自動で実行→コード修正する→ビルドする→テストコードが自動で実行
これを繰り返すから不具合の無いプログラムが書ける
もしも、これを否定するのなら、是非、もっと素晴らしい開発ノウハウを教えてほしいものだ
「俺がつくったものはほとんど不具合を出さない」とか、そういうイキリ情報だけ吐き出すのはどうでもいいから
278デフォルトの名無しさん
2021/02/16(火) 18:08:22.87ID:1bhKa/Av >>277
ソースがおかしかったらテストもおかしくなるの?
ソースがおかしかったらテストもおかしくなるの?
279デフォルトの名無しさん
2021/02/16(火) 18:29:17.92ID:+kNhNUJJ >>278
本来の単体テストでは、ソースがおかしかったらテストもおかしくなってはならないのだが...ソースに基づきテストコードを書くと、ソースがおかしいとテストコードもおかしくなる可能性はある
まぁ、ソースに基づきの本質的な意味にもよるけど
文面と自分の過去の経験(単体テストの無意味化)から、書き直しながら設計をする「書き直しプログラミング」という良くない実装をしているんじゃないかなーとも感じられたけど、そこら辺は大丈夫?
本来の単体テストでは、ソースがおかしかったらテストもおかしくなってはならないのだが...ソースに基づきテストコードを書くと、ソースがおかしいとテストコードもおかしくなる可能性はある
まぁ、ソースに基づきの本質的な意味にもよるけど
文面と自分の過去の経験(単体テストの無意味化)から、書き直しながら設計をする「書き直しプログラミング」という良くない実装をしているんじゃないかなーとも感じられたけど、そこら辺は大丈夫?
280デフォルトの名無しさん
2021/02/16(火) 21:27:59.66ID:ZcpmZlC/ 自動テストの欠点は
1. 時間がかかりすぎる。自動テストの数千倍
2. 正しくテストをしたという証拠が残らない
1. 時間がかかりすぎる。自動テストの数千倍
2. 正しくテストをしたという証拠が残らない
281デフォルトの名無しさん
2021/02/16(火) 21:28:14.84ID:ZcpmZlC/ 間違えたw
手動テストの欠点は
1. 時間がかかりすぎる。自動テストの数千倍
2. 正しくテストをしたという証拠が残らない
手動テストの欠点は
1. 時間がかかりすぎる。自動テストの数千倍
2. 正しくテストをしたという証拠が残らない
282デフォルトの名無しさん
2021/02/16(火) 21:33:26.67ID:dPD3RJZH テストが要らんと言う人の意見のほうが聞きたい
テストが要ると言う人の意見には興味は無い
PGとSEの区別も仕様書と要件定義書の区別も
人月も工数計算も俺にとっては興味が無いから
どうやって人類はクソコードを避けていくのかの意見だけが聞きたい
テストが要ると言う人の意見には興味は無い
PGとSEの区別も仕様書と要件定義書の区別も
人月も工数計算も俺にとっては興味が無いから
どうやって人類はクソコードを避けていくのかの意見だけが聞きたい
283デフォルトの名無しさん
2021/02/16(火) 21:41:54.02ID:ZcpmZlC/ 頑張ればできる。みたいな根性論はいらんで
何千人も人を投入すればできる。みたいな人海戦術もいらんで
何千人も人を投入すればできる。みたいな人海戦術もいらんで
284デフォルトの名無しさん
2021/02/16(火) 21:46:50.65ID:2fDc5cBr285デフォルトの名無しさん
2021/02/16(火) 22:09:23.42ID:dPD3RJZH286デフォルトの名無しさん
2021/02/16(火) 22:16:43.61ID:ZcpmZlC/287デフォルトの名無しさん
2021/02/17(水) 02:14:29.51ID:9AWFfoq+ クソコード避けたいなら、まずクソなプロジェクトを避けることだな
288デフォルトの名無しさん
2021/02/17(水) 02:46:54.37ID:fzT3JoWH >>285
発想がすでにクソコード
発想がすでにクソコード
289デフォルトの名無しさん
2021/02/17(水) 07:57:46.74ID:cgz/Ol0S 元は>>228の発言なんだろうけど、もう触れるのはやめようぜ
俺ももっと建設的な意見が聞きたいよ
俺ももっと建設的な意見が聞きたいよ
290デフォルトの名無しさん
2021/02/17(水) 08:34:48.76ID:ty0uudwM 結局手動テストで、正しくテストを行ったことを
担保する方法は出ないで終わりか
結果のスクショだけじゃ役に立たないからね
担保する方法は出ないで終わりか
結果のスクショだけじゃ役に立たないからね
291デフォルトの名無しさん
2021/02/17(水) 12:04:03.72ID:KH04dI9l コードがクソでもプログラマーがクソじゃなければ簡単に浄化できる
クソコードを避けようとするのは浄化スキルを持たないクソプログラマー
クソコードを避けようとするのは浄化スキルを持たないクソプログラマー
292デフォルトの名無しさん
2021/02/17(水) 12:11:35.28ID:JcWwc4WJ 浄化が何を示すのかよくわからんけど単体テストコード無しでリファクタリングする勇気は俺にはないわ
293デフォルトの名無しさん
2021/02/17(水) 12:31:42.99ID:H55Rd51D 俺もテストコードが無い上、手遅れなソースは直せる自身がないや
ほぼ作り直しになる未来しか見えない
テストコードを作れば済む話なら直せるけど、手遅れコードは無理
ほぼ作り直しになる未来しか見えない
テストコードを作れば済む話なら直せるけど、手遅れコードは無理
294デフォルトの名無しさん
2021/02/17(水) 12:50:38.83ID:FZd5objq 具体性皆無
どうやって浄化(リファクタリング?)するのだか
たったの2行から嫌な予感しかしないけど、一応聞いてやろう
どうやって浄化(リファクタリング?)するのだか
たったの2行から嫌な予感しかしないけど、一応聞いてやろう
295デフォルトの名無しさん
2021/02/17(水) 13:00:59.13ID:pFFqlpSR テストコードが無いなら書けばいいじゃん
クソコードを放置して新たなクソを付け足すのもクソプログラマーだな
クソコードを放置して新たなクソを付け足すのもクソプログラマーだな
296デフォルトの名無しさん
2021/02/17(水) 13:50:01.10ID:FZd5objq >>295
クソコード呼ばわりするレベルに至る時点で、テストコードを追加して直せばいいじゃんで済むレベルじゃないと思うのだが
まぁ、俺の想像するクソコードと貴方の想像するクソコードが乖離している可能性はあるけど
クソコード呼ばわりするレベルに至る時点で、テストコードを追加して直せばいいじゃんで済むレベルじゃないと思うのだが
まぁ、俺の想像するクソコードと貴方の想像するクソコードが乖離している可能性はあるけど
297デフォルトの名無しさん
2021/02/17(水) 14:04:39.81ID:DzAxBoaP テストコードって学校で習わなかったなぁ
298デフォルトの名無しさん
2021/02/17(水) 14:15:56.78ID:bkC92bnI 頭の悪いマウント合戦やってるクソスレ上げんなカス
299デフォルトの名無しさん
2021/02/17(水) 14:24:26.00ID:8PenPzn3 晒し上げ
300デフォルトの名無しさん
2021/02/17(水) 14:27:57.95ID:ty0uudwM301デフォルトの名無しさん
2021/02/17(水) 14:35:24.50ID:7XrGtYbS >>300
仕様があればテストコードがなくても何が正しいかわかるよね?
仕様がないなら仕様を作ればいいよね?
何が正しいかを決めればいいだけ
できない言い訳ばかりしてクソにクソを積み重ねる君たちがクソコードの現況だから
仕様があればテストコードがなくても何が正しいかわかるよね?
仕様がないなら仕様を作ればいいよね?
何が正しいかを決めればいいだけ
できない言い訳ばかりしてクソにクソを積み重ねる君たちがクソコードの現況だから
302デフォルトの名無しさん
2021/02/17(水) 14:37:56.30ID:ty0uudwM303デフォルトの名無しさん
2021/02/17(水) 14:47:15.95ID:csyh4HrV はいはい、この話はやめやめ
頼むから【隔離】文字を入れた隔離スレで議論してくれ
頼むから【隔離】文字を入れた隔離スレで議論してくれ
304デフォルトの名無しさん
2021/02/17(水) 15:11:11.02ID:4I2sE0QP >>302
それは仕様書が間違ってるんであって仕様が間違ってるのとは違う
仕様書が間違ってると判断できる術があるなら何が正しいかわかるということ
結局テストと同じ話なんだけどあれこれ言い訳してクソを放置してるだけだよね
それは仕様書が間違ってるんであって仕様が間違ってるのとは違う
仕様書が間違ってると判断できる術があるなら何が正しいかわかるということ
結局テストと同じ話なんだけどあれこれ言い訳してクソを放置してるだけだよね
305デフォルトの名無しさん
2021/02/17(水) 18:21:56.56ID:k81iZNBk 継続的イ...継続的な品質維持を破壊するようなコードを列挙していこうぜ
スレの趣旨的にはアンチパターンの研究が本来の目的だろうし
「構造が理解できないコード」とか
「責務を見失ったクラス」とか
「コピペしたような共通のコードが複数箇所あって、一部のソースを変更したら114,519箇所のコード書き直しが要求されるコード」とか
スレの趣旨的にはアンチパターンの研究が本来の目的だろうし
「構造が理解できないコード」とか
「責務を見失ったクラス」とか
「コピペしたような共通のコードが複数箇所あって、一部のソースを変更したら114,519箇所のコード書き直しが要求されるコード」とか
306デフォルトの名無しさん
2021/02/17(水) 18:27:10.12ID:ar54zOTy TDD知らんの?
307デフォルトの名無しさん
2021/02/17(水) 18:30:50.13ID:k81iZNBk >>306
知ってるけど流れ察しろ
知ってるけど流れ察しろ
308デフォルトの名無しさん
2021/02/17(水) 18:32:30.85ID:8Df3qLX7 馬鹿が文章を書くとこうなりますの見本スレ
309デフォルトの名無しさん
2021/02/17(水) 18:44:03.73ID:ltamn3iy クソコード:大概が自己満足のオナニーに起因する
自動テスト:出来ているやつはホトンド居ない、なぜなら自動テストで致命的な問題が
出てこないで後から発見されるから、セキュリティ・ホールも右に同じ
大概が自己満足のオナニー
だが自動テストは必要悪である。テスト原理主義者はカバレッジが100%で無ければ教義に反する異端者として
処分され、変数の代入さえテストを要求するが、致命的な問題が後から発見された場合にはテストすら破壊する
破壊的なリファクタリングを必要とし、テストコードの修正と二重苦の責めを負う
自動テスト:出来ているやつはホトンド居ない、なぜなら自動テストで致命的な問題が
出てこないで後から発見されるから、セキュリティ・ホールも右に同じ
大概が自己満足のオナニー
だが自動テストは必要悪である。テスト原理主義者はカバレッジが100%で無ければ教義に反する異端者として
処分され、変数の代入さえテストを要求するが、致命的な問題が後から発見された場合にはテストすら破壊する
破壊的なリファクタリングを必要とし、テストコードの修正と二重苦の責めを負う
310デフォルトの名無しさん
2021/02/17(水) 18:50:55.02ID:dlextU55311デフォルトの名無しさん
2021/02/17(水) 18:55:30.33ID:UmDM7l2a312デフォルトの名無しさん
2021/02/17(水) 18:59:25.09ID:JcWwc4WJ313デフォルトの名無しさん
2021/02/17(水) 19:10:33.57ID:UlO/vFMl 継続的淫夢ローション
314デフォルトの名無しさん
2021/02/17(水) 19:19:20.02ID:DzAxBoaP >>298
1番馬鹿なのはお前
1番馬鹿なのはお前
315デフォルトの名無しさん
2021/02/17(水) 19:29:15.15ID:p8cob7ED テストコードはあって当たり前の前提でスレタイの話がしたかった...
316デフォルトの名無しさん
2021/02/17(水) 19:40:45.14ID:p8cob7ED まぁ、意味のあるテストコードがあればクソコードと言われるレベルのものはなくなるけどさ、そうじゃなくて
クソコードと良いコードを知った上でテスト駆動やるべきだからこそ、クソコードの分析がしたかったよ...
クソコードと良いコードを知った上でテスト駆動やるべきだからこそ、クソコードの分析がしたかったよ...
317デフォルトの名無しさん
2021/02/17(水) 20:38:23.05ID:ltamn3iy むしろ時代の流れは既にテストコードを「書く」という流れではなく、既に外部ソフトウェアを利用して
テストする段階に来ている。これは日本では「単体」しないのですか?と受け止めれれるがそうではない。
例えばテストしづらいソフトウェアにはLinux-KernelがあるがリリースはTorvaldsが十分に安定していると
「感じ」たときにリリースされる。ではLinuxは全くテストしていないですか?と思うがそうではない。
Kernelはテストコードが書きづらいため、様々な工夫がされる。外部ツールとして静的コード分析、
継続的インテグレーションツール、テスト自動化など様々なツールが使われる。もちろん単体テストもある。
現在のソフトウェアの主流において(ランダムな引数を渡す)ファジングテストツール(Fuzzer)なども
使われる。日本では一向に使われる気配は無い(誰も使わない・知らない企業独自のプロダクトのような
自動ツールが使われるのみである)ストレステストツールは何も知らない営業のアホが書いた根拠不明の
性能要件を満たすためのツールではないのである。フェイクデータを用意してテストするのが一部では
流行っているがそれでは網羅性はない。
例えば、1ファンクション/メソッド/スコープの変数の数、分岐の数、ループ、演算子の数の増えれば
増えるほど複雑度は増大しバグが発生しやすくなるはずである。そう言った統計的な手法を見ないで
宗教のようにテストコードばかりに注目するのは悪である。
テストする段階に来ている。これは日本では「単体」しないのですか?と受け止めれれるがそうではない。
例えばテストしづらいソフトウェアにはLinux-KernelがあるがリリースはTorvaldsが十分に安定していると
「感じ」たときにリリースされる。ではLinuxは全くテストしていないですか?と思うがそうではない。
Kernelはテストコードが書きづらいため、様々な工夫がされる。外部ツールとして静的コード分析、
継続的インテグレーションツール、テスト自動化など様々なツールが使われる。もちろん単体テストもある。
現在のソフトウェアの主流において(ランダムな引数を渡す)ファジングテストツール(Fuzzer)なども
使われる。日本では一向に使われる気配は無い(誰も使わない・知らない企業独自のプロダクトのような
自動ツールが使われるのみである)ストレステストツールは何も知らない営業のアホが書いた根拠不明の
性能要件を満たすためのツールではないのである。フェイクデータを用意してテストするのが一部では
流行っているがそれでは網羅性はない。
例えば、1ファンクション/メソッド/スコープの変数の数、分岐の数、ループ、演算子の数の増えれば
増えるほど複雑度は増大しバグが発生しやすくなるはずである。そう言った統計的な手法を見ないで
宗教のようにテストコードばかりに注目するのは悪である。
318デフォルトの名無しさん
2021/02/17(水) 20:56:14.06ID:3Rkqt+9c319デフォルトの名無しさん
2021/02/17(水) 21:16:09.34ID:3Rkqt+9c320デフォルトの名無しさん
2021/02/17(水) 21:24:29.62ID:v0/tbLAB 再利用性の無いクラスは糞
お前らもあるやろ?
アプリ全体で一箇所でしかインスタンス化されないようなクラス
邪魔だなぁと思いつつも
それを書く事で若干の整理と局所化が得られるから作っちゃうようなクラス
お前らもあるやろ?
アプリ全体で一箇所でしかインスタンス化されないようなクラス
邪魔だなぁと思いつつも
それを書く事で若干の整理と局所化が得られるから作っちゃうようなクラス
321デフォルトの名無しさん
2021/02/17(水) 21:48:55.78ID:FwS3TBTC322デフォルトの名無しさん
2021/02/17(水) 22:15:44.97ID:ltamn3iy >>321
いろいろ書いてますが、どの辺が嘘だと言っていますか?全て?
いろいろ書いてますが、どの辺が嘘だと言っていますか?全て?
323デフォルトの名無しさん
2021/02/17(水) 22:36:40.80ID:JcWwc4WJ >>318
> むしろテストコードがないからこそ仕様書をきっちり更新してる可能性のほうが高いやろ
ないない、世の中にはテストコードも仕様書もちゃんとしてる組織とテストコードもないし仕様書もちゃんとしてないクズ組織しかないと思っていい
> それにコードからテストコードを作るのはアンチパターンだぞ
そんなことはみんなわかってる
やむを得ずのケースな
> むしろテストコードがないからこそ仕様書をきっちり更新してる可能性のほうが高いやろ
ないない、世の中にはテストコードも仕様書もちゃんとしてる組織とテストコードもないし仕様書もちゃんとしてないクズ組織しかないと思っていい
> それにコードからテストコードを作るのはアンチパターンだぞ
そんなことはみんなわかってる
やむを得ずのケースな
324デフォルトの名無しさん
2021/02/17(水) 22:43:42.98ID:FwS3TBTC 仕様書をきっちり更新しているとして、
ちゃんとその通りにテストしたことを担保するのはどうすればいいの?
なんでこの質問に答えられないの?
ちゃんとその通りにテストしたことを担保するのはどうすればいいの?
なんでこの質問に答えられないの?
325デフォルトの名無しさん
2021/02/17(水) 22:44:31.47ID:FwS3TBTC >>322
ソースを持ってきてない所全て
ソースを持ってきてない所全て
326デフォルトの名無しさん
2021/02/17(水) 22:52:29.81ID:gjncEnw2 パーフェクトRuby on Rails には、
毎週モジュールを更新してテストするように書いてある
こういうのが出来るのは、Ruby/Rails コミッターのいるような技術力のある自社開発系だけ。
普通の会社は、できた後は放置するだけw
一切、更新しない
会社全体で、AWS の800資格と、
全12資格を持つ、ジェダイマスターが7人いる、クラスメソッドの動画を見ると、
全部、Lambda などのサーバーレス
自社で毎週、OS・アプリ・モジュールなどを更新してテストできる、会社は無い。
だから、AWS がOS・Aurora などのデータベースなどを更新する、サーバーレスを使う
サイボウズのkintone は、Kubernetes で毎日すべてのシステムを破棄して、作り直している。
これが究極のTDD・継続的インテグレーション
毎日、全システムをrolling update する
毎週モジュールを更新してテストするように書いてある
こういうのが出来るのは、Ruby/Rails コミッターのいるような技術力のある自社開発系だけ。
普通の会社は、できた後は放置するだけw
一切、更新しない
会社全体で、AWS の800資格と、
全12資格を持つ、ジェダイマスターが7人いる、クラスメソッドの動画を見ると、
全部、Lambda などのサーバーレス
自社で毎週、OS・アプリ・モジュールなどを更新してテストできる、会社は無い。
だから、AWS がOS・Aurora などのデータベースなどを更新する、サーバーレスを使う
サイボウズのkintone は、Kubernetes で毎日すべてのシステムを破棄して、作り直している。
これが究極のTDD・継続的インテグレーション
毎日、全システムをrolling update する
327デフォルトの名無しさん
2021/02/17(水) 23:03:43.66ID:3Rkqt+9c328デフォルトの名無しさん
2021/02/17(水) 23:09:24.60ID:ltamn3iy >>324-325
まあ暇だから相手するけど、「その通りにテストしたことを担保する」っていうのはテストコードを
流しただけでは出来ませんよ。なぜならテストにもバグが介在するからです。イテレーションテストでも
反復回数が足りなければデグレします。極限値テストでもその中にバグを起こす特定値が無ければ
何の意味もありません。多くの人があんたの質問には答える価値があんまりないからじゃないかな?
「ソースを持ってきて」という表現方法もプログラミングに置き換えると非常に曖昧で解釈が不明です。
情報源のURLを提示しろ、元のオープンソース(笑)を証拠を持ってこいよ」どちらにも取れますが
プログラミングには向かない人だと思います。マウントポジション取りたいだけなら話は良く分かりますが
煽りたいだけであれば、幼稚園にでも通いなさい
まあ暇だから相手するけど、「その通りにテストしたことを担保する」っていうのはテストコードを
流しただけでは出来ませんよ。なぜならテストにもバグが介在するからです。イテレーションテストでも
反復回数が足りなければデグレします。極限値テストでもその中にバグを起こす特定値が無ければ
何の意味もありません。多くの人があんたの質問には答える価値があんまりないからじゃないかな?
「ソースを持ってきて」という表現方法もプログラミングに置き換えると非常に曖昧で解釈が不明です。
情報源のURLを提示しろ、元のオープンソース(笑)を証拠を持ってこいよ」どちらにも取れますが
プログラミングには向かない人だと思います。マウントポジション取りたいだけなら話は良く分かりますが
煽りたいだけであれば、幼稚園にでも通いなさい
329デフォルトの名無しさん
2021/02/17(水) 23:14:35.28ID:FwS3TBTC330デフォルトの名無しさん
2021/02/17(水) 23:16:22.98ID:ltamn3iy 手動テストなんて1回も書いた事無いのに、すべての人があんた以外の同一人物じゃないんだから
あんたの脳内が正常に回ってるかテストしたほうがいいんじゃないですか?
あんたの脳内が正常に回ってるかテストしたほうがいいんじゃないですか?
331デフォルトの名無しさん
2021/02/17(水) 23:19:03.48ID:FwS3TBTC >>328
わかりやすく言えば
一人目「なんか手順を省いちゃった気がするけど、次の人がちゃんとやるだろうからヨシ」
二人目「正しく動いてない気がするけど、前の人がスクショとってOKって言ってるからヨシ」
三人目「前の二人がOKって言ってるからヨシ」
こんなたくさんのスクショあっても見る時間ねーよヨシ
これをどうやって防ぐの?
わかりやすく言えば
一人目「なんか手順を省いちゃった気がするけど、次の人がちゃんとやるだろうからヨシ」
二人目「正しく動いてない気がするけど、前の人がスクショとってOKって言ってるからヨシ」
三人目「前の二人がOKって言ってるからヨシ」
こんなたくさんのスクショあっても見る時間ねーよヨシ
これをどうやって防ぐの?
332デフォルトの名無しさん
2021/02/17(水) 23:19:39.55ID:FwS3TBTC333デフォルトの名無しさん
2021/02/17(水) 23:24:26.28ID:ltamn3iy こいつは相手にしちゃダメな人だったか、テスラでもトヨタでも自動運転のテストを公道でやってますが
担保するために何をやっているかと言えば色々な現実的な状況や環境、人の動きなど特殊な例外パターンを
実地でチェックシートを用意してテストしてます。コードを書いて自己満足しているわけではありません。
そもそも自動運転というか自動学習のようなモデルでは何が正しいのかを定義することさえ困難です
「論点をすり替えて答えた気」といっていますがあなたが何を「論点」としているのか、まったくもって
説明していません。とても残念な方だと思いますが同僚や仲間には迷惑をかけないようにしましょう
担保するために何をやっているかと言えば色々な現実的な状況や環境、人の動きなど特殊な例外パターンを
実地でチェックシートを用意してテストしてます。コードを書いて自己満足しているわけではありません。
そもそも自動運転というか自動学習のようなモデルでは何が正しいのかを定義することさえ困難です
「論点をすり替えて答えた気」といっていますがあなたが何を「論点」としているのか、まったくもって
説明していません。とても残念な方だと思いますが同僚や仲間には迷惑をかけないようにしましょう
334デフォルトの名無しさん
2021/02/17(水) 23:26:31.02ID:FwS3TBTC >>333
だから論点すり替えるなって言ってるだろ
自動運転の話なんかしてないんだわ
「手動テストでどうやってちゃんと書いてあるとおりにテストしたと担保するの?」
これに答えればいい。色々やってます!は答えじゃないからな
だから論点すり替えるなって言ってるだろ
自動運転の話なんかしてないんだわ
「手動テストでどうやってちゃんと書いてあるとおりにテストしたと担保するの?」
これに答えればいい。色々やってます!は答えじゃないからな
335デフォルトの名無しさん
2021/02/17(水) 23:35:59.81ID:ltamn3iy 「手動テストでどうやってちゃんと書いてあるとおりにテストしたと担保するの?」
「(手動テストでは)テスト項目を作成し、(完璧な)テスト要員はテスト(それに完全に従い)した結果を記録します」
この時、不良なテスト要員やテスト抜け、人間らしいヒューマンエラー許容しません。これはテストコードを
作成した場合についても同じです。だからあんたの脳内に大事にしまってある「論点」を語りなさい
「(手動テストでは)テスト項目を作成し、(完璧な)テスト要員はテスト(それに完全に従い)した結果を記録します」
この時、不良なテスト要員やテスト抜け、人間らしいヒューマンエラー許容しません。これはテストコードを
作成した場合についても同じです。だからあんたの脳内に大事にしまってある「論点」を語りなさい
336デフォルトの名無しさん
2021/02/17(水) 23:52:39.21ID:rF5wbzd/ 自動テストだと手動テストでできない説明ができるって?
337デフォルトの名無しさん
2021/02/18(木) 00:00:13.06ID:uiIjzHNM >>335
> 「(手動テストでは)テスト項目を作成し、(完璧な)テスト要員はテスト(それに完全に従い)した結果を記録します」
完璧なテスト要員なんて存在しません。
書いてあるテスト項目通りに、人間が作業したことを担保(記録)する方法を聞いています。
「完璧に記録するにはどうすればいいですか?」という質問に対して
「結果を記録します」は答えになっていません。
それが質問です。
> 「(手動テストでは)テスト項目を作成し、(完璧な)テスト要員はテスト(それに完全に従い)した結果を記録します」
完璧なテスト要員なんて存在しません。
書いてあるテスト項目通りに、人間が作業したことを担保(記録)する方法を聞いています。
「完璧に記録するにはどうすればいいですか?」という質問に対して
「結果を記録します」は答えになっていません。
それが質問です。
338デフォルトの名無しさん
2021/02/18(木) 00:03:21.14ID:CDAKHrDM 自動テストはオマケ。最後は品質保証チーム。
339デフォルトの名無しさん
2021/02/18(木) 00:04:06.22ID:uiIjzHNM >>336
> 自動テストだと手動テストでできない説明ができるって?
今の論点は「テスト項目通りに間違いなくテストを行ったか?」です
人間がやる以上、間違い(ミス)すること作業することはできないので、それを防ぐのが自動テストです。
もし手動テストでやる場合「書いてあるテスト項目に従い人間が間違いなく行動する」
または「人間の行動を後から再現できるように完璧に記録する」のどちらかが必要になるはずです
これだけやって、ようやく自動テストと同等の信頼性が得られますが、
それでも実行速度(テスト実行時間)はコンピュータにはかないません。
> 自動テストだと手動テストでできない説明ができるって?
今の論点は「テスト項目通りに間違いなくテストを行ったか?」です
人間がやる以上、間違い(ミス)すること作業することはできないので、それを防ぐのが自動テストです。
もし手動テストでやる場合「書いてあるテスト項目に従い人間が間違いなく行動する」
または「人間の行動を後から再現できるように完璧に記録する」のどちらかが必要になるはずです
これだけやって、ようやく自動テストと同等の信頼性が得られますが、
それでも実行速度(テスト実行時間)はコンピュータにはかないません。
340デフォルトの名無しさん
2021/02/18(木) 00:04:52.19ID:uiIjzHNM 人間がやる以上、間違い(ミス)することなく作業することはできないので、それを防ぐのが自動テストです。
341デフォルトの名無しさん
2021/02/18(木) 00:05:13.93ID:GR+auC/2 やっぱマウントポジション取りたいストレスだらけの無能ハゲやったか
手動テストって上の方でも書いてるけど、ほんまもんの気狂いだなww
同様にテストコードも完璧なテストなんてありませんし書けません
手動テストって上の方でも書いてるけど、ほんまもんの気狂いだなww
同様にテストコードも完璧なテストなんてありませんし書けません
342デフォルトの名無しさん
2021/02/18(木) 00:07:58.06ID:uiIjzHNM343デフォルトの名無しさん
2021/02/18(木) 00:09:19.27ID:uiIjzHNM > 同様にテストコードも完璧なテストなんてありませんし書けません
だーれも完璧なテストがあるなんて言ってない
完璧なテストがない=必ず後で修正が入るからこそ、
何度も高速に同じテストを実行できることが重要なんだわ
だーれも完璧なテストがあるなんて言ってない
完璧なテストがない=必ず後で修正が入るからこそ、
何度も高速に同じテストを実行できることが重要なんだわ
344デフォルトの名無しさん
2021/02/18(木) 00:10:15.82ID:uiIjzHNM 何度も高速に同じテストを実行できることが重要だから
それを人間の手動テストでどうやるの?と聞いてる
無理。だから自動テストが重要
って答えになるやろが?
それを人間の手動テストでどうやるの?と聞いてる
無理。だから自動テストが重要
って答えになるやろが?
345デフォルトの名無しさん
2021/02/18(木) 00:29:33.49ID:unHOG45Z は?全く苦労に見合った見返りが見えないんだが?
あとサブルーチンの戻り値で分岐しまくるコードが入りまくってるときに
テストコードってどうやって書くの?
戻り値を意図的に制御できないじゃん?
あとサブルーチンの戻り値で分岐しまくるコードが入りまくってるときに
テストコードってどうやって書くの?
戻り値を意図的に制御できないじゃん?
346デフォルトの名無しさん
2021/02/18(木) 00:31:37.57ID:uiIjzHNM347デフォルトの名無しさん
2021/02/18(木) 00:34:28.27ID:uiIjzHNM 手動テスト vs 自動テストで
ドロー(引き分け)になる項目を持ってきて
勝てると思ってるんだろうか?
手動テストは、高速に同じテストを何度も実行できない
手動テストは、正しくテストをしたという担保がない
この項目で負けてるだろうが
そこに引き分け項目持ってきても勝てねーよw
ドロー(引き分け)になる項目を持ってきて
勝てると思ってるんだろうか?
手動テストは、高速に同じテストを何度も実行できない
手動テストは、正しくテストをしたという担保がない
この項目で負けてるだろうが
そこに引き分け項目持ってきても勝てねーよw
348デフォルトの名無しさん
2021/02/18(木) 00:42:57.81ID:80X4NLoW なんかもう、テストコード書く書かないのスレ立ててそこでやれば?いつまでこのネタ引っ張るの?
349デフォルトの名無しさん
2021/02/18(木) 00:43:39.30ID:GR+auC/2 >>342
思い込みのハゲしい人ですね。最初からいいますよ?私は自動テストも手動テストも否定してない。まず上の方の
人たちと同一人物視をやめなさい。あなたは「担保するの」と書いていて「速度」のことなんて、ID上は今まで
1回も言っていません。ちゃんと質問するなら
「手動テスト”だけ”で仕様通りにテストを行い、変更があったら”同じテストを繰り返した”と
担保して、素早いテストの繰り返しによる開発を継続するのでしょうか?」ですよね
もちろん手動テスト”だけ”でも時間と費用があれば無理ではありませんが、当然時間がかかります。
この質問であれば、「素早い開発」の要件を満たせないのでテストコードによるイテレーションテスト「も」
必要になります。「無理」というのはあんたの頭の中でできてるストーリーに無理ができているだけです。
「嘘つくな(笑) オープンソースでなんか証拠持ってきてみ 」
このような会話は5chだから通用しますが、現実世界ではあなたは爪弾きでしょう。何を言いたいのか
サッパリ分かりません。日本語が不自由な方かと思いましたが、思考が不自由な方だ
1.聞きたいことが質問にまとめられていない
2.聞きたいことを回答する人を馬鹿にして遊んでる
3.最初から(自分だけの)結論ありきで語っている
また頻繁に変更が入るコードで何度も同じテストを実行することはありますが、変更が入らないコードでは
同じテストを実行する事は無駄です。一部のツールはテスト結果で省略すらします。
自動vs手動という考えはあんたの頭の中にしかない初めて披露された考えです。この両者は対立構造では
ありませんし、ましてや勝つとか負けるとかどーでもいい事です。それがマウントと言っているのですよ
思い込みのハゲしい人ですね。最初からいいますよ?私は自動テストも手動テストも否定してない。まず上の方の
人たちと同一人物視をやめなさい。あなたは「担保するの」と書いていて「速度」のことなんて、ID上は今まで
1回も言っていません。ちゃんと質問するなら
「手動テスト”だけ”で仕様通りにテストを行い、変更があったら”同じテストを繰り返した”と
担保して、素早いテストの繰り返しによる開発を継続するのでしょうか?」ですよね
もちろん手動テスト”だけ”でも時間と費用があれば無理ではありませんが、当然時間がかかります。
この質問であれば、「素早い開発」の要件を満たせないのでテストコードによるイテレーションテスト「も」
必要になります。「無理」というのはあんたの頭の中でできてるストーリーに無理ができているだけです。
「嘘つくな(笑) オープンソースでなんか証拠持ってきてみ 」
このような会話は5chだから通用しますが、現実世界ではあなたは爪弾きでしょう。何を言いたいのか
サッパリ分かりません。日本語が不自由な方かと思いましたが、思考が不自由な方だ
1.聞きたいことが質問にまとめられていない
2.聞きたいことを回答する人を馬鹿にして遊んでる
3.最初から(自分だけの)結論ありきで語っている
また頻繁に変更が入るコードで何度も同じテストを実行することはありますが、変更が入らないコードでは
同じテストを実行する事は無駄です。一部のツールはテスト結果で省略すらします。
自動vs手動という考えはあんたの頭の中にしかない初めて披露された考えです。この両者は対立構造では
ありませんし、ましてや勝つとか負けるとかどーでもいい事です。それがマウントと言っているのですよ
350デフォルトの名無しさん
2021/02/18(木) 00:44:42.11ID:vQ0bM4Ab >>345
一般的な言語なら普通にできるよ
一般的な言語なら普通にできるよ
351デフォルトの名無しさん
2021/02/18(木) 00:45:02.81ID:uiIjzHNM 長文読まないよ
352デフォルトの名無しさん
2021/02/18(木) 00:45:40.48ID:uiIjzHNM 結局の所、手動テストは時間がかかって
信頼性もないってことだろ
信頼性もないってことだろ
353デフォルトの名無しさん
2021/02/18(木) 00:46:31.03ID:unHOG45Z >>347
自動テストでそれは解決できないだろ
自動テストでそれは解決できないだろ
354デフォルトの名無しさん
2021/02/18(木) 00:48:39.39ID:uiIjzHNM355デフォルトの名無しさん
2021/02/18(木) 00:49:53.24ID:GR+auC/2356デフォルトの名無しさん
2021/02/18(木) 00:51:16.80ID:unHOG45Z >>354
自動テストってなんで正しいの?
自動テストってなんで正しいの?
357デフォルトの名無しさん
2021/02/18(木) 00:52:15.60ID:unHOG45Z 自動テストってコードありきで作っちゃったゴミカステストしか見たことないよ
358デフォルトの名無しさん
2021/02/18(木) 00:54:40.11ID:uiIjzHNM >>356
それをいうなら、
「自動テストは、正しくテストをしたという担保があるの?」
だよね。
コンピュータは書いたとおりに動く
だから、テストコードで書いたテストを
正しく行ったことが担保されている
それに対して人間は、いくらテスト指示書にこうしろと
書いてあったとしても間違えることがあるしサボることもある
なんかおかしい気がしたけど気づかずにスクショ取ってOKと記入してしまうこともある
だがあとになって調べようとしても、その時のテストが
間違っていたり手抜きしたことがわからない
それをいうなら、
「自動テストは、正しくテストをしたという担保があるの?」
だよね。
コンピュータは書いたとおりに動く
だから、テストコードで書いたテストを
正しく行ったことが担保されている
それに対して人間は、いくらテスト指示書にこうしろと
書いてあったとしても間違えることがあるしサボることもある
なんかおかしい気がしたけど気づかずにスクショ取ってOKと記入してしまうこともある
だがあとになって調べようとしても、その時のテストが
間違っていたり手抜きしたことがわからない
359デフォルトの名無しさん
2021/02/18(木) 00:56:12.19ID:GR+auC/2 >>357
OSSなら基本的にテストファーストはしてないね、プロトタイプ作って0.1にバージョニングして
後からテストコード追加ですね。業務コードだとTDDを最初からやろうとする企業もあるけどさ
作ったテストが要件や機能に合わなくなることはあるあるネタだ
OSSなら基本的にテストファーストはしてないね、プロトタイプ作って0.1にバージョニングして
後からテストコード追加ですね。業務コードだとTDDを最初からやろうとする企業もあるけどさ
作ったテストが要件や機能に合わなくなることはあるあるネタだ
360デフォルトの名無しさん
2021/02/18(木) 00:57:26.69ID:unHOG45Z >>358
いや、ないよ
いや、ないよ
361デフォルトの名無しさん
2021/02/18(木) 00:57:49.51ID:uiIjzHNM >>359
普通、一つのコミットの中にテストコードと実装コードが含まれるけど
テストファーストしてないという根拠は?
後からテストコードが追加されたことがあるからといって、
それはテストファーストしてない理由にはならない
普通、一つのコミットの中にテストコードと実装コードが含まれるけど
テストファーストしてないという根拠は?
後からテストコードが追加されたことがあるからといって、
それはテストファーストしてない理由にはならない
362デフォルトの名無しさん
2021/02/18(木) 00:58:20.53ID:uiIjzHNM363デフォルトの名無しさん
2021/02/18(木) 00:59:52.93ID:unHOG45Z364デフォルトの名無しさん
2021/02/18(木) 01:01:03.98ID:unHOG45Z バカが作ればバカなりな正常が定義されるだけだろ
夢みんな
夢みんな
365デフォルトの名無しさん
2021/02/18(木) 01:01:59.98ID:uiIjzHNM366デフォルトの名無しさん
2021/02/18(木) 01:02:43.80ID:uiIjzHNM 手動テストではいくらテスト項目が書いてあったからって
そのとおり正しくテストしたという保証がまったくないんだわ
人間は間違えることがあるから
そのとおり正しくテストしたという保証がまったくないんだわ
人間は間違えることがあるから
■ このスレッドは過去ログ倉庫に格納されています
