はとむブログ

唐揚げを愛する組み込みエンジニアが思いを綴ります。技術コラム、ガジェット記事を中心に投稿しています。「はとブロ」と呼んでやってください。

「テストばかりで面白く無い!」と嘆くエンジニアへ。テストの目的とは?

こんばんは。はとむです。

 

ここ数ヶ月ほど、業務でテストを実施することが多いです。

 

開発が落ち着いてきたということもあり、

結合テストシステムテスト辺りを主に実施しています。

 

 

f:id:hatomu555:20180922102856p:plain

 

V字プロセスの後ろの方ですね。

 

設計を満たしているか確認する結合・単体テスト

要件を満たしているか確認するシステムテスト

ここにはないですが、静的解析なんかもテストですよね。

 

 

私は、テスト設計をやって、実施まですることもあれば

実施は他者にお願いすることもあります。

逆に実施だけ任されることもあります。

 

 

そんなテスト工程に身を置く中で、テストの目的について

思うところがありましたので記しておこうと思います。

 

 

テストの目的って? 

 

「ソフトウェア テスト 目的」で検索すると、

下記のような結果が出てきます。

 

・欠陥やバグを検出する

・要件を満たすことを保証する

・リリース後の品質リスクを見積もる

開発プロセス改善の指標となる

 

結果を見て分かる通り、

目的は必ずしも一つではなく、プロジェクトによって違います。

そして、人によっても違います。

 

なんなら、一言で表せるレベルではないです。

「正解がない」というのがある意味正解かもしれません。

 

あ、定義的な正解を知りたい方は

JSTQBとか標準規格をググってください。。

 

 

 

そして、私はテストの目的についてこう思います。

 

「テストの目的は、製品の品質を保証するためである。

バグを見つけることが目的ではない。」

 

 

業務でテストをやっていると、ついつい

「バグがあるのか・無いのか」というところに

焦点が向いてしまいがちです。

 

 

バグがあると、修正工数が必要になりますし、

原因分析やお客様への報告が必要なケースも存在します。

 

だから、納期という限られた時間内でテストをしていく中で

「バグがあるのか無いのかを知る」

=「バグを見つける」ことが目的になりがちです。

 

 

共感される方も多いのではないでしょうか。

「項目を早く消化する」が目的にもなりがちですよね。

 (むしろこっちの方が多数派?)

 

 

しかし、これでは木を見て森を見ず状態に陥ってしまいます。

 

 

なぜなら、最初に話した通り、

テストの目的は「バグを見つけること」ではなく、

「バグを見つけて、修正して、製品の品質を保証する」ことだからです。 

 

 

テスト設計〜テスト結果レビューの流れをざっくり整理すると、

 

こういう観点でテストをやるので、

この動作(要件)は保証します。

これだけのバグが見つかりました。修正します。

この観点でのこの動作(要件)は保証できました。

ちゃんと設計通りできてるね。オッケー。

 

みたいな感じです。

 

 

 

そう、「バグが見つかった」というのは、

「製品の品質を保証する」という目的に

到達するための通過点に過ぎないのです。

 

バグがあろうが無かろうが、

ゴールは変わりません。

 

テスト工程の全ては、

「製品の品質を保証する」ために存在するのです。

 

 

 

と、私は思います。 

 

「テスト実施ばかりで面白くない!」と嘆く同輩へ

 

「製品の品質を保証する」という目的は、

テスト設計・テスト実施・結果レビューの

どの工程でも頭の中で意識しておくべき

だと個人的に思います。

 

 

特に、テスト実施において

「テストばかりで面白く無い!」

嘆いている私のようなエンジニアの方は、

少し視野を広げてみてください。

 

木を見て森を見ず状態で、

テストを実施していませんか?

 

 

「製品の品質を保証する」ことを目的に

テスト実施をすれば、

 

・この観点でどういう品質が保証できるんだろう?

・この要件に対してこの観点で確認するのは妥当なのだろうか?

 

 

といった、ある意味

「テスト設計を疑う」視点を持つことができます。

そして、色んな考え方が養われてきます。

 

 

項目を消化するために、

正しい手順を守る・正しいエビデンスを取る・自動化/効率化を図る

ことに必死になっていてはいけません。

(もちろん大切ですが)

 

 

用意された項目をただやるだけでは、

当然面白く無いです。 

 

「テストばかりで面白く無い!」と嘆くエンジニアの方は、

今一度自分なりにテストの目的を考えて、視野を広げて、

テスト実施をしてみてはいかがでしょうか。

 

 

そうすることで、自分の考えを成長させ、

新たな提案ができるようになります。

 

実装やシステム設計への参画も

声が掛かるかもしれません。

 

 

そしてなにより、

製品の品質を保証することに

ひと役買うことができますね。

 

あなたはテスターではなく、エンジニアです。

 

存在感を示していきましょう!!!!

 

 

テストが大部分を占める組み込み開発で感じた、

一エンジニアの独り言でした。