- 1 名前:ひみつの名無しさん 投稿日時:2021/02/18(木) 08:36:41.180 ID:Vv7+3A/W0
- 例えばPONGのテストを書く場合ってさ
バーがボールを弾くことを確かめるにはどんなコードを書けばいいのさ - 2 名前:ひみつの名無しさん 投稿日時:2021/02/18(木) 08:37:27.320 ID:PrI55Qa50
- 何を言ってるんだろう
- 3 名前:ひみつの名無しさん 投稿日時:2021/02/18(木) 08:37:53.886 ID:7M39TbMw0
- なるべく純関数で作ってスナップショットテストを作ると楽
- 4 名前:ひみつの名無しさん 投稿日時:2021/02/18(木) 08:38:16.970 ID:Q/6pta+fM
- ぜんぶおしえて
- 5 名前:ひみつの名無しさん 投稿日時:2021/02/18(木) 08:44:47.236 ID:Vv7+3A/W0
- パッと思いついた方法だと
バーとボールの状態を予め決めておいて、さらに事前にその状態からボールがバーに弾かれた後の状態も求めておいて
実際にプログラムを動かしてみてその結果と事前に求めた結果が同じかどうか比較する
同じならテストは通る、違うならエラー
でもこんなのバーとボールの状態を全通りテストする訳にはいかないし気持ち悪いよな - 6 名前:ひみつの名無しさん 投稿日時:2021/02/18(木) 08:48:05.629 ID:svtXcFsT0
- 簡単だよ
まずはテスト用の変数を作る
次にバーに接触した時にその変数に必要なデータを代入させる
例えば、接触しましたよ。角度はどれくらいでした。スピードはどれくらいでした。
こんな感じ - 12 名前:ひみつの名無しさん 投稿日時:2021/02/18(木) 09:00:27.663 ID:M27uN6yR0
- >>6-7じゃないの?
テストケースが無数にあるなら全部じゃなくてそれなりの数用意してこんだけやれば充分ですって言っちゃえばいいじゃん - 7 名前:ひみつの名無しさん 投稿日時:2021/02/18(木) 08:50:00.929 ID:svtXcFsT0
- バーと弾との当たり判定は作っていると思う
そこに当たった時にテスト用の変数に代入したらいいのさ
ちなみにテスト用の変数は構造体またはクラスで作るといいよ - 8 名前:ひみつの名無しさん 投稿日時:2021/02/18(木) 08:53:50.035 ID:Vv7+3A/W0
- 角度とスピードが分かってもそれが意図した通りに弾いてるのかが分からないといけないんだよね
やっぱり目視でそれっぽく動いているということを確認するしかないんだろうか - 9 名前:ひみつの名無しさん 投稿日時:2021/02/18(木) 08:54:08.127 ID:Vv7+3A/W0
- ああああ分からないわよおおおおおお
ゲームはテスト書くのが難しいのかなあああああああ
だからテスターたくさん雇って物量戦術で通すのかなああああああああああ - 10 名前:ひみつの名無しさん 投稿日時:2021/02/18(木) 08:57:20.015 ID:svtXcFsT0
- それも簡単だよ
テストをしたらいい
意図的に、ボールの出現場所、ボールの速さ、角度を設定して
チートみたいな感じにバーにわざとあてるテストをする
まあこれにも限界があって、ゲームプログラマの考える範囲でしかテストが出来ない
そして必ずといっていいくらいバグは存在する - 13 名前:ひみつの名無しさん 投稿日時:2021/02/18(木) 09:01:45.610 ID:7ARmx0Yg0
- 2Dのブロック崩しなら
全通りチェックしてもいいんじゃね - 14 名前:ひみつの名無しさん 投稿日時:2021/02/18(木) 09:02:26.220 ID:FiFn1BDk0
- なんで人の話聞かないのに質問するの?
- 15 名前:ひみつの名無しさん 投稿日時:2021/02/18(木) 09:03:15.980 ID:Vv7+3A/W0
- そういうもんなの?
- 16 名前:ひみつの名無しさん 投稿日時:2021/02/18(木) 09:13:27.723 ID:YzbZ/BT90
- >>15
そういうものなの。全通り試さなくて良い。
その代わり、何で試すかは考える必要があるし、つまり経験と勘とセンスが必要になる。
端、端の隣、反射する角度が変わる直前、変わる直後、ど真ん中、とか何とか。 - 17 名前:ひみつの名無しさん 投稿日時:2021/02/18(木) 09:20:54.898 ID:Vv7+3A/W0
- おちんぽだな
- 18 名前:ひみつの名無しさん 投稿日時:2021/02/18(木) 09:32:36.587 ID:PsSBKXla0
- ここらへんバグりやすそうだなってところに目星をつけて試すわけか
- 19 名前:ひみつの名無しさん 投稿日時:2021/02/18(木) 09:34:25.429 ID:x9OvGPd20
- どういうゲームでどういうバグを心配してるのか書け
- 20 名前:ひみつの名無しさん 投稿日時:2021/02/18(木) 09:41:30.825 ID:3ZIRue0SM
- 昔クソみたいな自作テストフレームワーク作って既存フレームワーク汚い言葉でコケにしてた奴いたの思い出した
- 22 名前:ひみつの名無しさん 投稿日時:2021/02/18(木) 09:49:51.667 ID:svtXcFsT0
- まあ現実にはテスターっていうより
企画とかにやらせて
バグ見つけてくれーって感じだけど - 23 名前:ひみつの名無しさん 投稿日時:2021/02/18(木) 09:52:14.757 ID:svtXcFsT0
- しかもこれがやっかいで
複雑になればなるだけわけわからんバグが出て来る
このバグの解消がゲームプログラマーやってて一番頭痛くなる
動くには動くけど、何故かバグが出るって状態になる - 24 名前:ひみつの名無しさん 投稿日時:2021/02/18(木) 09:56:52.316 ID:YzbZ/BT90
- こういう要領を得ない文を連投してもっと要領を得ない文章にする香具師は、
矛盾とか不整合とかを含んだプログラムを書くんだろうな、と思ってしまう。
複雑になればなるほどプログラミングには文系能力が求められる。 - 26 名前:ひみつの名無しさん 投稿日時:2021/02/18(木) 09:58:12.020 ID:svtXcFsT0
- >>24
どうなんだろうな
どちらかというとゲームプログラミングは理系に感じる
何故それが動くのか?何故その条件式なのか?みたいなのを完全理解しないと
何でここでバグが出るのか?ってのが理解出来ない - 28 名前:ひみつの名無しさん 投稿日時:2021/02/18(木) 09:59:02.083 ID:Wjzpl5cB0
- >>26
ゲームだろうが業務だろうが論理の積み重ね
論理は理系でも文系でもない
文理に対する認識が誤ってる - 27 名前:ひみつの名無しさん 投稿日時:2021/02/18(木) 09:58:17.978 ID:Wjzpl5cB0
- >>24
数式だってシンプルなほど優れてる
分離関係なく物事の捉え方の問題だと思う - 25 名前:ひみつの名無しさん 投稿日時:2021/02/18(木) 09:57:39.622 ID:Wjzpl5cB0
- まずは何事もシンプルにしろ
シンプルの積み重ねはバグりにくいしテストしやすい - 29 名前:ひみつの名無しさん 投稿日時:2021/02/18(木) 09:59:37.810 ID:ZCM2ZQmc0
- テストコードでできる範囲はホワイトボックス前提で関数単位でテストするユニットテストだろ
それ以上のテスト自動化だと普通のテストコードではなく何かのフレームワークなり使わんと無理よ - 30 名前:ひみつの名無しさん 投稿日時:2021/02/18(木) 10:00:40.697 ID:YzbZ/BT90
- >シンプルの積み重ねはバグりにくい
ダウト単体がシンプルであることと、合成が複雑であることとは相反しない。
逆にシンプルにし過ぎると、複雑に組み合わせないと使い物にならなくなる。
コメント