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

2020/09/23(水) 12:29:11.02ID:irsqaiS+
単体テストは自動化するものだと思っていたから
一瞬何を言っているのかわからなかった
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
自動テストでも実行結果をログに出力できるわけで
コンピュータで「比較」までやるか、人力で「比較」するか
誰が「比較」するのか?が違う所なんだよね
2020/09/28(月) 10:53:06.94ID:a6s5Hb4H
なんかよくわからないところに噛み付いてるのでスルー
2020/09/28(月) 10:57:53.54ID:053eSEmA
wの数と知能の高さは反比例するらしい
2020/09/28(月) 11:18:15.31ID:IvlPnhNT
これの話だからな

289 自分:デフォルトの名無しさん[sage] 投稿日:2020/09/26(土) 20:50:49.34 ID:c/9EiqGf [4/8]
単体テスト(自動テスト)で正しい値と比較 vs 目視確認でそれっぽい値かどうかチェック

って話だったの忘れたのかな?w

291 返信:デフォルトの名無しさん[] 投稿日:2020/09/26(土) 20:52:18.62 ID:IgGP+BQU [29/30]
>>289
結局最後に頼れるのは人間の目だからな
何のために目が付いてるか考えろ
ログを見るためだろうが
2020/09/28(月) 13:05:35.15ID:Pd1BjD7i
関数の入力仕様と出力仕様が明確なら
ログ出力関数のテストは簡単

でもログ出力関数を使う処理が正しくログ出力してるかどうかのテストはそう簡単ではない

なぜならログ出力の正しさを判定するためにはログ出力以外の結果は正しいということが事前にわかってなければいけないから

つまりログ出力だけでは処理の正しさを証明することは出来ない

テストで「正しいと証明できる」という考え自体がある種の幻想
2020/09/28(月) 15:21:10.71ID:XaZwDbHz
このスレ見てると一体どういう自動テストを実装してて
どういうログを流してるのか本当に気になるわ
そんな突き抜けバグ(不具合起きてるのに何故か正常終了扱いになってる状態)を抱えた自動テストばっかり使ってるの?

本当にどういう自動テストを想定してるのか分からん
まさかログに値だけ出して、後でその値が正しいのか人間がチェックしてるのか?
それ自動テストじゃなくて、ただの自動実行だよ
テストっていうならグリーン/レッド判定まで実装してなきゃ使いもんにならん
2020/09/28(月) 15:28:21.82ID:IvlPnhNT
> 本当にどういう自動テストを想定してるのか分からん
> まさかログに値だけ出して、後でその値が正しいのか人間がチェックしてるのか?

ログに値だけだして〜って言ってる人は、自動テストしてないよ
ログに値だけだして目視確認する手動テストでいいって言ってる
なぜなら正しい結果がわからないから

これ↓ね。こいつの言ってる意味がわからんと思うけど、意味不明だと俺も思うw

28 名前:デフォルトの名無しさん[sage] 投稿日:2020/09/23(水) 20:17:23.00 ID:cCwBtdaA [9/11]
テストと言いつつできるのは計算過程と処理結果を残すだけだと思ってるよ俺は
長年考えた結果
正しい値なんてのは実は物理的に誰も知りえないということを理解した

なのでテストで重視するのは俺は組んだコードのエビデンスの方
どんな処理書いてどんなログ出したか
自動テストは結局同じやつが作ってる以上同じ不具合入ってるだろうなって思ってるw
2020/09/28(月) 15:54:13.14ID:6prVz1CN
そろそろレス古事記に構うのをやめようか…
テストはバカだという証明はできるけど、いくら指摘しても修正しない限りバカはバカのままだし
2020/09/28(月) 17:44:17.57ID:KzfYiCsA
エビデンスとはテストを端折らずに実行しましたと言う証拠であって
動作の正しさやテスト手順の正しさを証明する証拠ではない

