X



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

0001デフォルトの名無しさん
垢版 |
2020/09/23(水) 12:29:11.02ID:irsqaiS+
単体テストは自動化するものだと思っていたから
一瞬何を言っているのかわからなかった
0237デフォルトの名無しさん
垢版 |
2020/09/26(土) 17:31:55.87ID:IgGP+BQU
>>236
経営者目線で単体テストてwwwww
wwwwアホすぎわろすwwwww
wwwwwwwwwwwwwひぃーひぃー腹が痛いーwwwwww
0238デフォルトの名無しさん
垢版 |
2020/09/26(土) 17:34:09.67ID:IgGP+BQU
単体テスト頑張れば頑張るほど品質は下がるというのが現代のものづくりの常識なわけだが
10年前の本読んで仕事してる人とは仕事したくないなあwwwwwwwwwwwwww
0239デフォルトの名無しさん
垢版 |
2020/09/26(土) 17:34:46.62ID:gRR2jm5z
テストのスペシャリスト(エクセルスクショパシャパシャ)
実際、テスト計画からテストの自動化含めて全部やれる人って
ほとんどいない気がするか……

というよりテスト自動化すらまだ全然進んでない印象
0240デフォルトの名無しさん
垢版 |
2020/09/26(土) 17:37:41.06ID:IgGP+BQU
自動化しなくても良い、総合テストに時間をかけたほうが製品の品質は高まる
テスラのロケットもそうやって飛んだんだよ

自動化という手法にこだわってコーダーの自己満で単体テストやってるのは
所詮ホリエモンロケット止まり
0241デフォルトの名無しさん
垢版 |
2020/09/26(土) 17:39:16.66ID:IgGP+BQU
大事なのはユーザビリティでありプロダクト
細かい部品のチェックを頑張ってもどうにもならんぞ
0242デフォルトの名無しさん
垢版 |
2020/09/26(土) 17:40:41.58ID:yrYl4KMm
>>240
ycF3TYueさんよ、マジで黙っててくれないか?
お前さっきから邪魔。昨日のように逃げて大人しくしてろ。
0243デフォルトの名無しさん
垢版 |
2020/09/26(土) 17:42:49.70ID:IgGP+BQU
単体テスト頑張って会社の売上が上がった人は単体テストのコンサルタントやってるIT業界のマナー講師くらいだろ
やってることが自作自演なんだよ

日本の仕事の生産性が低いのも細かいところで頑張って全体の品質から目を背けているからだ
開発者が力を注ぐべきはプロダクトでありユーザの満足度だ

わーい単体テスト自動化できたーとこれで安心だーなんていってるのはレベルが低すぎるんだよ
高卒ならそれで良いかも知れないが大卒はそんなことやっちゃダメ
0244デフォルトの名無しさん
垢版 |
2020/09/26(土) 17:44:24.34ID:IgGP+BQU
大局を見よ、戦略を練れ、竹槍にこだわって戦争に勝とうとするな
0246デフォルトの名無しさん
垢版 |
2020/09/26(土) 17:51:56.67ID:IgGP+BQU
リファクタリング、単体テストを頑張る人間は一生クリエイティブな仕事できない
ユーザはネジの品質なんて気にしない、プロダクトが使いやすいかどうかが全て
ユーザ目線に立って生産性の高いアジャイルな仕事を成功させるためには自己満足を捨てて
顧客満足を選ばなければいけない
0247デフォルトの名無しさん
垢版 |
2020/09/26(土) 17:53:25.75ID:IgGP+BQU
単体テストの自動化を目的に仕事してる人がいる、IT業界のマナー講師だ
嘘をバラマキ生産性を下げる原因だ、出会ったら心から軽蔑してあげよう
0248デフォルトの名無しさん
垢版 |
2020/09/26(土) 17:56:41.81ID:Ztx9BLyg
>>243
アジャイルなのに単体テストに意義を見いだせないって終わってるな。しかも、自動化スレでこんな発言だもんな。
アジャイルという言葉を理解していなさそう。
0249デフォルトの名無しさん
垢版 |
2020/09/26(土) 17:57:28.46ID:IgGP+BQU
>>248
アジャイル == 単体テストと思ってそうwwwwwwwwww
wwwwwwwwwwザ・ガラパゴスって感じwwwwwwwwwww
0250デフォルトの名無しさん
垢版 |
2020/09/26(土) 17:58:16.27ID:IgGP+BQU
アジャイル == ユーザ
これが本当のアジャイル
ユーザが見るのは単体テストの結果じゃない、プロダクト
0252デフォルトの名無しさん
垢版 |
2020/09/26(土) 17:59:20.69ID:IgGP+BQU
まともな企業で仕事してみ、総合テストを重視したほうが品質高まるねってのが常識だから
0253デフォルトの名無しさん
垢版 |
2020/09/26(土) 17:59:25.33ID:gRR2jm5z
>>243
>日本の仕事の生産性が低いのも細かいところで頑張って全体の品質から目を背けているからだ
>開発者が力を注ぐべきはプロダクトでありユーザの満足度だ
なんでアジャイル開発やTDDに発展していったかっていう経緯が全然分かってないやん
単体テスト無しで各コードが密結合されたプログラムの場合、変更のコストが膨大になる(作業工数の膨大)
で、プログラムっていうのは常に変化するものだ
不具合対応だけでなく、それこそユーザー要望によってコードはどんどん追加される

