わからない・・・おれたちは雰囲気てテスト自動化をやっている・・・
という声をたまに耳にします。
あとは、「テスト自動化できるようになりなさい」と会社から言われたものの、何をどう身につければわからない、とか。
私も正直考えている最中なのですが、ざっくり思いつくものを挙げてみます。
なお、ちゃんと整理されたものがほしいという方はAutomation Test.SSFをあたってみるといいと思います。(が、これの最新バージョンがどこでどう公開されているのかを知らない・・・知ってる方教えてください。)
参考:https://www.slideshare.net/ryujikoyama/automation-testssf-alpha
テスト自動化エンジニアに必要なスキル
自動手動問わずテスト関連で必要なスキル
- ソフトウェアテスト関連
- テスト設計
- テスト計画
- テスト分析
- などなど
- ソフトウェア開発関連
- 開発プロセス
- CI/CD
- バージョン管理
- チケットを使った管理
- チャットでのやりとり
- などなど
テスト自動化をしようと思ったときに、まずはソフトウェアテストに関する知識やスキルがないと困ります。すでにチームや会社内に手動テストの手順があったりすると、「よし、手動でやっていたものを自動でできるようにしよう」と思って着手はできます。しかし、いざ手動→自動のコンバートをすると、テスト実行に長い時間がかかったり、自動テストがPassしているのにあとで不具合が出てきたり、一言で言うと「効果的でないテスト」を大量に自動実行しているパターンになりがちです。
この「効果的でない」パターンには、テストをよく知らずに自動化した場合の他に、ソフトウェア開発プロセスやソフトウェア開発で使われる効率化の技術・考え方・ツールをよく知らずに自動化した場合も陥りがちです。自分が自動化したテストが開発プロセスの中でどう使われてどう効果を発揮するのか、を考えずに「とりあえず毎晩画面が動きます」になってしまうと残念。
自動テストならではのスキル
- プログラミング・コーディング
- 自動テストツールの使い方
自動テストは多くの場合コードを書くことになるので、他人に読みやすいコードを書いたり、簡潔なコードを書いたりするスキルは絶対に必要です。(自戒を込めて・・・)
汚い自動テストコードは、汚いプロダクトコードよりもさらに悪いと考えます。保守のコストが大きくかかるからです。
あとは自動テストツールそのものの使い方についても、スキルが必要です。
まとめ
まとまらない・・・と思いつつ、大まかなものだけ挙げてみました。
世の中、特に自社開発やってるところで「うちは自動テストガンガンやってます」という会社のテストの中身がとても気になります。(どなたか中のひとこっそり教えてください。
一方「ウチは全然自動化ができなくて困ってます・・・」という会社は、特にCI/CDあたりがうまくいっていないような印象です。スキルのある開発者がいても、テストを回すというところに手が回っていないパターンですね。
そういうところには、テストがわかっていてかつコードもかけてCIツールでテストを適切にまわしていけますよ、という人が重宝されますね。そうなりたい。