「単体テストを手動で行いエビデンス取る」の破壊力

2020/09/23(水) 12:29:11.02ID:irsqaiS+
単体テストは自動化するものだと思っていたから
一瞬何を言っているのかわからなかった
2020/09/26(土) 19:19:19.01ID:83DuDYef
>>259
まともな会社ってどこ?
お前の勤める自宅警備会社?
2020/09/26(土) 19:27:01.07ID:vfGHSq+F
>>268
昨日の昼間からム板に張り付いている人に言われても説得力ねぇわ。
そしてそれと同じくらい、お前の50を超えるレスに説得力ねぇわ。

ツッコミを入れる周囲の人達の発言のほうが説得力があるね。
もう少し自分を疑うことをおすすめするよ。
2020/09/26(土) 19:29:30.83ID:gRR2jm5z
>>259
はい、ソース無し
というか単体テストすらまともに実装出来ない会社の間違いじゃないの?
2020/09/26(土) 19:36:25.98ID:c/9EiqGf
>>266
> 目的はユーザを満足させることであり単体テストはその手段として
> 使われるのだけれども単体テスト頑張ってもユーザの満足度あがらんね

だから両方やればいいだけでしょ?
2020/09/26(土) 19:47:53.10ID:gRR2jm5z
マジで無能な働き者感半端なさ過ぎて洒落にならんな>ID:IgGP+BQU
あんまり煽るのは趣味じゃないが、流石にここまで酷いと思わんかった

>いまは結合テスト、総合テストを自動化して品質を高めるのが主流
本当に聞きかじりばっかだなお前
結合テスト/総合テストの自動化は開発の最終盤(UI含めてほぼ構成が固まった段階)に辺りからやるもんだぞ
さらに大前提として結合/総合時に自動化に耐えうるレベルでバグを潰しておく必要がある
つまり、単体テストで予めて一通りの品質が担保出来てなきゃ、自動化なんざ夢のまた夢だぞ
2020/09/26(土) 19:50:00.49ID:vfGHSq+F
>>266
> 目的はユーザーを満足させることであり単体テストはその手段として使われるのだけれど

最終的にはそうなるかもしれないが、あくまでも単体テストの目的は詳細設計の妥当性確認では?

お前、>>253のツッコミをミスリードしてないかw?
時代遅れとか以前に、単体テストが何を目的とするのかすらわかってないじゃん。

>>273の言うとおり、両方やればいいだけだよ。そして、両方やる必要がある時点で他のテストとは目的が違うんだよ?理解してる?
2020/09/26(土) 19:56:28.25ID:gRR2jm5z
更に言うと、実行時間って言う面においては自動化を含めても
単体テスト>>結合テスト>>>>>総合テストっていう絶対に崩せない不等式がある
(総合テストはseleniu辺りを使ったものを自動化を想定してる)
単体テストはフィードバック速度が段違いに早いんだよ、だからアジャイル開発やTDDにおいても重要なファクターとなる

あとずーーーーーーと引っかかってたんだけどさ
単体テスト、結合テスト、総合テストは仕様通りに動くかどうかであって、ユーザー満足度とは何も関係無いぞ
仕様通る作成できている=ユーザーも大満足する、にならないからウォーターフォールだとダメって風潮になってるんやん
(ユーザーの声が最後の最後にしか出てこないから、フィードバックを反映するのが困難なため)

ユーザーが満足するか、使いやすいかっていう判断をするのはユーザービリティテストっていう
評価観点が全く異なるテストを実施しないといかんのだぞ
流石に二日待っても『ユーザービリティテスト』って言葉が一回も出てこないから本気で心配してるんだぞこっちは
277デフォルトの名無しさん
垢版 |
2020/09/26(土) 20:25:28.70ID:IgGP+BQU
>>276
結合テストの段階でユーザも巻き込んでやるだろ
お前のとこやってないの? それアジャイルじゃないよ
ただのウォーターフォールだよ、どうりで単体テスト重視してるわけだわな
ユーザと会うことさえない下っ端仕事しかしてないんだろ
278デフォルトの名無しさん
垢版 |
2020/09/26(土) 20:26:11.04ID:IgGP+BQU
アジャイルとはユーザと一体化して共同でプロダクトを作り上げるものだ
279デフォルトの名無しさん
垢版 |
2020/09/26(土) 20:28:00.00ID:IgGP+BQU
パソコンと向き合ってれば良い仕事って気楽でいいなwwww
プロダクトの品質気にしなくていいし顧客満足も気にしなくて良いもんな
うらやましいわwwwwww
280デフォルトの名無しさん
垢版 |
2020/09/26(土) 20:28:37.08ID:IgGP+BQU
10年前の本実践してイキってれば良いもんなwwwwwwwほんまええなーwwwwww
2020/09/26(土) 20:31:50.54ID:vfGHSq+F
こんなにム板の住人多数から集中砲火を受けてもレスできる図太さに驚きが隠せない。
282デフォルトの名無しさん
垢版 |
2020/09/26(土) 20:34:13.35ID:gRR2jm5z
>>277
け、結合テストにユーザーを巻き込むwwwwwwwwww
ちょっと想像の斜め上どころの解答じゃなかったな
アジャイル開発でもそんなクレイジーな事せんわ
なんで結合テストしてない代物をユーザーと一緒にテストするなんて言うトチ狂った発想が出てくるんだよ
お前の開発環境クレイジーすぎるだろ……
283デフォルトの名無しさん
垢版 |
2020/09/26(土) 20:39:19.67ID:IgGP+BQU
>>282
アジャイルでは次の優先度でテストをやります
総合テスト > 結合テスト >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 単体テスト

ちなみにお前がアジャイルやったことないのは明らかで
盛大に勘違いしてそうだから老婆心で教えてやるけど
アジャイルでは総合テストを結合テストよりも先にやるからな

総合的に使い物にならないものを詳細までテストするのは時間と金の無駄だから
ウォータフォールと真逆のことをやってユーザの満足度を最優先にしてプロダクトに反映する
これを全体最適化と言う
284デフォルトの名無しさん
垢版 |
2020/09/26(土) 20:41:43.72ID:IgGP+BQU
ガラパゴスジャパンのものづくりにはその俯瞰的な視点が抜けてるから欧米にはまだまだ追いつけない
過去の慣習からいまだに抜け出せずに10年前の本をありがたがっている人もいるくらい残念な状況
2020/09/26(土) 20:46:03.15ID:vfGHSq+F
>>283
>ちなみにお前がアジャイルやったことないのは明らかで

お前のことだろ。
286デフォルトの名無しさん
垢版 |
2020/09/26(土) 20:46:10.02ID:IgGP+BQU
そう、いうなればいまだに単体テストを頑張ってるプログラマはさながらハンコ議員連盟みたいなもの
時代遅れの技術にいつまでもしがみついて進歩を遅らせてるってこと
愚鈍で低能な人間は日本の未来を暗くするだけ、ノロマの罪で逮捕して冷たい牢獄で一生を過ごして欲しいくらいだわ
2020/09/26(土) 20:49:25.23ID:c/9EiqGf
>>286
それじゃいまだにログを目視で頑張って眺めてそれっぽい値ならOKなんて言ってるやつはどうなるの?
288デフォルトの名無しさん
垢版 |
2020/09/26(土) 20:50:23.41ID:IgGP+BQU
>>287
それはありだろ、ログは大事だ
2020/09/26(土) 20:50:49.34ID:c/9EiqGf
単体テスト(自動テスト)で正しい値と比較 vs 目視確認でそれっぽい値かどうかチェック

って話だったの忘れたのかな?w
2020/09/26(土) 20:51:31.00ID:c/9EiqGf
>>288
そんなことしてたらユーザビリティテストする時間なくなるやんw
291デフォルトの名無しさん
垢版 |
2020/09/26(土) 20:52:18.62ID:IgGP+BQU
>>289
結局最後に頼れるのは人間の目だからな
何のために目が付いてるか考えろ
ログを見るためだろうが
2020/09/26(土) 20:52:59.21ID:c/9EiqGf
しかもそれっぽい値かどうかしか確認しないからバグだったとしてもわからんし

正しい答えがわからないからログに記録されているのがバグだったとしても
それっぽい値ならOKにするんでしたっけ?w
2020/09/26(土) 20:53:29.46ID:vfGHSq+F
>>286
その理屈だとプロジェクト作成時にテストコード記載場所を用意するAndroid Studioは時代遅れってことになるな。
つまり、Androidは時代遅れと。
2020/09/26(土) 20:53:37.93ID:c/9EiqGf
>>291
見てどうするの?

お前に見張り番頼んだら、盗まれていくのを見てましたって言いそうw
2020/09/26(土) 20:54:20.39ID:c/9EiqGf
訂正

>>291
ログ見てどうするの?

お前に見張り番頼んだら、盗まれていくのを見てましたって言いそうw
2020/09/26(土) 20:55:00.24ID:nlLPMFg9
>>281
相手するなよ…
2020/09/26(土) 20:55:16.64ID:gRR2jm5z
>>283
>総合テスト > 結合テスト >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 単体テスト
はーまたソース無し

IPA辺りの資料だけど、アジャイル開発の進め方見てみ?
https://www.ipa.go.jp/files/000065606.pdf
9ページにはTDDを基本にするって書いてあるやろ?
つまり単体テストを避けて通れないの

あと先進的な設計・検証技術の適用事例報告書 2015 年度版の資料
https://www.ipa.go.jp/files/000049403.pdf
ここに単体テストの有用性を検証した結果出てるぞ、15ページな