で、そのユーザーを満足さえるためにコードを変更するって事は仕様追加だけでなくて、既存仕様の担保も同時に必要になるんだよ
密結合されたコードは修正時の影響範囲が大きく、容易に変更する事が出来ない
何より変更後の既存仕様の担保っていう点で言えば、全てを保証するためには膨大なテストが必要になる

単体テストを『ちゃんと』作ると、プログラムは自然と疎結合になっていく(なぜならそうしないとテスト自体が書けないので)
更に仕様変更後も単体テストを動かす事で、少なくとも単体テストを実装している個所については
変更前後の動きを担保する事が出来る
もし抜けがあれば追加すれば良い、そうすれば次からはそこは抜け落ちない

つまり最初の工数こそかかるが、リリース後の保守/仕様変更に強いプログラムが出来上がる
これは長期的に見ればユーザーにも開発者にとっても大きな利点

お前はリリースした後の長期的な観点が抜け落ちてるからこそ、単体テストを軽視してるんだろ
ウォーターフォール式の開発で技術者寄せ集めてでプロジェクト終わったさー解散、ってやってるような奴だなとしか思えん
……というか調べたけど、テスラのロケットがシミュレーション止めたっていう話自体全然出てこないんだが……
0254デフォルトの名無しさん
垢版 |
2020/09/26(土) 18:02:35.17ID:U+G6yEte
>>239
単体テストは基本設計者がやるから
自動化環境の導入は片手間じゃなかなか難しいからうちは専任の部隊がいる
一旦入れれば次からはそんなに苦労しないんだけど最初のハードルはちょい高めやね

>>242
NGしとけ
0255デフォルトの名無しさん
垢版 |
2020/09/26(土) 18:03:31.79ID:gRR2jm5z
というかユーザーは単体テストを見ない、だから単体テストは不要
っていうのは恐ろしいほどの暴論だぞ

ユーザーが必要としている領域と、開発側で必要としている領域は一致しない部分が出てくるんだから
全く理由になって無いぞ
0256デフォルトの名無しさん
垢版 |
2020/09/26(土) 18:46:55.40ID:IgGP+BQU
>>253
密結合wwww疎結合wwwwいかにも10年前の本に書いてそうなことだなwwwwww
単体テストがないから設計ができないなら設計力が足りてないわ
単体テストしてる場合じゃないプロダクトと向き合えユーザと向き合え
単体テストでパソコンと向き合ってんじゃねえwwwww
0257デフォルトの名無しさん
垢版 |
2020/09/26(土) 18:56:33.26ID:gRR2jm5z
>>256
じゃあ単体テスト不要の根拠になるソース出して?
>>154辺りの本が古いのであれば、当然当たらしいやつがあるんだよな?
ソースが無けりゃただの妄言だぞ
0258デフォルトの名無しさん
垢版 |
2020/09/26(土) 18:57:42.94ID:eYWGQOJY
>>253
密結合されたコードの破壊力はヤバいね。
何がやばいかって、最悪、1から作り直しになるから。
そして、そんなコードを作る人達がリファクタリングしたり再設計させたところで同じことを繰り返すから。
俺の会社の過去最高のクソプロジェクト案件が脳裏に浮かんだよ。

