0. なぜこの記事を書くのか
私は、非エンジニアです。ご縁があって、エンジニア上司の元で働くことになり、
Webアプリと、ネイティブアプリのテスター業務を経験しました。
丁寧に、上司からご説明いただきましたが、
多くの場合、「テスト環境ってなに?」「テストケースとはなに?」という問いで頭の中がいっぱいでした。
テスター業務を渡された時の備忘録として、テスター業務の大まかな流れをまとめることで、
いつかどこかにいるテスター業務を依頼された非エンジニアの方の一助になればいいなと思い、ここに記します。
1.テストとは
新規機能の開発、または機能の修正後に、プログラム・システムが問題なく動作するか確認する工程です。テストで発見した不具合を発見することで、リリース前にバグなどを早期に発見→修正ができるため、プログラム・システム・アプリケーションの品質を保つために重要なものです。
2.テスト実施までの流れ
- テスト内容の確認
- テスト方法の確認
- テスト実施(本番)
- テスト結果の報告(レポート)
3.テスト内容の確認
テスト実施前に、以下の7点を確認しておくと、テストの概要を理解しながら、スムーズにテストを進められます。
- テストの目的・・・今回のテストはなぜ行われるのか
- テストの対象
- テスト方法
- 環境
- デバイス・OS
- レポート方法
- おおよそのスケジュール
事前に開発メンバーに、以下のものが共有されるので、
こちらを元に、テスト内容を理解するといいでしょう。
<開発メンバーから提供されるもの>
- テスト環境
- テストケース(多くの場合、スプレッドシートに記載されています)
※テストケースイメージ画像(引用元画像はこちらからお借りしました)
★ Tips★用語説明
用語 | 意味 |
---|---|
テスト対象 | テストで確認したい「機能」や「画面上の挙動」のこと。例えば、旧データテーブルへのトラッキングデータへの書き込みを止めた後に、旧データテーブルのトラッキングデータ書き込まれないことが「テスト対象」となる。 |
テスト環境 | 環境にはサーバー環境の種別があり、①本番環境②検証環境(staging)③開発環境(devlopment環境)があり、多くの場合②検証環境(staging)で行われる。 |
テスト環境のイメージ図
イメージ図の引用元
4.テスト方法の確認
3.の確認後、テスト本番前にテスト環境にログインして、テストケース通りに動作するか、表示が変わるのかなど触ってみましょう。その際に、不明点・テストにあたり必要な情報があれば開発メンバーに問い合わせましょう。
<具体例>
・コマンドを打ってAPI情報が帰ってくるか確認するとテストケースに書いてあるが、APIパラメータを指定してほしい。
・管理サイトの〇〇メニューをクリックした後に、▲▲画面を表示とあるが、そもそもその画面が実装されていないので確認できない。▲▲画面を見れるようにしてほしい。
・iOSの実機がないから、ください。
などなど
5.テスト実施(本番)
開発メンバーからテスト実施の指示が来たら、実際にテストケースに沿ってテスト対象を確認しましょう。都度、不明点があれば開発メンバーに問い合わせます。
6.テスト結果の報告(レポート)
テスト実施後に、3.で確認したレポート方法でテスト結果を報告します。
多くの場合、スプレッドシートに「テスト実施日」「テスト実施者」「結果」欄があります。こちらを元に、開発メンバーは修正をするのか、次の工程に進むのか判断しますので必ず記入してください。
なお、修正があった場合に、再テストを行う場合があります。
7.終わりに
テスター経験を通して、アプリ・システムの質向上や、バグの発見など、
作っておしまい。という世界ではないのだと、開発メンバーに混じってテスターをしていると実感するばかりでした。
余談ですが、過去に細かな仕様書がなく、開発者も退職済みで、
ただしシステムだけがあるといった結合テストを経験したことがあります。
エンジニア上司との相談の上ですが、
・どこまでのテストを行うか
・このシステムを使用するエンドユーザーにとって、どんな不具合が起きたら、一番まずいのか
といったケースを洗い出しました。
実際にそのシステムを触り、どういった挙動が起こるのか、このボタンを押したら、
データベースには何が書き込まれるのか・・・・という手探りの中、テストケースを作成しました。
いくらでも時間を掛ければ細かなバグを探し出しすこともできるでしょう。
しかし、どのレベルの品質を担保させるかといった上流の判断も非常に絡まる業務だと、テスター業務を通して感じました。
非エンジニアの皆さん、テスター業務の背景をなんとなく想像しながら進めると、案外面白いものが見えるかもしれませんよ。