それっぽい言葉で誤魔化してるつもりかもしれんが
何ども言うがソースが無いなら一切妄言と変わらんからな
2020/09/26(土) 20:56:42.78ID:vfGHSq+F
>>296
そうするか、NG登録しよ。
荒らしとしてBANされることを祈ろう。
2020/09/26(土) 22:22:37.23ID:EyP34oM1
まあ、なんとなく言うこともわからないでもない

結局、単体テストのチェック項目は言うほど明確にならないってことだな
浮動小数点の変数1つとっても厳密にやると恐ろしく時間がかかる
彼も全くなんのチェックもしないわけではないだろう
ただ、リリース毎に走らせるような仕組みなんか無駄なコストだと思う
もちろん動かないなんてのは言語道断だがそれは従来のテストで不十分か?と言えばそんなことはないと思う
それよりは結合で出る他のモジュールとの不整合や
総合で出る使い勝手の悪さの修正などに時間をかけた方がいいと思う
さらに言えばリリースしたあともユーザが使ってないような機能なんていっそ小規模な不具合があってもほっといてもいいのではないか?とは俺も思う

もちろん動かないなんてのは言語道断だが

部品のテストをいくら頑張ってもロケットは飛ばないというのは正しいと思う
まあ、これで悩むのは請けた仕事がそこまで判断するような広範囲な仕事だけだが
2020/09/26(土) 22:29:27.75ID:9iLYNIRG
もしかして 自作自演?
2020/09/26(土) 22:31:40.42ID:en54jqZM
なんじゃこのオチはwww
2020/09/26(土) 22:37:06.52ID:9iLYNIRG
おい、ためしにlgGP+BQUは何か書き込んでみろ(原爆投下)。
2020/09/26(土) 22:42:04.33ID:gRR2jm5z
>>299
>結局、単体テストのチェック項目は言うほど明確にならないってことだな
>浮動小数点の変数1つとっても厳密にやると恐ろしく時間がかかる
一回仕様決めてテスト書いたら
後はもう1関数辺り数秒にも満たない実行時間しか無いぞ……

つか浮動小数点のテストなんてそこれそユニットテストで良くやるやつやん
2020/09/26(土) 22:45:25.84ID:EyP34oM1
なんの作戦もなく単体テストの自動化を勧めてくるペテン師に引っかかってはならないというのはガチだと思う

・自動化Scriptの作成コストはでかい
・単体テストよりもうちょっと上の階層のテストの自動化の方がよくないか?
・そんなに何度も単体テストしないし
・かけたコストに対するリターンが小さそう?
305デフォルトの名無しさん
垢版 |
2020/09/26(土) 22:51:11.37ID:IgGP+BQU
>>304
まともな人が居てうれしい
2020/09/26(土) 22:51:21.53ID:EyP34oM1
>>303
すげー大変じゃん
仕様を定義するやつも
小数点いくつで四捨五入なのか切り捨てなのか全部考えないと
でもそんなことしなくてもプログラムって動くし
んでこういうのって会社で一旦やるって定義されちゃうと全部やらないといけなくなっちゃう
でも大半は必要ない
2020/09/26(土) 22:57:08.42ID:gRR2jm5z
>>304
>・自動化Scriptの作成コストはでかい
それは正しいが、テスト自動化の作成/修正コストは
 総合>>結合>>単体テストの関係になる
 (必要な構成、モジュールが総合テストに近づくほど増えて影響範囲がどうしても増えるので)

>・単体テストよりもうちょっと上の階層のテストの自動化の方がよくないか?
 総合/結合テストの自動化はバグを発見するのが目的ではなく
 既存機能が壊れてないを確認するために使うんだぞ?
 勘違いしてる人が要るかもしれんが、総合/結合テストでバグが頻発すると
 テストが失敗した原因の調査〜修正の作業に無視できない工数がかかるから、
 作成コストが少ない単体テストが整備出来てなきゃ宝の持ち腐れだぞ

>・そんなに何度も単体テストしないし
 それは単純にサボってるだけ
 継続的デリバリーとか継続的インテグレーションっていうスタンスで立つ場合
 CIツール、例えばJenkins辺りで構築する場合
 ソースをコミットしたタイミングで、コード解析、自動ユニットテスト、ビルドまで一連でやるようにする
 だから一番動かすのはむしろ単体テストになる
 https://www.techmatrix.co.jp/product/cisolution/service/index.html
 https://tracpath.com/works/devops/continuous-integration/

>・かけたコストに対するリターンが小さそう?
 んな事ない
 上記の例も合わせてリターンは大きい
