0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

初めての自動テスト ―Webシステムのための自動テスト基礎を読んだまとめ

Last updated at Posted at 2024-12-15

初めての自動テスト ―Webシステムのための自動テスト基礎

アジャイル開発に絶対必須の自動テスト。そのとっかかりになりそうな本です。

いわゆる「テストピラミッド」をベースに話が進んでいく。

  1. 第1部 ピラミッドの地図を作る
    1. 1章 テストのピラミッド
    2. 2章 ユーザーインターフェイステストに触れる
    3. 3章 レガシーシステムにUIテストを導入する
    4. 4章 統合テストで点と点を結ぶ
    5. 5章 RestfulなWebサービスの統合テスト
    6. 6章 ユニットテストで基礎を固める
    7. 7章 JavaScriptを使ったブラウザ上のユニットテスト
    8. 8章 ピラミッドを登る
  2. 第2部 ピラミッドを探索する
    1. 9章 プログラミング初級講座
    2. 10章 テストを整理する~混沌の中から法則を見つけ出す~
    3. 11章 効果的なモックの活用
    4. 12章 テストファースト
  3. まとめ

第1部 ピラミッドの地図を作る

1章 テストのピラミッド

美しいテストを作ったのに壊れた話。
ユニットテストの代わりにUIテスト→重くなる→エラーが見つけづらくなる、テスト実行を嫌がりだす→壊れたまま作り続ける→崩壊…

3つの教訓

  • テストの種類ごとに向き不向きがある
  • 「書ける」と「書くべき」は一致しない
  • テストケースの実行時間が長くなると、反復回数は減る。

UIテスト(Cypressなど)は、アプリケーションを全体通して見てくれていい感じに見えるけど、コストが高い(重い&壊れやすい)

統合テストは、UIを通過しないのでUIが壊れていても通せる が、どこが壊れてるかは分かりづらい

ユニットテストは、とにかく速く、どこがだめだったかすぐわかる。ただし、つながりの部分については弱い

まずユニットテストを書いて、そこから統合→UIと進めていこう。

ユニットテストは開発のため、UIテストは検証のためのもの。

自動テストの作成を誰が行うか?開発者とテスターは立場が違い、重視するところが違う

→協調して行おう。テスターも自動テストを書こう、開発者もテスターの生産性を上げよう。

2章 ユーザーインターフェイステストに触れる

UIテストの仕組み:HTMLとCSSのタグを使って要素を取得し、アサーションを入れよう

3章 レガシーシステムにUIテストを導入する

既存のHTML、CSSを使用して要素を取得する方法を学ぶ。

4章 統合テストで点と点を結ぶ

UIがなくても、リクエストを作成する方法がわかれば統合テストが作成できる。

5章 RestfulなWebサービスの統合テスト

GET、POST、PUT、DELETEをリクエストを作成してテストする。

6章 ユニットテストで基礎を固める

ユニットテストは非常に高速。ただ、局所的なものなのでネットワークが絡むところは避けたほうがいい。

モック化大事!

7章 JavaScriptを使ったブラウザ上のユニットテスト

ブラウザで起きていることをユニットテストで確認することができる。UIテスト=E2Eではない。

8章 ピラミッドを登る

3種類のテストの得意分野で勝負する。

  • 大部分はユニットテストで。
  • 統合テストでは接続の部分に注力、ユニットテストでカバーできないところを対応。
  • UIテストは限定的に。壊れやすいことを忘れずに。

第2部 ピラミッドを探索する

9章 プログラミング初級講座

マジの初級講座なので割愛。

10章 テストを整理する~混沌の中から法則を見つけ出す~

テストを全部同じとこにまとめると後で大変なので、整理することが必要。

11章 効果的なモックの活用

必ずしもモックを使う必要はない。現物が使えるならそれで良し。

使いやすいものではあるけど、頼りすぎないようにする。

12章 テストファースト

TDD(テスト駆動開発)について。銀の弾丸ではないので、自分でしっかりコードを書こう。

まとめ

テストは大事だけど、やみくもにやってても壊れやすいテストになり、維持できなくなってしまう。

ユニットテスト、統合テスト、UIテストのそれぞれの特性を知り、適切に組み立てよう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?