まぁ、あんたの言うとおりだわな。

>>255
> ユーザーが必要としている領域と、開発側で必要としている領域は一致しない部分が出てくるんだから
> 全く理由になって無いぞ

全くそのとおりだ。
0259デフォルトの名無しさん
垢版 |
2020/09/26(土) 19:00:26.44ID:IgGP+BQU
>>257
まともな会社で仕事してみ
総合テスト > 結合テスト >>>>>>>>>>>>>>>>>>> 単体テスト
品質を左右する優先度はこれ
0261デフォルトの名無しさん
垢版 |
2020/09/26(土) 19:04:32.62ID:IgGP+BQU
単体テストはコーダの自己満を超えられないのよ
もっと広い視野でプロダクト全体を見渡さないとよいプロダクトは作れない
プロダクト売るのはコーダじゃないから気にしたことないだろうけど
分析してみるとユーザの満足度に単体テストレベルの些末なことは一切関与しない
0262デフォルトの名無しさん
垢版 |
2020/09/26(土) 19:07:01.48ID:IgGP+BQU
たとえカバレッジ120%であってもユーザビリティが低ければ使われない
ユーザの満足度とコーダの満足度は違うもの
UIを洗練させ機能を洗練させユーザが本当に求めてるのは何かと
考え続けることがプロダクトの品質を高めることに繋がる
それがユーザと向き合うってこと、パソコンと向き合ってるだけじゃダメ
0263デフォルトの名無しさん
垢版 |
2020/09/26(土) 19:08:27.91ID:lXs6C011
ソースは明かせないが、信頼できるとある専門から聞いたという話では
単体テストをやればやるほど売上が下がることが明らかになったそうだ

な?そういうことなんだよ
0264デフォルトの名無しさん
垢版 |
2020/09/26(土) 19:09:11.93ID:c/9EiqGf
>>262
たとえカバレッジ120%であってもユーザビリティが低ければ使われない

それなら

たとえカバレッジ120%であってもユーザビリティを高くすればいいだけでは?
0266デフォルトの名無しさん
垢版 |
2020/09/26(土) 19:11:23.17ID:IgGP+BQU
目的はユーザを満足させることであり単体テストはその手段として
使われるのだけれども単体テスト頑張ってもユーザの満足度あがらんね
それはどうしてだろうプロダクトの品質があがるわけじゃないからだってのが
20年前〜10年前まで単体テストを頑張って得られた結論
いまは結合テスト、総合テストを自動化して品質を高めるのが主流
0267デフォルトの名無しさん
垢版 |
2020/09/26(土) 19:12:54.99ID:IgGP+BQU
10年前の知識で頑張ってるお前らは俺を煽ることでどうにか今の技術を聞き出そうとしてる情けない人たち
0268デフォルトの名無しさん
垢版 |
2020/09/26(土) 19:14:20.17ID:IgGP+BQU
本を読んでPCと向き合うとことしかしてこなかったお前らの限界
ユーザと向き合うことを避けてきた根暗なコミュ障に開発の最先端は無理
0269デフォルトの名無しさん
垢版 |
2020/09/26(土) 19:16:47.76ID:U2gS2HGa
なんかヤベー奴沸いてるからこれ貼っとくわ。

詭弁の特徴のガイドライン

1.事実に対して仮定を持ち出す
2.ごくまれな反例をとりあげる
3.自分に有利な将来像を予想する
4.主観で決め付ける
5.資料を示さず自論が支持されていると思わせる
6.一見関係ありそうで関係ない話を始める
7.陰謀であると力説する
8.知能障害を起こす
9.自分の見解を述べずに人格批判をする
10.ありえない解決策を図る
11.レッテル貼りをする
12.決着した話を経緯を無視して蒸し返す
13.勝利宣言をする
14.細かい部分のミスを指摘し相手を無知と認識させる
15.新しい概念が全て正しいのだとミスリードする
16.全てか無かで途中を認めないか、あえて無視する
17.勝手に極論化して、結論の正当性に疑問を呈する
18.自分で話をずらしておいて、「話をずらすな」と相手を批難する
19.権威主義に陥って話を聞かなくなる
0271デフォルトの名無しさん
垢版 |
2020/09/26(土) 19:27:01.07ID:vfGHSq+F
>>268
昨日の昼間からム板に張り付いている人に言われても説得力ねぇわ。
そしてそれと同じくらい、お前の50を超えるレスに説得力ねぇわ。

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

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

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

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

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

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

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

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

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