2020/09/26(土) 23:05:35.15ID:en54jqZM
自演成りすましかとも思ったが本物だった
幼稚過ぎるやろ
2020/09/26(土) 23:05:47.25ID:EyP34oM1
>>307
自動テストは単体が一番作るの大変だと思うけどなw
結合や総合はモジュールや機材のセッティングは大変だけど
作るのは簡単やろ
だってUWSCで画面のボタンをポチって押すだけやろ

少なくとも俺はそんなイメージだけど?
2020/09/26(土) 23:12:22.45ID:9iLYNIRG
>>309
うーん、もしかして受託開発?
2020/09/26(土) 23:17:09.95ID:gRR2jm5z
>>309
>作るのは簡単やろ
>だってUWSCで画面のボタンをポチって押すだけやろ
それは考えが甘すぎだわwwwwwwwwww
それだと操作しかしてないやん

UI周りの自動テストを実装する場合
・テストシナリオ(どういう操作をするのか)
・テストの判定基準
 (想定通りの画面に遷移しているのか、表示されるメッセージが正しいか、データ登録が絡むならその結果も正しいのかなど)
・テスト結果の判別方法
 (これはテストシナリオによって変わってくる、登録データをそのまま引っ張り出すならDB接続して想定値との乖離が無いかチェックする
 ものによっては画面キャプチャで画像差分を見るってやり方もあるけど個人的には好きじゃない)


最低でもこの辺を意識して作らんといかんから、
そんな画面ポチポチ終わりーでいかんぞ…・…
特にUIの自動化は変更に弱い認識だから、本当に最後の最後で実装しないと地獄を見るし
2020/09/26(土) 23:17:16.83ID:EyP34oM1
>>307
単体テストのモジュールってさ
上流で変更があると枝葉って変更じゃなくて消滅と生成のが多くない?
そうなると実ははじめの一回目しか実は見てないんじゃない?って俺は思っちゃうんだよね

枝葉をくっつける本流の方が間違ってるときってそれそもそも自動化以前にテストやっとるのかと?

俺は単体テストの自動化テストはヒット数(実際にバグを捕まえた数)は少ないと思ってる
苦労した割には
2020/09/26(土) 23:22:01.06ID:GBugeZhr
Ruby on Rails のRSpec で有名な、ソニックガーデンの伊藤淳一とか、
Serverspec の作者・宮下剛輔とか、有名

YouTube で有名な、雑食系エンジニア・KENTA は、
初心者のRailsポートフォリオに、CircleCI まで入れれば、有利と言ってるし

有名は人は皆、BDD の鬼!
2020/09/26(土) 23:25:08.71ID:gRR2jm5z
>>312
単体テストでバグの発見数は正直重要じゃないな
というかそんなん集計とるか?
普通は単体テストが成功してからコミットするし、テストコード無しでコミットしようとしたらプログラマー〆るだろ

……というか仕様変更の度に関数が消滅と生成が起きるって
それはどっちかと言うとプロジェクトの問題では……?
2020/09/26(土) 23:29:44.66ID:EyP34oM1
>>311
総合や結合の結果の判別なんか
ログの最後の出力がCompleteだったぐらいでええやろ
機材がクソってるのにログにCompleteって出てるならそれってテストScriptのせいじゃなくてそもそもログ出力腐ってるやろ?
2020/09/26(土) 23:35:25.55ID:EyP34oM1
>>314
きっちりメソッドが分けられず
他の機能と融合してるから
変更が多いんやろ
普通は上流の変更があったら枝葉のメソッドは生成と消滅が多い
2020/09/26(土) 23:39:59.73ID:gRR2jm5z
>>306
そこは仕様によるし、あと責務の分割とかそういう発想でプログラムを組めばいい

超簡単な例として、電卓を上げるぞ
win10の電卓を叩くと
10/3 = 3.3333333333333333333333333333333
20/3 = 6.6666666666666666666666666666667
っていう感じで小数点31桁で出てくる

この結果から以下の仕様が読み取れる
・計算した結果が無限小数の場合、小数点は31桁まで表示する
・小数点31桁目は四捨五入して表示する
っていう仕様が予測できる

と言う事は、最低限の実装方針としては以下のようにすると、楽に単体テストが実装できる
・計算ロジック側は小数点31桁よりも大きい桁数でユニットテストは判定すれば良い、単体テストは可能だし、変更も簡単にチェックできる
・画面表示をする際に小数点31桁として出力するように四捨五入するメソッドを実装してかませればいい、このメソッドも単体テストが可能になる

ようは必ずしもすべての計算結果の小数点桁を指定する必要は無い、基本的には余裕のある実装にしておけば早々壊れない
2020/09/26(土) 23:50:46.00ID:gRR2jm5z
>>315
それはテストツールによるとしか言えん
ちゃんとしたGUIテストツール使って、シナリオも確認してるのであれば
もちろんばログレベルの確認で良い

