単体テストは自動化するものだと思っていたから
一瞬何を言っているのかわからなかった
「単体テストを手動で行いエビデンス取る」の破壊力
2020/09/23(水) 12:29:11.02ID:irsqaiS+
2020/09/23(水) 15:38:04.57ID:93RKYZzv
自動化=手抜き
2020/09/23(水) 16:08:31.57ID:C5g/Szna
SIだぁ
2020/09/23(水) 16:09:00.51ID:F6076QMN
手動=努力・根性・体育会系・無能
2020/09/23(水) 16:56:51.63ID:EcLAlZaL
たぶん、手動、自動化以前に単体テストができない人がいる気がする。
2020/09/23(水) 17:43:13.71ID:qBH8cAxU
自動化って
メソッドsumAtoFの場合
引数A,B,C,D,E,Fの
処理S=A+B+C+D+E+F
戻り値S
のチェックって
int S=sumAtoF(A,B,C,D,E,F);
int chkS=A+B+C+D+E+F;
if(S!=chkS)
{
エラー
}
みたいになるの?
無駄じゃね?
メソッドsumAtoFの場合
引数A,B,C,D,E,Fの
処理S=A+B+C+D+E+F
戻り値S
のチェックって
int S=sumAtoF(A,B,C,D,E,F);
int chkS=A+B+C+D+E+F;
if(S!=chkS)
{
エラー
}
みたいになるの?
無駄じゃね?
2020/09/23(水) 18:00:08.33ID:O1ICXtuo
2020/09/23(水) 18:10:37.43ID:9Qi89m1Q
95
2020/09/23(水) 19:22:31.50ID:Sj03UQBW >>7
それな。
4,000行近くの神クラスがあらゆるクラスと相互で強力な依存関係を持っていて、さぁ!単体テストやろう!
って言われても...単体って何だよ(哲学)
こんな感じになる。
いやもう俺の会社やだ。泣きたいわ。
それな。
4,000行近くの神クラスがあらゆるクラスと相互で強力な依存関係を持っていて、さぁ!単体テストやろう!
って言われても...単体って何だよ(哲学)
こんな感じになる。
いやもう俺の会社やだ。泣きたいわ。
2020/09/23(水) 19:23:12.39ID:cCwBtdaA
>>8
どうやって21って出すん?
どうやって21って出すん?
2020/09/23(水) 19:28:57.47ID:9Qi89m1Q
2020/09/23(水) 19:29:13.20ID:9Qi89m1Q
>>10へのレス
2020/09/23(水) 19:32:38.82ID:cCwBtdaA
2020/09/23(水) 19:35:59.63ID:cCwBtdaA
別で書いた計算式と本処理を比較するって点は一緒じゃん
それがエクセルでも処理言語でもやってることに違いなくね?
それがエクセルでも処理言語でもやってることに違いなくね?
2020/09/23(水) 19:37:36.63ID:9Qi89m1Q
>>13
テストは、あらかじめわかっている答えと比較することなんですが?
あらかじめわかってるはずの答えを計算するなという話をしてる
その計算ロジックにバグがあったら、テスト(比較)で失敗したとしても
正しい値がなにかわからんだろ
テストは、あらかじめわかっている答えと比較することなんですが?
あらかじめわかってるはずの答えを計算するなという話をしてる
その計算ロジックにバグがあったら、テスト(比較)で失敗したとしても
正しい値がなにかわからんだろ
2020/09/23(水) 19:38:38.76ID:cCwBtdaA
2020/09/23(水) 19:42:40.76ID:9Qi89m1Q
>>16
自分で仕様を考えたこと無いのか?
1,2,3,4,5,6を与えたら21になる関数を作るんだろ
21をだすなら電卓でもなんでも使えよ
電卓が不安なら色んな方法を使って21が正しいと
確信もてるまで努力しろよ
そして21と比較するだろうが、21と比較する場面で
計算式を使ったら今度はその計算式が正しいかを
努力するしかなくなるだろうーが
それこそ意味がない
自分で仕様を考えたこと無いのか?
1,2,3,4,5,6を与えたら21になる関数を作るんだろ
21をだすなら電卓でもなんでも使えよ
電卓が不安なら色んな方法を使って21が正しいと
確信もてるまで努力しろよ
そして21と比較するだろうが、21と比較する場面で
計算式を使ったら今度はその計算式が正しいかを
努力するしかなくなるだろうーが
それこそ意味がない
2020/09/23(水) 19:48:02.82ID:cCwBtdaA
2020/09/23(水) 19:53:07.37ID:9Qi89m1Q
2020/09/23(水) 19:55:55.85ID:cCwBtdaA
2020/09/23(水) 19:57:05.25ID:9Qi89m1Q
2020/09/23(水) 19:58:00.53ID:9Qi89m1Q
テストはロジック(関数)と固定値を比較することでやるという
基本的なことも知らないやつが居るとはなw
基本的なことも知らないやつが居るとはなw
2020/09/23(水) 20:00:49.03ID:cCwBtdaA
>>21
固定値が欲しいんだろ?
だからログでも出せばいいじゃんってこと
結局さ
やってることは1つの仕様に対して2つ処理書いてその値を比べてるだけ
別にテストコードに書いた値や処理のが正しい根拠もないし
本処理のが不出来である根拠もないでしょ
固定値が欲しいんだろ?
だからログでも出せばいいじゃんってこと
結局さ
やってることは1つの仕様に対して2つ処理書いてその値を比べてるだけ
別にテストコードに書いた値や処理のが正しい根拠もないし
本処理のが不出来である根拠もないでしょ
2020/09/23(水) 20:03:50.72ID:I97mf4gB
自動でやっても、テストコードとエビデンスのレビューをしろ、という
キチガイもいる
キチガイもいる
2020/09/23(水) 20:04:30.50ID:cCwBtdaA
俺、この結論はどこまで行っても出ないと思うぜ
どっちが正しいかなんて誰にもわからん
どっちが正しいかなんて誰にもわからん
2020/09/23(水) 20:15:06.99ID:9Qi89m1Q
2020/09/23(水) 20:16:03.34ID:9Qi89m1Q
>>23
> やってることは1つの仕様に対して2つ処理書いてその値を比べてるだけ
それはお前がやってる無意味なことですよね?w
そんな無意味なことはしないで、
1つの処理と1つの正しい答えを比べろって
俺は言った
> やってることは1つの仕様に対して2つ処理書いてその値を比べてるだけ
それはお前がやってる無意味なことですよね?w
そんな無意味なことはしないで、
1つの処理と1つの正しい答えを比べろって
俺は言った
2020/09/23(水) 20:17:23.00ID:cCwBtdaA
テストと言いつつできるのは計算過程と処理結果を残すだけだと思ってるよ俺は
長年考えた結果
正しい値なんてのは実は物理的に誰も知りえないということを理解した
なのでテストで重視するのは俺は組んだコードのエビデンスの方
どんな処理書いてどんなログ出したか
自動テストは結局同じやつが作ってる以上同じ不具合入ってるだろうなって思ってるw
長年考えた結果
正しい値なんてのは実は物理的に誰も知りえないということを理解した
なのでテストで重視するのは俺は組んだコードのエビデンスの方
どんな処理書いてどんなログ出したか
自動テストは結局同じやつが作ってる以上同じ不具合入ってるだろうなって思ってるw
2020/09/23(水) 20:22:00.58ID:9Qi89m1Q
> テストと言いつつできるのは計算過程と処理結果を残すだけだと思ってるよ俺は
処理結果を残すだけというのは
間違った処理結果を残していてもいいって話ですか?w
そうですね。お前はログ取るまでで
そのログを見るのは他の人ですもんね(笑)
こいつに、盗まれないように見ててって言ったら
盗まれました。ちゃんと見てました。って言いそうw
処理結果を残すだけというのは
間違った処理結果を残していてもいいって話ですか?w
そうですね。お前はログ取るまでで
そのログを見るのは他の人ですもんね(笑)
こいつに、盗まれないように見ててって言ったら
盗まれました。ちゃんと見てました。って言いそうw
2020/09/23(水) 20:28:09.64ID:cCwBtdaA
2020/09/23(水) 20:35:36.21ID:9Qi89m1Q
>>30
論点がずれてるね。
お前はログを見て21であることを知って
あとからこの21は正しいのだろうか?と考えて判断すると言ってる。
どうやって21が正しいか判断するの?w
俺は、最初に21が正しいと確信を持ってコードに書いてると言ってる。
だからお前がやってるログを取るだとかログを見るだとかいう無駄な作業がいらない
論点がずれてるね。
お前はログを見て21であることを知って
あとからこの21は正しいのだろうか?と考えて判断すると言ってる。
どうやって21が正しいか判断するの?w
俺は、最初に21が正しいと確信を持ってコードに書いてると言ってる。
だからお前がやってるログを取るだとかログを見るだとかいう無駄な作業がいらない
2020/09/23(水) 21:34:22.05ID:O1ICXtuo
世の中にはテストケース1個作ることすらできない人もいるんだな
これは驚いた
これは驚いた
2020/09/23(水) 21:58:03.76ID:cCwBtdaA
2020/09/23(水) 21:58:08.70ID:9Qi89m1Q
ある関数を作ったその関数は
1, 2, 3 という引数を与えると3421という値がログに出力された
「これが書いたコードにバグなんてあるはずがない。3421は正しい計算結果だ。」
そういってログを取れば十分とつぶやいた
1, 2, 3 という引数を与えると3421という値がログに出力された
「これが書いたコードにバグなんてあるはずがない。3421は正しい計算結果だ。」
そういってログを取れば十分とつぶやいた
2020/09/23(水) 21:59:03.06ID:9Qi89m1Q
2020/09/24(木) 02:54:46.05ID:2iTMkqwR
>>35
え?じゃあどうやって21出したん?
え?じゃあどうやって21出したん?
2020/09/24(木) 08:29:50.90ID:o9SDcriM
>>7
んなプログラマーってどうやって仕事をしてんだろう?
んなプログラマーってどうやって仕事をしてんだろう?
2020/09/24(木) 09:17:28.17ID:27/WCIy4
>>36
あのな、ソフトウェアの開発っていうのは
○○を入れたら○○になる関数が欲しい!
という考えの連鎖で作っていくんだよ
お前は誰かから課題を与えられるんだろうけどな
自分で考えて作るってことしたことないでしょ
あのな、ソフトウェアの開発っていうのは
○○を入れたら○○になる関数が欲しい!
という考えの連鎖で作っていくんだよ
お前は誰かから課題を与えられるんだろうけどな
自分で考えて作るってことしたことないでしょ
39デフォルトの名無しさん
2020/09/24(木) 10:23:36.26ID:ZK3wgiUi 作って終わりのシステムだったら手動でも問題ないと思う
Sierのユーザはテストのエビデンスを欲しがる人が多いから
エビデンスは納品物として残さないといけない
開発者よりもユーザ側の事情が大きいのじゃないかな
Sierのユーザはテストのエビデンスを欲しがる人が多いから
エビデンスは納品物として残さないといけない
開発者よりもユーザ側の事情が大きいのじゃないかな
2020/09/24(木) 10:28:05.64ID:27/WCIy4
客「正しく動いているというエビデンスが欲しい」
SI「正しく動いてるかどうかなんてどうやって証明したらいいかしらん
テストやったというスクショ用意すりゃいいんじゃないか?」
これ
SI「正しく動いてるかどうかなんてどうやって証明したらいいかしらん
テストやったというスクショ用意すりゃいいんじゃないか?」
これ
2020/09/24(木) 10:41:05.69ID:2iTMkqwR
そうそう、結局こういう入力(ユーザによる操作や設定ファイルも含む)に対してこう動くようにしましたよ
としか言えない
だからエビデンスが重要だって言ってんじゃん
21が正解かどうかは誰にもわからないんだよ
もっと複雑な計算で客も式は知ってるけど
実際に計算した値はわからんようなのだったらどうやって出すよ?
PG「大丈夫、エクセルで数式でこのように出した値と一致しています!」
客「は?なんでそれが正しいの?」
PG「え?」
みたいになるやつはここの理解が足りない
どこまで突き詰めても究極的にはわからない
わからないものを説明しなければならない
としか言えない
だからエビデンスが重要だって言ってんじゃん
21が正解かどうかは誰にもわからないんだよ
もっと複雑な計算で客も式は知ってるけど
実際に計算した値はわからんようなのだったらどうやって出すよ?
PG「大丈夫、エクセルで数式でこのように出した値と一致しています!」
客「は?なんでそれが正しいの?」
PG「え?」
みたいになるやつはここの理解が足りない
どこまで突き詰めても究極的にはわからない
わからないものを説明しなければならない
2020/09/24(木) 10:45:22.65ID:27/WCIy4
> 21が正解かどうかは誰にもわからないんだよ
じゃあログ出す意味ないじゃんw
どうせ文字化け出力してても正解かどうかわからないだろ
じゃあログ出す意味ないじゃんw
どうせ文字化け出力してても正解かどうかわからないだろ
2020/09/24(木) 10:47:21.97ID:27/WCIy4
> もっと複雑な計算で客も式は知ってるけど
> 実際に計算した値はわからんようなのだったらどうやって出すよ?
計算式は神が作り出したものとか、いきなり湧いて出てきたって思ってそうw
高校レベルの数学はそうだね。計算式は覚えるもの
だけどな、本当は計算式っていうのは、ある値を出したいと思って
「計算式を作る」ものなんだよ。作るのは計算式。それがコード
> 実際に計算した値はわからんようなのだったらどうやって出すよ?
計算式は神が作り出したものとか、いきなり湧いて出てきたって思ってそうw
高校レベルの数学はそうだね。計算式は覚えるもの
だけどな、本当は計算式っていうのは、ある値を出したいと思って
「計算式を作る」ものなんだよ。作るのは計算式。それがコード
2020/09/24(木) 10:51:24.16ID:27/WCIy4
ゲームの当たり判定でも、あれとこれがぶつかったのは
どう計算すれば導き出されるんだ?って悩んで
ぶつかったという答えを出す計算式を作り出すものなんだが
本を読んで計算式をみて、ぶつかったかどうか?
この計算式を使えばぶつかったという答えが出るんだよ
みたいに思ってるんだろう。
自分でアルゴリズムを考えたことがないから
計算式ググって、そのとおり計算して
なるほど、これが計算した答えか。
答えなんて計算しないとわからんな。と言ってる
計算式を作り出したことがない
どう計算すれば導き出されるんだ?って悩んで
ぶつかったという答えを出す計算式を作り出すものなんだが
本を読んで計算式をみて、ぶつかったかどうか?
この計算式を使えばぶつかったという答えが出るんだよ
みたいに思ってるんだろう。
自分でアルゴリズムを考えたことがないから
計算式ググって、そのとおり計算して
なるほど、これが計算した答えか。
答えなんて計算しないとわからんな。と言ってる
計算式を作り出したことがない
2020/09/24(木) 11:29:14.71ID:2iTMkqwR
フフフ、雑魚の遠吠えが心地いいなw
2020/09/24(木) 11:30:08.73ID:7nzCtSCV
内部にジェネレータとかIOとかを持ってて、冪等じゃない関数のテストってどうやったらいいの?
そういうのは単体テストの対象外?
そういうのは単体テストの対象外?
2020/09/24(木) 12:04:18.26ID:27/WCIy4
2020/09/24(木) 12:35:20.58ID:2iTMkqwR
2020/09/24(木) 12:37:03.68ID:sW11ypIO
>>41
>そうそう、結局こういう入力(ユーザによる操作や設定ファイルも含む)に対してこう動くようにしましたよ
>としか言えない
考え方が間違ってる
入力に対する出力が要求仕様通りになることをこういうテストケースで確認しましたよと言えればいい
21が正解かどうかは要求仕様による
テストケースを作る能力の有無の前に
要件定義がまともにできてることが必要
できてなければデスマーチ確定
>そうそう、結局こういう入力(ユーザによる操作や設定ファイルも含む)に対してこう動くようにしましたよ
>としか言えない
考え方が間違ってる
入力に対する出力が要求仕様通りになることをこういうテストケースで確認しましたよと言えればいい
21が正解かどうかは要求仕様による
テストケースを作る能力の有無の前に
要件定義がまともにできてることが必要
できてなければデスマーチ確定
2020/09/24(木) 12:40:33.44ID:2iTMkqwR
2020/09/24(木) 12:51:30.19ID:27/WCIy4
>>48
> お前がエクセルで計算した値だろw
何で計算するとかどうでもいい話だろ
何をする関数を作りたいのか?
作りたい関数は「何を入力とし、何を出力とするのか」
その仕様を決めてから関数を実装する。そして正しく実装されてるかテストする
お前は仕様を決めずに、関数を実装して
その関数が出力する答えが正しい!バグなんてない!って言ってんのか?
繰り返すぞ
仕様を決めてないのに関数を実装してんのか?
> お前がエクセルで計算した値だろw
何で計算するとかどうでもいい話だろ
何をする関数を作りたいのか?
作りたい関数は「何を入力とし、何を出力とするのか」
その仕様を決めてから関数を実装する。そして正しく実装されてるかテストする
お前は仕様を決めずに、関数を実装して
その関数が出力する答えが正しい!バグなんてない!って言ってんのか?
繰り返すぞ
仕様を決めてないのに関数を実装してんのか?
2020/09/24(木) 13:00:15.99ID:wzh1JL/V
関数なんかフィーリングでつくるだろうふつう
関数の設計?関数仕様書みたいのをいちいち書かせるタイプのアフォなんか?
関数の設計?関数仕様書みたいのをいちいち書かせるタイプのアフォなんか?
2020/09/24(木) 13:08:10.28ID:2iTMkqwR
2020/09/24(木) 13:17:28.23ID:sW11ypIO
>>50
何を書いたつもりなの?
何を書いたつもりなの?
2020/09/24(木) 14:21:13.46ID:27/WCIy4
2020/09/24(木) 14:27:23.42ID:2iTMkqwR
2020/09/24(木) 14:29:36.05ID:27/WCIy4
> え?じゃあどうやって21って出したの?
最初に関数を実装するんじゃやなくて
仕様を定義しましょうと言ってる
お前は仕様を決めずにいきなり関数書いて、その関数の実行結果を出力して
俺がコードにバグを入れるなんてありえない。だから21が正しい!と言ってるだけ。
テストを全くしてない
最初に関数を実装するんじゃやなくて
仕様を定義しましょうと言ってる
お前は仕様を決めずにいきなり関数書いて、その関数の実行結果を出力して
俺がコードにバグを入れるなんてありえない。だから21が正しい!と言ってるだけ。
テストを全くしてない
2020/09/24(木) 14:31:27.33ID:2iTMkqwR
2020/09/24(木) 14:35:32.71ID:27/WCIy4
>>58
> どうやって21を出したの?
「例:1,2,3,4,5,6を引数に渡したら21を返す関数が欲しい」
という要件
最初は関数(コード)は存在しない
最初に関数(コード)を実装してはいけない
実装した関数(コード)で出してはいけない
実装する前に決める話
どうやって21を出したの?
それはその関数が欲しい人に聞け
> どうやって21を出したの?
「例:1,2,3,4,5,6を引数に渡したら21を返す関数が欲しい」
という要件
最初は関数(コード)は存在しない
最初に関数(コード)を実装してはいけない
実装した関数(コード)で出してはいけない
実装する前に決める話
どうやって21を出したの?
それはその関数が欲しい人に聞け
2020/09/24(木) 14:41:24.36ID:2iTMkqwR
>>59
ええ?A+B+C+D+E+Fなんだけど?
ええ?A+B+C+D+E+Fなんだけど?
レスを投稿する
ニュース
- 【速報】政府、与党がNISA未成年解禁を検討 ★2 [蚤の市★]
- 中国外務省「正式な発言撤回なければ受け入れず」 高市首相は台湾有事「存立危機事態」言及せずも「言及しないことと撤回は別問題」★12 [ぐれ★]
- 【TV】ファン5万人がガチで投票! プロ野球総選挙、栄えある1位は [牛丼★]
- 「まだ朝7時に通勤してるんですか?」人気VTuberが語った“働き方への提言”に議論沸騰 [夜のけいちゃん★]
- 【*彡】巨人・坂本勇人 『流れ星に何を願うか』の質問に「結婚相手」と即答、結婚願望告白 女性ファンから歓声と悲鳴 [鉄チーズ烏★]
- 【おこめ】ベトナムから密輸のコメを「国産」と偽り販売容疑、ベトナム人ら2人追送検…300トン売って1億3000万円稼いだか 大阪 ★2 [ぐれ★]
- 【ネトウヨ死亡w】AIに「日中関係の今後を予測してみて」と聞いた結果、「日本必敗」と判明 [314039747]
- 【画像】ぼく、久しぶりに見た松本若菜(41)が可愛くてに恋をする [904880432]
- 高市早苗「いいから黙って全部アタシに投資しなさい!」国際金融会議で発言し周囲ドン引き [165981677]
- (📞・᷄ὢ・᷅)はいおはぎ警察です……え?ウチはピザ屋じゃありません
- リステリン買っちった🥴
- プラトンの「哲人政治」は正しかったのでは? アホな大衆に政治家を選ばせるとロクなことにならない [653462351]