総合的に使い物にならないものを詳細までテストするのは時間と金の無駄だから
ウォータフォールと真逆のことをやってユーザの満足度を最優先にしてプロダクトに反映する
これを全体最適化と言う
0284デフォルトの名無しさん
垢版 |
2020/09/26(土) 20:41:43.72ID:IgGP+BQU
ガラパゴスジャパンのものづくりにはその俯瞰的な視点が抜けてるから欧米にはまだまだ追いつけない
過去の慣習からいまだに抜け出せずに10年前の本をありがたがっている人もいるくらい残念な状況
0286デフォルトの名無しさん
垢版 |
2020/09/26(土) 20:46:10.02ID:IgGP+BQU
そう、いうなればいまだに単体テストを頑張ってるプログラマはさながらハンコ議員連盟みたいなもの
時代遅れの技術にいつまでもしがみついて進歩を遅らせてるってこと
愚鈍で低能な人間は日本の未来を暗くするだけ、ノロマの罪で逮捕して冷たい牢獄で一生を過ごして欲しいくらいだわ
0287デフォルトの名無しさん
垢版 |
2020/09/26(土) 20:49:25.23ID:c/9EiqGf
>>286
それじゃいまだにログを目視で頑張って眺めてそれっぽい値ならOKなんて言ってるやつはどうなるの?
0288デフォルトの名無しさん
垢版 |
2020/09/26(土) 20:50:23.41ID:IgGP+BQU
>>287
それはありだろ、ログは大事だ
0289デフォルトの名無しさん
垢版 |
2020/09/26(土) 20:50:49.34ID:c/9EiqGf
単体テスト(自動テスト)で正しい値と比較 vs 目視確認でそれっぽい値かどうかチェック

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

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

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

お前に見張り番頼んだら、盗まれていくのを見てましたって言いそうw
0297デフォルトの名無しさん
垢版 |
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ページな

それっぽい言葉で誤魔化してるつもりかもしれんが
何ども言うがソースが無いなら一切妄言と変わらんからな
0299デフォルトの名無しさん
垢版 |
2020/09/26(土) 22:22:37.23ID:EyP34oM1
まあ、なんとなく言うこともわからないでもない

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

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

部品のテストをいくら頑張ってもロケットは飛ばないというのは正しいと思う
まあ、これで悩むのは請けた仕事がそこまで判断するような広範囲な仕事だけだが
0303デフォルトの名無しさん
垢版 |
2020/09/26(土) 22:42:04.33ID:gRR2jm5z
>>299
>結局、単体テストのチェック項目は言うほど明確にならないってことだな
>浮動小数点の変数1つとっても厳密にやると恐ろしく時間がかかる
一回仕様決めてテスト書いたら
後はもう1関数辺り数秒にも満たない実行時間しか無いぞ……

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

・自動化Scriptの作成コストはでかい
・単体テストよりもうちょっと上の階層のテストの自動化の方がよくないか?
・そんなに何度も単体テストしないし
・かけたコストに対するリターンが小さそう?
0305デフォルトの名無しさん
垢版 |
2020/09/26(土) 22:51:11.37ID:IgGP+BQU
>>304
まともな人が居てうれしい
0306デフォルトの名無しさん
垢版 |
2020/09/26(土) 22:51:21.53ID:EyP34oM1
>>303
すげー大変じゃん
仕様を定義するやつも
小数点いくつで四捨五入なのか切り捨てなのか全部考えないと
でもそんなことしなくてもプログラムって動くし
んでこういうのって会社で一旦やるって定義されちゃうと全部やらないといけなくなっちゃう
でも大半は必要ない
0307デフォルトの名無しさん
垢版 |
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/

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