ただUWSCって名前が出たからついな
あれは自動操作用の目的だし、そもそも今開発止まってるから使うべきツールではない
319デフォルトの名無しさん
垢版 |
2020/09/27(日) 00:16:05.83ID:4yJ9ltzt
>>314
テストコードコミットしたらぶっ殺すわw 仕事しろと
320デフォルトの名無しさん
垢版 |
2020/09/27(日) 00:17:13.78ID:4yJ9ltzt
自己満は趣味でやれ、仕事でテストコード書くなと
2020/09/27(日) 00:20:52.87ID:u5qdbgw4
複数の下流工程を管理する際、テストコードの無い成果物を渡されても、そのソフトウェアモジュールを製品に組み込んでもいいのか判断に困る。

そもそも、単体テストが済んでいるということは、そのソフトウェアモジュールはテスト仕様の範囲では正しく動くことが保証されているわけだ。

だから、完璧な単体テストさえ行っておけば、完璧なモジュールを組み合わせて完璧な製品が出来上がるから、理論上完璧な単体テストができれば結合試験すらいらないんじゃないなって思う。(流石に大胆発言か?)
※顧客満足のチェックまでは無理だが。
※ここで言う完璧なモジュールというのは組み合わせれば理想な製品ができるモジュールのこと。(前提条件がシュールすぎる?)

まぁ、現実的に人が設計をする以上、仮に一つ一つのモジュールがテスト仕様書を満たしたところで組み合わせても上手くいく保証はないから結合テストもやるんだが...。

単体テストについては、こんなイメージだな。
322デフォルトの名無しさん
垢版 |
2020/09/27(日) 00:22:02.61ID:4yJ9ltzt
プロならテストコード書かなくても動くコード書くのが普通
単体テスト書くことが目的化してしまってるのがマナー講師と呼ばれる所以
323デフォルトの名無しさん
垢版 |
2020/09/27(日) 00:26:17.42ID:4yJ9ltzt
>>321
単体テストは時間の無駄だから
単体テストのテストコード見て判断する木偶の坊が管理してるとかそのプロジェクト破綻してるだろwwwwwwwwwwww
大局を見ろよ、設計として正しいかどうかで判断しろ、単体テストのテストコード見てどうするんだバカwwwwwwwwwwwwwww
wwwwwwwwwwwwwwww笑い死にさせる気かwwwwwwwwwwwwwww
2020/09/27(日) 00:27:07.37ID:u5qdbgw4
なんか、さっそく、あぼーんされている奴が沸いてるんだけど。
ごめんね。俺のブラウザだと、NGが共有されるから、読めないや。
325デフォルトの名無しさん
垢版 |
2020/09/27(日) 00:28:35.95ID:4yJ9ltzt
「単体テストのコードがあるな、よし!」とか言ってるのかwwwwwww
wwwwwww現場猫かよバカがwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwww
326デフォルトの名無しさん
垢版 |
2020/09/27(日) 00:29:25.18ID:4yJ9ltzt
>>324
見てるくせにwwwwwNG解除してみてるくせにwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwハゲワロwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwww
327デフォルトの名無しさん
垢版 |
2020/09/27(日) 00:31:31.73ID:4yJ9ltzt
お前ら笑いの才能だけはあるよなwwwwwwwwww
wwwwwwwwwすげーわ単体テストのテストコード見て管理した気になってるとかwwwwwwww
wwwwwwwwww次元が違うわwwwwwwwwwwww
2020/09/27(日) 00:33:43.88ID:gReWMIlS
>>322
適当に有名処のフレームワークのGithub覗いて来たけどさ
がっつりユニットテストコード書いてるけどね、仕事として
それとも今でも一線で活躍してるフレームワークをまた10年前のシステム〜とかで良い訳でもするん?
あ、オープンソースだから参考にならないっていうかもしれないな!

Djangoフレームワーク(python)
https://github.com/django/django/tree/master/tests
コード例
https://github.com/django/django/blob/master/tests/admin_scripts/tests.py

