私がテストの自動化について登壇したり、直接お話をする際に気をつけているのが、
「テスト自動化」が指していることの意味がズレないようにする
ことです。
テスト自動化、には複数の意味がある
私は普段「テスター」や「QA」、イマドキノカッコイイ呼び方だと「SET」になるのでしょうか。そんなロールとして、他社さんのプロダクトやサービスの品質を上げるお手伝いをしています。そして、担当するのはソフトウェア開発におけるシステムテストや受け入れテストと呼ばれる部分のテストが主です。
このタイミングだと、テストは
- 画面を操作して期待通りの動作をするか確かめる
- SQLを実行してDBの値が期待通りかどうかを確かめる
などが中心になります。
ところが、開発者の目線でテスト自動化というと、普段行っている単体テストに関することをイメージする人が多いです。たとえば
- xUnitなどの単体テストフレームワークを使ってテストを書くこと
- CIツールなどを使って、自分が書いた単体テストを定期的もしくはコミット毎に実行されるようにすること
などを、「テスト自動化」と言うようです。
同じように、
- インフラ系の方
- Serverspec – Homeなどを使った、構築したサーバ環境のテストの自動化
- ネットワーク系の方
- そのほか
- GreenMailでメールのテスト自動化したり
- Postman | API Development EnvironmentでAPIのテストをしたり
- Apache JMeter – Apache JMeter™でパフォーマンステストしたり
など、いろんな分野の方たちがそれぞれのテストを自動化しています。
海外の記事とかで「N(任意の数字) Best Test Automation Tools in yyyy(任意の西暦)」みたいなのをけっこう見ますが、画面操作を伴うテストをメインとしたラインナップになりがちです。
割合的に確かに多いのかもしれませんが、
- テスト自動化、にはそれぞれの分野によっていろんな意味があるので、初めましての方とテスト自動化について話をする場合は前提をあわせましょう!
- 他の分野のテスト自動化についても、調べたり話聞いてみたりすると結構面白いですよ!
ということをお伝えして、今日はこのへんで。