「単体テストを手動で行いエビデンス取る」の破壊力 (710レス)
1-

1
(2): 2020/09/23(水)12:29 ID:irsqaiS+(1) AAS
単体テストは自動化するものだと思っていたから
一瞬何を言っているのかわからなかった
2: 2020/09/23(水)15:38 ID:93RKYZzv(1) AAS
自動化=手抜き
3: 2020/09/23(水)16:08 ID:C5g/Szna(1) AAS
SIだぁ
4: 2020/09/23(水)16:09 ID:F6076QMN(1) AAS
手動=努力・根性・体育会系・無能
5
(2): 2020/09/23(水)16:56 ID:EcLAlZaL(1) AAS
たぶん、手動、自動化以前に単体テストができない人がいる気がする。
6
(3): 2020/09/23(水)17:43 ID:qBH8cAxU(1) AAS
自動化って

メソッド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)
{
省4
7
(2): 2020/09/23(水)18:00 ID:O1ICXtuo(1/2) AAS
>>5
指定されたテストケースを実行できない人はそういないだろうが
過不足ないテストケースを作り出すのはむしろできる人のほうが少ない
自動化を阻む一番の要因
8
(3): 2020/09/23(水)18:10 ID:9Qi89m1Q(1/14) AAS
>>6
1+2+3+4+5+6 の結果が 21 になってることを確かめるのがテストだろ
なんでテストで変数使うんだよw
9: 5 2020/09/23(水)19:22 ID:Sj03UQBW(1) AAS
>>7
それな。
4,000行近くの神クラスがあらゆるクラスと相互で強力な依存関係を持っていて、さぁ!単体テストやろう!
って言われても...単体って何だよ(哲学)

こんな感じになる。
いやもう俺の会社やだ。泣きたいわ。
10
(1): 2020/09/23(水)19:23 ID:cCwBtdaA(1/11) AAS
>>8
どうやって21って出すん?
11: 2020/09/23(水)19:28 ID:9Qi89m1Q(2/14) AAS
>>8
お前は仕様を先に考えないのか?
先にどうなるか答えは決まってるだろ
12: 2020/09/23(水)19:29 ID:9Qi89m1Q(3/14) AAS
>>10へのレス
13
(1): 2020/09/23(水)19:32 ID:cCwBtdaA(2/11) AAS
>>8
エクセルとかで予め計算しておいた値と比較するんだろ?
俺とやってること変わんなくね?
14: 2020/09/23(水)19:35 ID:cCwBtdaA(3/11) AAS
別で書いた計算式と本処理を比較するって点は一緒じゃん
それがエクセルでも処理言語でもやってることに違いなくね?
15
(1): 2020/09/23(水)19:37 ID:9Qi89m1Q(4/14) AAS
>>13
テストは、あらかじめわかっている答えと比較することなんですが?

あらかじめわかってるはずの答えを計算するなという話をしてる
その計算ロジックにバグがあったら、テスト(比較)で失敗したとしても
正しい値がなにかわからんだろ
16
(1): 2020/09/23(水)19:38 ID:cCwBtdaA(4/11) AAS
>>15
だからどうやって21出すんだよって聞いてんじゃん
何言ってるのかわからないの?
17
(1): 2020/09/23(水)19:42 ID:9Qi89m1Q(5/14) AAS
>>16
自分で仕様を考えたこと無いのか?

1,2,3,4,5,6を与えたら21になる関数を作るんだろ
21をだすなら電卓でもなんでも使えよ

電卓が不安なら色んな方法を使って21が正しいと
確信もてるまで努力しろよ

そして21と比較するだろうが、21と比較する場面で
計算式を使ったら今度はその計算式が正しいかを
努力するしかなくなるだろうーが
それこそ意味がない
18
(1): 2020/09/23(水)19:48 ID:cCwBtdaA(5/11) AAS
>>17
だからエクセルだか、電卓だか、別で計算した値と比較するだけで
どっちが正しいかなんてわかんねんだろお前w
19
(1): 2020/09/23(水)19:53 ID:9Qi89m1Q(6/14) AAS
>>18
どっちが正しいかわからないから
計算式を書くなと言ってる

両方が同じ計算式だったら間違っていてもわからんだろ
片方が固定値であれば、こちらが正しい値であると考えてることがわかる
20
(1): 2020/09/23(水)19:55 ID:cCwBtdaA(6/11) AAS
>>19
大して違いないってw
だったらログでも出して変数にしときなよ
21
(1): 2020/09/23(水)19:57 ID:9Qi89m1Q(7/14) AAS
>>20
ログ出してどうするんだ?
何が正しいかどうかをどうやって確かめるんだw
22: 2020/09/23(水)19:58 ID:9Qi89m1Q(8/14) AAS
テストはロジック(関数)と固定値を比較することでやるという
基本的なことも知らないやつが居るとはなw
23
(2): 2020/09/23(水)20:00 ID:cCwBtdaA(7/11) AAS
>>21
固定値が欲しいんだろ?
だからログでも出せばいいじゃんってこと

結局さ
やってることは1つの仕様に対して2つ処理書いてその値を比べてるだけ
別にテストコードに書いた値や処理のが正しい根拠もないし
本処理のが不出来である根拠もないでしょ
24: 2020/09/23(水)20:03 ID:I97mf4gB(1) AAS
自動でやっても、テストコードとエビデンスのレビューをしろ、という
キチガイもいる
25: 2020/09/23(水)20:04 ID:cCwBtdaA(8/11) AAS
俺、この結論はどこまで行っても出ないと思うぜ
どっちが正しいかなんて誰にもわからん
26: 2020/09/23(水)20:15 ID:9Qi89m1Q(9/14) AAS
>>23
お前はログに21と出力されているのを見て
これがどうやって正しい答えだって判断するんだ?
正しい答えが21ってわからないって言ったのはお前だろw
27: 2020/09/23(水)20:16 ID:9Qi89m1Q(10/14) AAS
>>23
> やってることは1つの仕様に対して2つ処理書いてその値を比べてるだけ

それはお前がやってる無意味なことですよね?w

そんな無意味なことはしないで、
1つの処理と1つの正しい答えを比べろって
俺は言った
28: 2020/09/23(水)20:17 ID:cCwBtdaA(9/11) AAS
テストと言いつつできるのは計算過程と処理結果を残すだけだと思ってるよ俺は
長年考えた結果
正しい値なんてのは実は物理的に誰も知りえないということを理解した

なのでテストで重視するのは俺は組んだコードのエビデンスの方
どんな処理書いてどんなログ出したか
自動テストは結局同じやつが作ってる以上同じ不具合入ってるだろうなって思ってるw
29
(1): 2020/09/23(水)20:22 ID:9Qi89m1Q(11/14) AAS
> テストと言いつつできるのは計算過程と処理結果を残すだけだと思ってるよ俺は

処理結果を残すだけというのは
間違った処理結果を残していてもいいって話ですか?w

そうですね。お前はログ取るまでで
そのログを見るのは他の人ですもんね(笑)

こいつに、盗まれないように見ててって言ったら
盗まれました。ちゃんと見てました。って言いそうw
30
(1): 2020/09/23(水)20:28 ID:cCwBtdaA(10/11) AAS
>>29
うん
だってさっきの21みたいにどこまで突き詰めたって
同じ仕様に対して別で2つ処理書いて比較してるだけだもの
んでこれを同じやつがやってる以上こんなところに金なんかかけるだけ無駄
31
(1): 2020/09/23(水)20:35 ID:9Qi89m1Q(12/14) AAS
>>30
論点がずれてるね。

お前はログを見て21であることを知って
あとからこの21は正しいのだろうか?と考えて判断すると言ってる。
どうやって21が正しいか判断するの?w

俺は、最初に21が正しいと確信を持ってコードに書いてると言ってる。
だからお前がやってるログを取るだとかログを見るだとかいう無駄な作業がいらない
32: 2020/09/23(水)21:34 ID:O1ICXtuo(2/2) AAS
世の中にはテストケース1個作ることすらできない人もいるんだな
これは驚いた
33
(1): 2020/09/23(水)21:58 ID:cCwBtdaA(11/11) AAS
>>31
確信ってw
無理なこと言うなよw

お前が本処理に書いたA+B+C+D+E+Fも
21を出すために書いたA+B+C+D+E+Fも
どっちも胡散臭ぇんだよw

こんな簡単なことがわからねーのかよ
34: 2020/09/23(水)21:58 ID:9Qi89m1Q(13/14) AAS
ある関数を作ったその関数は
1, 2, 3 という引数を与えると3421という値がログに出力された

「これが書いたコードにバグなんてあるはずがない。3421は正しい計算結果だ。」

そういってログを取れば十分とつぶやいた
35
(1): 2020/09/23(水)21:59 ID:9Qi89m1Q(14/14) AAS
>>33
俺はそんなコード書いてないが?

こんな簡単なことがわからねーのかよw
IDも確認できねーのかよw
36
(1): 2020/09/24(木)02:54 ID:2iTMkqwR(1/12) AAS
>>35
え?じゃあどうやって21出したん?
37: 2020/09/24(木)08:29 ID:o9SDcriM(1) AAS
>>7
んなプログラマーってどうやって仕事をしてんだろう?
38: 2020/09/24(木)09:17 ID:27/WCIy4(1/12) AAS
>>36
あのな、ソフトウェアの開発っていうのは
○○を入れたら○○になる関数が欲しい!
という考えの連鎖で作っていくんだよ

お前は誰かから課題を与えられるんだろうけどな
自分で考えて作るってことしたことないでしょ
39: 2020/09/24(木)10:23 ID:ZK3wgiUi(1) AAS
作って終わりのシステムだったら手動でも問題ないと思う
Sierのユーザはテストのエビデンスを欲しがる人が多いから
エビデンスは納品物として残さないといけない

開発者よりもユーザ側の事情が大きいのじゃないかな
40: 2020/09/24(木)10:28 ID:27/WCIy4(2/12) AAS
客「正しく動いているというエビデンスが欲しい」
SI「正しく動いてるかどうかなんてどうやって証明したらいいかしらん
テストやったというスクショ用意すりゃいいんじゃないか?」

これ
41
(2): 2020/09/24(木)10:41 ID:2iTMkqwR(2/12) AAS
そうそう、結局こういう入力(ユーザによる操作や設定ファイルも含む)に対してこう動くようにしましたよ
としか言えない
だからエビデンスが重要だって言ってんじゃん
21が正解かどうかは誰にもわからないんだよ

もっと複雑な計算で客も式は知ってるけど
実際に計算した値はわからんようなのだったらどうやって出すよ?

PG「大丈夫、エクセルで数式でこのように出した値と一致しています!」
客「は?なんでそれが正しいの?」
PG「え?」

みたいになるやつはここの理解が足りない
省2
42: 2020/09/24(木)10:45 ID:27/WCIy4(3/12) AAS
> 21が正解かどうかは誰にもわからないんだよ
じゃあログ出す意味ないじゃんw
どうせ文字化け出力してても正解かどうかわからないだろ
43: 2020/09/24(木)10:47 ID:27/WCIy4(4/12) AAS
> もっと複雑な計算で客も式は知ってるけど
> 実際に計算した値はわからんようなのだったらどうやって出すよ?

計算式は神が作り出したものとか、いきなり湧いて出てきたって思ってそうw
高校レベルの数学はそうだね。計算式は覚えるもの

だけどな、本当は計算式っていうのは、ある値を出したいと思って
「計算式を作る」ものなんだよ。作るのは計算式。それがコード
44: 2020/09/24(木)10:51 ID:27/WCIy4(5/12) AAS
ゲームの当たり判定でも、あれとこれがぶつかったのは
どう計算すれば導き出されるんだ?って悩んで
ぶつかったという答えを出す計算式を作り出すものなんだが

本を読んで計算式をみて、ぶつかったかどうか?
この計算式を使えばぶつかったという答えが出るんだよ
みたいに思ってるんだろう。

自分でアルゴリズムを考えたことがないから
計算式ググって、そのとおり計算して
なるほど、これが計算した答えか。
答えなんて計算しないとわからんな。と言ってる
省1
45
(1): 2020/09/24(木)11:29 ID:2iTMkqwR(3/12) AAS
フフフ、雑魚の遠吠えが心地いいなw
46
(1): 2020/09/24(木)11:30 ID:7nzCtSCV(1) AAS
内部にジェネレータとかIOとかを持ってて、冪等じゃない関数のテストってどうやったらいいの?
そういうのは単体テストの対象外?
47
(1): 2020/09/24(木)12:04 ID:27/WCIy4(6/12) AAS
>>45
1つぐらい何か言い返せよw
お前がやってるそれが遠吠えじゃねーかw

>>46
冪等性がなんで出てくるのか知らんが
与えられたデータ(引数だけじゃなくてすべての状態)が
同じであればその結果も同じになる

テストというのは、固定のデータを使って固定の結果と比較するもの
固定のデータが用意するのが難しいのであれば
その部分にスタブ(モック)を利用する
省2
48
(1): 2020/09/24(木)12:35 ID:2iTMkqwR(4/12) AAS
>>47
だからなんの意味もねーってそれ
お前がエクセルで計算した値だろw
49
(1): 2020/09/24(木)12:37 ID:sW11ypIO(1/2) AAS
>>41
>そうそう、結局こういう入力(ユーザによる操作や設定ファイルも含む)に対してこう動くようにしましたよ
>としか言えない

考え方が間違ってる
入力に対する出力が要求仕様通りになることをこういうテストケースで確認しましたよと言えればいい
21が正解かどうかは要求仕様による

テストケースを作る能力の有無の前に
要件定義がまともにできてることが必要
できてなければデスマーチ確定
50
(1): 2020/09/24(木)12:40 ID:2iTMkqwR(5/12) AAS
>>49
だからそう言ってるじゃん
>>41にそう書いてあるだろ
51
(1): 2020/09/24(木)12:51 ID:27/WCIy4(7/12) AAS
>>48
> お前がエクセルで計算した値だろw
何で計算するとかどうでもいい話だろ

何をする関数を作りたいのか?
作りたい関数は「何を入力とし、何を出力とするのか」

その仕様を決めてから関数を実装する。そして正しく実装されてるかテストする

お前は仕様を決めずに、関数を実装して
その関数が出力する答えが正しい!バグなんてない!って言ってんのか?

繰り返すぞ
仕様を決めてないのに関数を実装してんのか?
52: 2020/09/24(木)13:00 ID:wzh1JL/V(1) AAS
関数なんかフィーリングでつくるだろうふつう
関数の設計?関数仕様書みたいのをいちいち書かせるタイプのアフォなんか?
53
(1): 2020/09/24(木)13:08 ID:2iTMkqwR(6/12) AAS
>>51
ホントだ
どうでもいいなw
だから>>6でもいいんだよな?
54: 2020/09/24(木)13:17 ID:sW11ypIO(2/2) AAS
>>50
何を書いたつもりなの?
55
(1): 2020/09/24(木)14:21 ID:27/WCIy4(8/12) AAS
>>53
> だから>>6でもいいんだよな?

>>6には固定値が書かれてないから駄目だって言ってんだろ
理解できますか?

あ、そう。理解できない。
↓こうしろって言ってるだけなのに、理解できないのか?終わってるな

int S=sumAtoF(1,2,3,4,5,6);
int chkS=21;
if(S!=chkS)
{
省2
56: 2020/09/24(木)14:27 ID:2iTMkqwR(7/12) AAS
>>55
え?じゃあどうやって21って出したの?
こんなの固定値のわけないじゃん
57
(1): 2020/09/24(木)14:29 ID:27/WCIy4(9/12) AAS
> え?じゃあどうやって21って出したの?

最初に関数を実装するんじゃやなくて
仕様を定義しましょうと言ってる

お前は仕様を決めずにいきなり関数書いて、その関数の実行結果を出力して
俺がコードにバグを入れるなんてありえない。だから21が正しい!と言ってるだけ。
テストを全くしてない
1-
あと 653 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.025s