Springフレームワーク(java)
https://github.com/spring-projects/spring-framework/tree/163b97f1ff44b4239f1e66ea5228c68b4bef729b/spring-test/src/test/java/org/springframework/test
コード例
https://github.com/spring-projects/spring-framework/blob/163b97f1ff44b4239f1e66ea5228c68b4bef729b/spring-test/src/test/java/org/springframework/test/context/TestExecutionListenersTests.java
329デフォルトの名無しさん
垢版 |
2020/09/27(日) 00:36:47.59ID:4yJ9ltzt
>>328
ロクなテストしてないな、やっぱ単体テスト無駄だわ、そのテストなくても問題ない
いいよなーオープンソースは気楽でよー、人件費なんて無限に湧いて出るようなもんだもんなー
お前のようなアホが実績欲しさに無駄なコード書いてくれるもんなーいいなーうらやましいなー
無駄なテストコード書いて時間つぶして居られるなんて幸せものだなー
330デフォルトの名無しさん
垢版 |
2020/09/27(日) 00:38:29.69ID:4yJ9ltzt
無駄なコードでも大変だから仕事した気になれるんだろうなーやりがいはありそうだよねーwwwww
wwwwwwww一銭の価値もないけどwwwwwwwwwwwwww
331デフォルトの名無しさん
垢版 |
2020/09/27(日) 00:40:09.14ID:4yJ9ltzt
お前ら授業中に真面目にノート取って先生に褒められて勉強できる気になってそうwwwwww
332デフォルトの名無しさん
垢版 |
2020/09/27(日) 00:40:57.58ID:4yJ9ltzt
でも高卒どまりwwwww
2020/09/27(日) 00:47:26.86ID:u5qdbgw4
>>328
有名どころのテストコードを見たことが無かったけど、思ったより普通だった。

でも、まぁ、勉強になる。
2020/09/27(日) 00:55:35.74ID:gReWMIlS
>>329
>ロクなテストしてないな、やっぱ単体テスト無駄だわ、そのテストなくても問題ない

「この単体テストは無駄、不要」っていう判断を下すには以下を知って無きゃいけない
・テスト対象のコード仕様
・テストコードの内容
先に言っておくが、無駄なテストコードっていうのはもちろん存在するぜ
テストカバレッジを水増しするようなコードとかな

あんたは3分足らずで言語仕様も異なる二つのフレームワークのソースを見て
コードの仕様とテストコードを理解して文句を付けてるわけだ
いやー、すごいすごい、単体テスト不要派なのにめちゃくちゃ詳しいんですねー

あ、ちなみにだけどさ『2020年』のWeb調査で
次に学ぶべきWebフレームワークの人気ランキングで
Djangoは3位、Springは7位につけてるぐらい人気があるフレームワークなんで
https://info.hackerrank.com/rs/487-WAY-049/images/HackerRank-2020-Developer-Skills-Report.pdf
2020/09/27(日) 01:03:36.87ID:gReWMIlS
あ、1位のReact、2位のAngularもテストコードは実装してるぞ
(自分がJavaScript使ってないからあんまりこの辺のコードは読まない)
React
https://github.com/facebook/react/tree/9025949d840c89619bed9bf06f5c14c25c141c5a/scripts/jest
Angular
https://github.com/angular/angular.js/tree/master/test

しかしまさか有名なオープンソースすら否定すると思わんかったわ
一体何を根拠にその自信が持てるのか分からん
2020/09/27(日) 01:14:09.94ID:gReWMIlS
あと中々面白いのがこれだな
https://github.com/JetBrains/intellij-community
やまほどテストコードが転がってるから読み込むだけでもいい勉強になる
テストフォルダが細かく切られてるから読み解くのがちょっと大変だが
https://github.com/JetBrains/intellij-community/blob/master/python/testSrc/com/jetbrains/python/PyBlockEvaluatorTest.java

個人的にはDjangoのテストフォルダの構成が一番読みやすかった
2020/09/27(日) 01:22:23.93ID:gReWMIlS
PythonのテストフレームワークでPyTestっていうのがあるんだけど
サンプルコードが少ないっていう問題があるんだが
その時はPyTestのgithubを見ると良い
https://github.com/pytest-dev/pytest/tree/master/testing
なんとPytestはPytestでテストしてるから、これを読み込むのが一番良かった
何より分かりやすい
338313
垢版 |
2020/09/27(日) 04:26:20.61ID:6sIZ9RBB
日本では、この2人がBDD の鬼!

Ruby on Rails のRSpec で有名な、ソニックガーデンの伊藤淳一は、
RSpec の本、Everyday Rails も翻訳してるし、

Serverspec の作者・宮下剛輔も、有名
2020/09/27(日) 04:47:51.79ID:cmce3quc
結局オープンソースとか有名プロジェクトは
単体テストを行うのは最低限の常識レベルになってるんだな
2020/09/27(日) 04:48:54.87ID:cmce3quc
あ、もちろん単体テストを自動テストするって話ね
手動だったら単体テストやってるなんてこと外部からわからないから当然かw
2020/09/27(日) 04:52:42.32ID:cmce3quc
手動テストの問題はコストがかかること
人海戦術でやるという発想でコスト意識がないのだろう
だいたいこういう所は客が金を出してる。つまり自分の懐は傷まないw

コストがかかる手動テストのプロジェクトでのコスト削減の発想はテストが必要なることをやらないこと
ソースコードを修正するとテストが必要になる。つまり極力ソースコードを修正しない。
こういうところは未だにIEじゃないと対応してませんとかやってる。
作って検証ができないからユーザビリティも悪い
2020/09/27(日) 08:00:13.40ID:ZfMHcABY
Google map