少なくとも俺はそんなイメージだけど?
0311デフォルトの名無しさん
垢版 |
2020/09/26(土) 23:17:09.95ID:gRR2jm5z
>>309
>作るのは簡単やろ
>だってUWSCで画面のボタンをポチって押すだけやろ
それは考えが甘すぎだわwwwwwwwwww
それだと操作しかしてないやん

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

単体テストについては、こんなイメージだな。
0322デフォルトの名無しさん
垢版 |
2020/09/27(日) 00:22:02.61ID:4yJ9ltzt
プロならテストコード書かなくても動くコード書くのが普通
単体テスト書くことが目的化してしまってるのがマナー講師と呼ばれる所以
0323デフォルトの名無しさん
垢版 |
2020/09/27(日) 00:26:17.42ID:4yJ9ltzt
>>321
単体テストは時間の無駄だから
単体テストのテストコード見て判断する木偶の坊が管理してるとかそのプロジェクト破綻してるだろwwwwwwwwwwww
大局を見ろよ、設計として正しいかどうかで判断しろ、単体テストのテストコード見てどうするんだバカwwwwwwwwwwwwwww
wwwwwwwwwwwwwwww笑い死にさせる気かwwwwwwwwwwwwwww
0324un.coder ◆n27dpjULd2
垢版 |
2020/09/27(日) 00:27:07.37ID:u5qdbgw4
なんか、さっそく、あぼーんされている奴が沸いてるんだけど。
ごめんね。俺のブラウザだと、NGが共有されるから、読めないや。
0325デフォルトの名無しさん
垢版 |
2020/09/27(日) 00:28:35.95ID:4yJ9ltzt
「単体テストのコードがあるな、よし!」とか言ってるのかwwwwwww
wwwwwww現場猫かよバカがwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwww
0326デフォルトの名無しさん
垢版 |
2020/09/27(日) 00:29:25.18ID:4yJ9ltzt
>>324
見てるくせにwwwwwNG解除してみてるくせにwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwハゲワロwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwwwwwwww
0327デフォルトの名無しさん
垢版 |
2020/09/27(日) 00:31:31.73ID:4yJ9ltzt
お前ら笑いの才能だけはあるよなwwwwwwwwww
wwwwwwwwwすげーわ単体テストのテストコード見て管理した気になってるとかwwwwwwww
wwwwwwwwww次元が違うわwwwwwwwwwwww
0328デフォルトの名無しさん
垢版 |
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
0329デフォルトの名無しさん
垢版 |
2020/09/27(日) 00:36:47.59ID:4yJ9ltzt
>>328
ロクなテストしてないな、やっぱ単体テスト無駄だわ、そのテストなくても問題ない
いいよなーオープンソースは気楽でよー、人件費なんて無限に湧いて出るようなもんだもんなー
お前のようなアホが実績欲しさに無駄なコード書いてくれるもんなーいいなーうらやましいなー
無駄なテストコード書いて時間つぶして居られるなんて幸せものだなー
0330デフォルトの名無しさん
垢版 |
2020/09/27(日) 00:38:29.69ID:4yJ9ltzt
無駄なコードでも大変だから仕事した気になれるんだろうなーやりがいはありそうだよねーwwwww
wwwwwwww一銭の価値もないけどwwwwwwwwwwwwww
0331デフォルトの名無しさん
垢版 |
2020/09/27(日) 00:40:09.14ID:4yJ9ltzt
お前ら授業中に真面目にノート取って先生に褒められて勉強できる気になってそうwwwwww
0332デフォルトの名無しさん
垢版 |
2020/09/27(日) 00:40:57.58ID:4yJ9ltzt
でも高卒どまりwwwww
0333un.coder ◆n27dpjULd2
垢版 |
2020/09/27(日) 00:47:26.86ID:u5qdbgw4
>>328
有名どころのテストコードを見たことが無かったけど、思ったより普通だった。

でも、まぁ、勉強になる。
0334デフォルトの名無しさん
垢版 |
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
0335デフォルトの名無しさん
垢版 |
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

しかしまさか有名なオープンソースすら否定すると思わんかったわ
一体何を根拠にその自信が持てるのか分からん
0336デフォルトの名無しさん
垢版 |
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のテストフォルダの構成が一番読みやすかった
レスを投稿する


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