エビデンスという名の作業ログ
2020/09/28(月) 17:47:45.47ID:vQtpARZo
自社開発ならエビデンスは要らんよ
しょせん対外的な作業証明でしかないからな
それよりテストコード、テスト可能なコードを書いてくれや
2020/09/28(月) 18:18:18.53ID:PsVubO2q
細かいことで揉めるから、
>>1のような提案をする空気だけは読めるバカが出世して管理職になんだな。この業界は
2020/09/28(月) 18:49:50.77ID:l/9oGi4t
>>378
そのとおり

バグっている場合は、そのバグの様子をスクショしてるだろうからバグがあるというエビデンスにはなるだろう
しかしバグがないというエビデンスにはならない。これは自動テストでも同じだが、大きな違いは
バグってないというスクショをとっても、正しくテストを実行したというエビデンスにはならないという点

スクショ取るだけではテストケースは書いてあっても、そのテストどおりにテストをしたという証拠にはならない
最終結果だけでなく一連の動作を動画で撮影してるならまだわかるが、間違って手順でテストしたかもしれない
つまりエビデンスというのは(手順が間違ってるかもしれないけど)ちゃんと作業しましたという意味にしかならない
どういう手順でテストを実行したかという記録が含まれていない

自動テストの場合は最終結果だけでなくどういう手順でテストを実行したかが記録されている。
必要なら再実行もできる。だからこれこそが本当のエビデンスになる。
2020/09/28(月) 18:52:55.72ID:l/9oGi4t
スクショには正しい手順でテストを実行したかが記録されていないのだから
作業をしましたという報告でしかない。

バグのスクショは意味があるが、正しく動きましたというスクショは必要ない
だからこれは本来この項目をテストOKでしたとチェックリストにチェックつけるだけで十分

チェックリストにOKでしたというチェックをつければ十分なことに
スクショを必要とするのは、単に作業者の報告を信用してないという意味でしかない
383デフォルトの名無しさん
垢版 |
2020/09/28(月) 18:59:46.59ID:S2C1y2x2
単体テスト書いとけば改修しても自動で既存機能が壊れてないことが確認できる
ゆえに機能の改修を心置きなくできる
テストがないと気軽に既存機能に手を入れるわけにはいかなくなる
(あたりまえ)
2020/09/28(月) 19:04:07.86ID:l/9oGi4t
自動テストがないと手動テストをしないといけない
それは膨大な作業量となる
だからバグのないコードを書け、作ったら改修はするな!と叫ぶ

バグがあったときのことまで考えてない
仕様に変更があったときのことまで考えてない

一旦書いたら終わりという前提でいるやつがいる
2020/09/28(月) 19:12:10.31ID:DyBDarNn
そのほうがビジネスとしては美味しんだ
テクニカルな面で優れた手法がビジネスでも優れた手法であるとは限らない
2020/09/28(月) 20:30:31.71ID:l/9oGi4t
>>385
単にビジネスが下手なだけだろ?

内部は楽をして、外部に対してこんなに頑張ってるんですよーってアピールすればいいだけ
外部に頑張りをアピールするために、実際に内部でも無駄に頑張る必要はない
2020/09/28(月) 20:34:16.60ID:ogYc/62K
>>382
>バグのスクショは意味があるが、正しく動きましたというスクショは必要ない

正しく動いてたと思っていたものに後から不具合が見つかった場合
前回テスト時のスクショがあると調査が効率的にできる
それは自動でも手動でも同じ

>スクショを必要とするのは、単に作業者の報告を信用してないという意味でしかない

個人への信用に依存したシステムはミスがあれば個人を責めることになるのですぐブラック化する
典型的なマネジメント能力不足の例
2020/09/28(月) 20:40:07.93ID:l/9oGi4t
> 正しく動いてたと思っていたものに後から不具合が見つかった場合
> 前回テスト時のスクショがあると調査が効率的にできる

不具合があると既に分かった後の話ですよね?
スクショがあると、どう効率的に調査できるんですか?
レスを投稿する

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

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