https://github.com/googlemaps/android-maps-utils/blob/master/library/src/test/java/com/google/maps/android/PolyUtilTest.java#L7

調べると事例なんて腐るほどあるな。

ただ、いまいち自動化という言葉の意味がわからない(ただの無知)。
有償のテストツールを使ったことないけど...自動化とは言えど、テストコードを記述してビルドして実行することには変わりがないのだろう?
無知故の疑問だが、自動化と非自動化の差って何だ?
2020/09/27(日) 11:53:53.72ID:cmce3quc
>>342
「ちゃんとテストしたのか?」

・自動化
「はい、ここにテストした内容が書いてあります。これを実行しました。
テストに通ったことはテストの実行結果から判断できます。
もう一回やってみろって?コマンドを実行するだけですのですぐ終わります。」

・非自動化
「はい、ここにテストした証拠のスクショがあります。手順通りに実行してOKっぽかったからチェックを入れました。
テストに通ったかどうか?手順通りにやりましたよ!スクショがあるんだから信じてください。
もう一回やってみろって?全部ですか!?何時間、いえ何日かかると思ってるんですか!」
2020/09/27(日) 12:14:40.61ID:kiO2NTDS
>>343
エビデンスは?
2020/09/27(日) 12:17:40.72ID:cmce3quc
>>344
あなたがもう一回実行すればいい
あなたもすぐにテストを実行したというエビデンスを作ることができる
2020/09/27(日) 12:21:56.20ID:kiO2NTDS
>>345
じゃあ、作業未完了だね
納品物にエビデンスって書いてあるじゃん
2020/09/27(日) 12:24:22.83ID:cmce3quc
>>346
実行した姿をビデオカメラに写しておけばいいだけでは?
このテスト、私が実行しましたってwww

それ以外に何が欲しいんですかねぇ
2020/09/27(日) 12:29:15.25ID:VyFDY5e4
エビデンスが要求される粒度のテストのためにエビデンス生成フレームワーク作っとくと便利よ
2020/09/27(日) 12:33:35.94ID:VyFDY5e4
もちろん1番大事なのは自動テストの性質に合わせたエビデンスの形態を定義して、客に受け入れさせる営業力だが
2020/09/27(日) 12:50:07.02ID:CqP8QnJk
日曜だから市場で買ったカニの出汁を濃縮してるわ、冷凍してとっとくんだ
これがホントのカニdense
2020/09/27(日) 13:02:27.51ID:cmce3quc
>>349
テスト自動化のほうが安くなります。
手動で作業したらその分時間がかかります。
スクショとったらその分時間がかかります。
しかもそのとったスクショ、あなた全部検収するんですか?
みたいにいえばOK

金と手間がかかる問題を客に押し付ければ意見は通る
2020/09/27(日) 13:25:38.79ID:3AXdWV8W
>>351
ええ、そうですよ
2020/09/27(日) 17:13:04.31ID:gReWMIlS
UIの自動テストはスクショもログ+スクショ自動生成までやってくれるから
本当にエクセルに張り付ける作業は不要なんだよな
スクショ張り付け作業をこれやらされる新人はマジで悲惨
2020/09/27(日) 17:29:23.89ID:I+ot45zN
しまいにゃ手動でやれば、バグがあって金がかかろうとも、丁寧な作業をしてると客を騙しはじめるのだろうな
2020/09/27(日) 18:28:44.51ID:3AXdWV8W
ていうか自動化にエビデンス入ってねぇのかよ
客に出せるレポートなんか出んだろフツー
2020/09/27(日) 18:47:20.22ID:9HAdnqqz
エビデンスは手作業で取るもの。自動で撮って誰が確認するというんだ?
客はエビデンスがあることを見てるだけで内容までは確認しないものだぞ

エビデンス撮った本人が、よくわからんが、まあバグっぽくない画面で動いてるからヨシ!ってやって
やっとエビデンスの意味があるというものだろう
2020/09/27(日) 23:33:39.95ID:3AXdWV8W
ログでもいいやん
正しく動く証明になれば
2020/09/27(日) 23:48:48.71ID:mDpIXF3L
Firefox for iOS
https://github.com/mozilla-mobile/firefox-ios

Wire (エビデンスあり)
https://github.com/wireapp/wire-ios

kickstarter (エビデンスあり)
https://github.com/kickstarter/ios-oss
2020/09/28(月) 00:00:12.68ID:Z60TNrQV
ログが正しく動いてることを証明するエビデンスが必要

そのエビデンスが正しいことを証明するエビデンスが必要

さらにそのエビデンスが正しい・・・
2020/09/28(月) 00:42:07.82ID:IvlPnhNT
>>357
ログはたんなる実行結果に過ぎないから正しく動く証明にはなることはないよ

