Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

第25章 テスト駆動開発のパターン #31

Open
at-grandpa opened this issue Jan 10, 2018 · 8 comments
Open

第25章 テスト駆動開発のパターン #31

at-grandpa opened this issue Jan 10, 2018 · 8 comments

Comments

@at-grandpa
Copy link
Owner

疑問

  • 「テストする」とは?
  • いつテストする?
  • テスト対象ロジックをどう選ぶ?
  • テストデータをどう選ぶ?

これらを言語化していく。

@at-grandpa
Copy link
Owner Author

テスト(名詞)

  • 「合格か不合格かを判定する手順」
  • 負のループ
    • ストレスがあるとテストが減る
    • テストが減るとエラーが増えてストレスが増える
  • 負のループの中で「テスト」を「自動テスト」に変える
    • 正のループになる
      • 不安だったらテストを頻繁に回す
      • テストがどんどん通ればストレスが減る
  • 迷ったらテストを書いて実行しよう

@at-grandpa
Copy link
Owner Author

独立したテスト

  • テストは他のテストに影響を及ぼしてはならない
  • テストの速度は限りなく速くしよう
  • 頻繁にテストを回そう
  • テストが独立しているということは、問題を小さく直交した問題に分割しなければならない
    • 準備が簡単で、実行速度も速くなる
    • 凝集度が高く結合度が低くなる
      • 直交しているはずなので、お互いに影響を与えない設計に近づくはず

@at-grandpa
Copy link
Owner Author

TODOリスト

  • 頭の中をdumpしよう、どんなことでも、思いついたことを全て
  • ストレスに悩まされないコツは、どこに行くべきかわかるまでは、一歩も踏み出さないこと
  • 粒度を細かくして、地に足をつけて進んでいく
  • 慎重に
  • 途中で思いついたことはすぐにリストに追加する

@at-grandpa
Copy link
Owner Author

テストファースト

  • テスト対象のコードを書く前にテストを書こう
    • 実装を終えてしまったらテストは書かないだろう
    • テストを書くとストレスが減らせる
    • ストレスが減ると、テストを書くようになる

@at-grandpa
Copy link
Owner Author

アサートファースト

  • さぁテストを書くぞ、といったときに、アサーションをまず書こう
    • 決して、テストのコードを上から書いてはいけない
    • テストが複雑になるし、何をテストするのか迷ってしまいがち
  • 「テストから、そして、アサーションから」
  • シンプルなテストになる
  • アサートファーストにしないと、複数の問題を一気に解決しそうになる

@at-grandpa
Copy link
Owner Author

テストデータ

  • テストを読みやすく、理解しやすいデータを使う
    • 意味の違うテストデータを用いよう
    • その意味を表現できるとなおよし
    • テストデータ3つで妥当な設計と実装を導けるなら、データを10個用意する必要はない
      • ちょっとここ、用意しがちだなー
  • 実データに近いデータを用いよう

@at-grandpa
Copy link
Owner Author

明示的なデータ

  • 期待値と結果をテスト自身に含め、それらの関係が明快にわかるようにする
    • 意味を持たせる
    • 数字を敢えて式で表現したりする

@at-grandpa
Copy link
Owner Author

at-grandpa commented Jan 10, 2018

この章で得た知見

  • 正のループになる
    • 不安だったらテストを頻繁に回す
    • テストがどんどん通ればストレスが減る
  • テストの独立性
  • TODOリストの活用
  • まずはテストを書く
  • テストの中でもassertionをまず書く
  • データは意味あるものを

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant