テスターと品質保証
こちらはアンテクアドベントカレンダー2021の記事です
https://adventar.org/calendars/6534
はいはい木曜日ですね、皆様いかがお過ごしですか?
今日も技術の話を書こうかと思ったのですが、今、参画中のプロジェクトの若い子が
テスターのテストって必要なんですかね?
と、なかなかなことを言ってたので、テスターは大事だよ、テスターを敬い給えと言う話をしようと思います。
テストってなあに?
そもそもテストとはと言うところからはじめましょうか。
学校とかでテストと言えば日々の授業をちゃんと聞いていたかとか、教わったことを理解しているかを試すためにテスト用紙に書かれた問題をバリバリ解いたりしますよね。
では、ITの世界ではどういうことかというと、要求仕様通りに成果物(プログラムや、Webサイトとか)が作られているか、というのを確認する作業のことを言います。
例えばヤンキーがパシリに「スプライト買ってこい」って言ったのに、パシリがセブンアップを買って戻ってきたら「てめえそれっぽければ許されると思ったら大間違いだぞ!」ってなりますよね。そうならないためにパシリが買ってきたものは本当にスプライトかどうか、っていうのをチェックするのがテストであり、それをする人がテスターです。
テスターはIT世界の底辺職なのか
現役のIT業界の人でもまあまあ勘違いしているのは「テスターはプログラマーやPMやれるほどの実力がない卑しいロースキルエンジニアがやる、かんたんなおしごと」って言うことです。
確かにそういう一面がないことはないですし、実際、見習いエンジニアがまずやるお仕事というのはテスターっていうのはよくあることです。誰かが用意したテスト仕様書に従って、テスト仕様を満たしているのか実際に動かしてチェックする仕事だからです。
しかし考えてみてください、先程「誰かが用意したテスト仕様書」と書きましたが、その誰かとは誰なのか。
プログラマーでしょうか?
え、ワイ、もらった要求仕様にしたがってプログラム書いたし。プログラムに書いたようなことを改めて文字にするの嫌やねんけど
あらあら、断られちゃいました。じゃあ、PMですかね?
要求仕様からのテスト観点までなら書くけど、いちいち細かいテスト仕様まで書いてられるか。ワシャ忙しいんやぞ!
なんということでしょう、怒られてしまいました。
そこで出てくるのが、上級テスターです。この上級テスターというのはふわふわ雲を掴むような要求仕様書からでもテスト仕様書を生み出すという、魔法のようなスキルを持った専門職です。
ちなみに上級テスターがいないチームの場合はPMやリードエンジニアが代行します。しかし、抜けもれなく、あらゆる実行パターンを洗い出すというのは専門職でない人からしたら至難の業です。
そして、テスターは極めて行くと独自の嗅覚でプログラムの至らないところをたちどころに見つけ出してくれます。とてもすごいです。マジリスペクトです(語彙力
作った人が自らテストしてはいけない
ごくごく小さいプロジェクトの場合、テスター要員が準備できないことが往々にしてあります。
そんなときは、誰が最終的なテストをするのか? 当然わかりきっていることですがプロジェクトの最高責任者であるPM(プロジェクトマネージャー)です。つまり、PMはある程度テスターとしてのスキルが備わっていないとできないということです。
本当の本当にたった一人でやっているというプロジェクト以外では、実装をしたプログラマー本人がテストをするというのは絶対の絶対にご法度です。カンタンな話で、プログラマーが「コレで完成です!」って言って成果物を出してくるときは自身でできるテストはし終わってますし、それ以上の瑕疵や不具合は、かわいい我が子の欠点を「欠点も個性! 何が悪い!!」と開き直る親と同じようなもので、庇いはすれども自分から出してくることはないからです。ってかね、わからないんですよ、自分で書いたものの間違いというものは。
まとめ
まとまってるかどうかわかりませんが、これでテスターの偉大さがある程度わかったんじゃないかなって思います。
職業に貴賎なし! テスターにリスペクトを! ということで本稿のまとめとさせていただきます。
2021年のアドベントカレンダーでは最後の記事になりましたが、今後も気が向いたときになにか書くのでよろしくおねがいします。