底辺過ぎてちょっとビビる

26歳からIT業界にいるエンジニアが、まったく成長できてないことを確認するブログ。備忘録的に使いたいとも考えています。

【基礎】テストエビデンスの取得について

長くて苦しい結合テストがやっと終わった。
テスト設計ではなく、久々に「テスター」として結合テストの最初から終わりまで一人でやり切った。
※わからないことは聞きまくりだったけども

  

しかし、長くて苦しかった訳はほとんど自分にあった。

とにかくテスト実施時の基本的なことをおろそかにしていたのだ...
何が大事だったか、戒めのために残しておこうと思う

  

  

テストを実施することよりも重要なことは、エビデンスをどう残すかということ

テストケースの消化、ということに集中しがちだが、結局納品物として「テストをしましたよ」という証明になるのはエビデンスになる。 「やりました」と口で言ってもエビデンスが残ってなければ話にならないからだ。 単体テストレベルであれば、打鍵のみでエビデンスを残さないケースもあるだろうが、結合テストではカッチリエビデンスに残すことに なるので、そのためにどうやってエビデンスを残すのか?というのは大事。

そして、エビデンスをどう残すかは決まったルールがあればそれに従うだけだが、 もし決まったルールがないのであれば、基本的には以下の4点を基本エビデンスとして残すこと。

  1. WEB系であれば、実行後の画面キャプチャ
  2. 実行前のデータ状態
  3. 実行後のデータ状態
  4. 実行後のログ   

  

エビデンスとテストケースの紐付け

エビデンスを格納した後でテストケースとエビデンスと一致させるために、紐付けが必要になる。
基本的にはエビデンス自体にテストケースナンバーをつけた上で保存しておけば基本は大丈夫。 わかりやすいのは、テストケースの大項目単位でフォルダを作成して、階層的にフォルダ管理をすることで エビデンスの紐付けはしやすくなる。
     

  

テストケースが「絶対」に正しいということはない

これはテストを実施中には実は判別が難しい。
テストケースが正しいか、誤っているかは仕様を理解していないと判別がつかないからだ。 単純にテストを消化するだけだと、テストケースの「期待値欄」とテスト結果が一致しないので、 「テスト結果=NG」としてしまいがち。
なので、テスト結果がNGとなった項目については、テスト実施直後くらいに先に報告をすべき。

※現場によってはRedmine等のテスト結果を管理するためのツールを利用しているかもしれない。  

  

テスト実施前にどんなテスト結果が必要か準備と確認をしておくこと

テスト実施前に手順の確認、という意味合いもあるが、

  • DBダンプを取る必要がある
  • 画像のキャプチャを取る必要がある
  • 実行ログを取得する必要がある
  • クライアントツール等のキャプチャを取る必要がある 等々

これらのエビデンスを取るために「何が必要なのか」を実施前に把握しておくこと。

  

テスト実施のための環境

テストを実施する環境は様々あると思うが、

  • WEBブラウザIEChromeのブラウザ種別の他に、versionも考慮されるはず)
  • ローカル環境(どこで実行するか、ログの出力はどこか)
  • サーバ環境
  • Dockerなどの仮想環境
  • AndroidiPhone等の各種スマホ

それぞれ「テストをするためにどんな環境構築が必要か?」と確認しておくこと。 最初から用意されている場合もあるが、大概何かしらの準備が必要になる。  

  

  

遅れていても余裕を持って(余裕がなくなることがミスを生む)

テストってどうしてもスムーズに進まず、どこかで遅れが発生することがある。 そもそもどんなテストをするのか、漠然と理解していてもきちんと理解できていない状態で、 テストを実施していると順調に進んでいるのか遅れているのかもよくわからなくなる気がする。 順調に進んでいるように見えて、実は確認すべきテスト項目の半分くらいしか確認できていない、 なんてこともあったりする。終わったと思ってエビデンスを格納する段階で「エビデンスが足りてない...」なんてことも。

場合によってはバグが多くてテスト実施はしたものの不完全だったりするなんてこともある。 現状の理解をきちんとをすることで進捗状態を把握できる。 パニックにならないためにも、状況を理解できる余裕を持つようにしよう。

  

  

もし大事はエビデンスを誤って消去してしまったら...

  1. MVコマンドでファイル名を置換しようとしたつもりが、RMコマンドを打っていた...
  2. 誤ってファイルの上書きをしてしまい、元のファイルが消えてしまった

など何かしらの操作により大事なエビデンスが消えてしまった場合の対処方法

RMコマンドで消してしまった場合は、ファイルシステムext3またはext4であること限定ですが、 以下の手段により復旧が可能なようですので試してみる価値はあります。

Linuxの恐怖体験「rmで間違ってファイル消してしまった!」そんな時はextundeleteでリカバリ | Unskilled?

大事なファイルを消してしまったけどextundeleteを使って危ないところで助かった話 - Qiita

Windowsの場合は、ゴミ箱に入っている可能性があるので、探してみよう。 そして、もし復旧ができなかった場合は素直に「すみません消してしまいました」と報告しよう。 何かしら対処を考えてくれるかもしれないし、単純にテストの取り直しを指示されるかもしれない。 おっかないのでRMコマンド打つ前はバックアップを取るのを忘れないようにしよう。

  

  

実施コマンド、投入したデータ、JSON、は念の為残しておこう

テスト実施時に叩いた、コマンドやデータ類、JSONなどの投入データは念の為手元に置いておこう。 だいたいテスト実施前に実行コマンド、データ、JSONなんかは実施前手順書的なドキュメントにあるだろうけど、 手順書に書いてある通りのコマンドなどで実施できない場合に書き換えもありうる。

日付やIDなどがユニークなキー値になっていて、すでに同じようなテストデータが投入されている場合に、 入力が弾かれてしまう場合があるからだ。

そもそも手順書の記載が誤っているかもしれない。

  

  

【この1冊でよくわかる】ソフトウェアテストの教科書―品質を決定づけるテスト工程の基本と実践

【この1冊でよくわかる】ソフトウェアテストの教科書―品質を決定づけるテスト工程の基本と実践

現場の仕事がバリバリ進む ソフトウェアテスト手法

現場の仕事がバリバリ進む ソフトウェアテスト手法

テスターちゃん 1巻

テスターちゃん 1巻