ログを正しく動く証明にするには方法は2つ
1. ログを取った担当者が、それをみて判断する
2. ログを取った人と別の人が担当者が、それをみて判断する

どちらが判断するにしても、正しい答えを知らなければ正しく動くと証明することはできない
だから上の方で言っていた正しい答えなんか事前にわかるわけ無いだろ!それっぽい値ならそれでいいだろ!
なんてのは問題外なわけ。正しく動く証明をしてないわけだから

スクショなんかも、取ったってそれみて後から検証なんかしないでしょ?
今からスクショみてバグが表示されてないか見ますなんてしないでしょ?

あれは仕事サボってないかとかいう作業完了報告書だったり、なにか問題が
起きたときにちゃんとやったのかという責任追及をするための道具に過ぎないよ
かろうじてバグがあったという証明ができるぐらい。正しく動く証明ではなくバグが有ったという証明ね

まあつまりログとっただけでは何の証明にもならないって話
ログと正しい答えを目視で比較する vs コンピュータでログを自動的に比較する(それが自動テスト)の違いよ
人力で比較してりゃ時間もかかるしミスもある。何もいいことはないね
2020/09/28(月) 01:55:11.12ID:TvE1ypt9
>>360
いや、ログ出力のテスト通ってるし
2020/09/28(月) 03:01:07.29ID:XaZwDbHz
ログって言葉が独り歩きしてるけど
基本的に自動テストって
・想定通り動いた=OK出力(グリーン)
・想定通り動いていない=NG出力(レッド)
の2観点しかない

自動テストは結果判定もしてるから、実行だけ成功=OKには絶対にならん
(そんなテストを実装してたらぶっ殺されるわ)

で、自動テストのログが当てにならないっていう人って
無意識に以下のパターンを想定してるんだよね
・想定通りに動いて無いにも関わらず、OK出力(グリーン)が出ている可能性がある
つまりテスト側の不具合を懸念して、それでバグを取りこぼす危険性を考えているわけだ

結論的に言うと、そういうのはテスト作り方の問題になるし
発生するとのは相当なレアケースになる
というかこれが頻発してるなら、自動テスト組んだプログラマはクビにしろ
正しくOK/NGが判定できない自動テストならそりゃテストになってねえ

万が一、このレアケース発生しても修正をすればいいだけの話で、クリティカルな問題に発展する事はほぼ無い
(むしろ人間によるチェックの方が、判定の曖昧さ、ミス隠し、スクショ偽造とか色々やってくるから個人的に信頼出来ん)
2020/09/28(月) 08:09:53.88ID:IvlPnhNT
>>361
ログ出力のテストって何?

ログの話は「ログ見て人力で目視比較してそれっぽい値ならOK」ってやつでしょ
ログに出力した後に人力比較があるんだよ
2020/09/28(月) 09:58:00.07ID:9LRH2lrq
>>363
ログ出力だって機能の一つなんだからテストするでしょ?
ちゃんと指定通りのフォーマットで出てるかどうか?
日時、種別、内容などなどね
しないの?
365デフォルトの名無しさん
垢版 |
2020/09/28(月) 10:34:47.24ID:kZm+fu8v
するわけねえわwwwユーザと関係ないだろうがバカがwwwww
366デフォルトの名無しさん
垢版 |
2020/09/28(月) 10:35:38.29ID:kZm+fu8v
何のためのテストだよwwwwww
意味のないテストやって尺稼ぎしてんじゃねえぞ経営者目線で仕事しろ
367デフォルトの名無しさん
垢版 |
2020/09/28(月) 10:37:34.85ID:kZm+fu8v
ユーザと関係ないところで一生懸命頑張っても誰も認めねえからな
売上に一ミリも寄与しないこと頑張ってどうするんだwwwwwwwww
wwwwユーザから目をそらすために関係ないこと頑張ってるんだろwwwwww
パソコンが好きなだけじゃ会社は成り立たねえんだよwwwwwwwww
2020/09/28(月) 10:49:56.00ID:IvlPnhNT
>>364
> ログ出力だって機能の一つなんだからテストするでしょ?
わざとかもしれないけど(笑)話がすり替わってる

ログ出力機能のテストの話じゃなくて
○○機能のテストをするとき、その機能の結果をログに出力して
その出力を目視で人力比較してテストするのはアホという話をしてる
369デフォルトの名無しさん
垢版 |
2020/09/28(月) 10:51:15.85ID:kZm+fu8v
単体テストのテストコード書くほうが100倍アホだからwwwwww
wwwwwwwそこんとこ忘れんといてよwwwwwwwwwwwwww
2020/09/28(月) 10:51:35.57ID:IvlPnhNT
自動テストでも実行結果をログに出力できるわけで
コンピュータで「比較」までやるか、人力で「比較」するか
誰が「比較」するのか?が違う所なんだよね
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況