世に出す前にふるい分ける方法 — テスト、QA、ステージング
新しい機能を頼むと、開発チームからこんな言葉が返ってくることがあります。「ステージングに上げたので確認してください」「QA が終わったらデプロイします」「まずテストを通さないといけません」。作ったものをすぐユーザーに出さず、その間に何かを通す段階がある、という意味です。
前回の記事で、問題が起きるとホットフィックスとロールバックで対応すると話しました。ところが一番よいのは、そもそも問題をユーザーが出会う前にふるい分けることです。今回の記事では、そのふるいであるテスト、QA、ステージングを、コードなしで解きほぐしていきます。
テストは、コードが意図どおり動くかを自動で確かめます #
テストは、作ったコードが意図したとおりに動くかを前もって確かめる作業です。人が毎回手で押してみるのもテストですが、開発で言うテストはたいてい自動で回る検査を指します。
たとえば「1,000 円のものを二つ入れると合計が 2,000 円になる」のように、入力と期待する結果を前もって書いておくのです。すると、コードを直すたびにこれらの検査が一度にまとめて自動で回り、どこかずれた箇所がないかを素早く知らせてくれます。
自動テストがとくに光る瞬間は、既存の機能が壊れていないかを確かめるときです。新しい機能を足していくと、問題のなかった別のところがついでに壊れることがよくあるのですが、前もって書いておいた検査が見張っていて、その変化を即座につかまえて警告を鳴らします。人がすべての画面を毎回押し直すことはできないので、この自動の検査が頼もしい安全網になります。
QA は、ユーザーの立場で品質を点検します #
テストがコード単位の検査なら、QA は一歩下がって、完成した機能をユーザーの立場で点検する作業です。品質保証を意味する言葉で、この仕事を専門に担う職種を QA と呼ぶこともあります。
QA は、決められたとおりに動くかだけでなく、ユーザーが予想外の動きをしたときにどうなるかを執拗に追います。入力欄を空のまま押すとどうなるか、決済の途中で戻るを押すと何が起きるか、遅いインターネットで画面がどう見えるか、といったことです。作った人は正常な道筋をたどりがちですが、QA はわざとずれた道に入って問題を先にあぶり出します。「うまく作ること」と同じくらい「間違ったものを見つけること」が大切だから存在する段階です。
ステージングは、本番とそっくりに整えた練習の舞台です #
ここで一つ疑問が生まれます。これらの点検は、いったいどこでするのでしょうか。実際のユーザーが使う環境で試したら、事故がそのままユーザーに行きます。そこで、本番環境とそっくりに整えた別の空間を置くのですが、これがステージングです。
ステージングは、実際のサービスとほぼ同じ環境ですが、ユーザーは入ってこない練習の舞台です。新しく作った機能をまずここに上げて、本物と同じ条件で最後に点検します。企画者やデザイナーが成果物を先に確認するのも、たいていこのステージングで行われます。ここで問題がないと確認できてはじめて、ユーザーが使う本番環境へ出します。「ステージングで確認してください」という言葉は、ユーザーに出る前に、この練習の舞台で成果物を先に見てほしいという意味です。
そろうと、ユーザーの前での事故が減ります #
三つの段階は、ユーザーに届く前に順に置かれたふるいです。コード単位のずれは自動テストがふるい、ユーザー目線の穴は QA があぶり出し、そのすべての点検が本番とそっくりのステージングで行われます。このふるいをよく整えるほど、ユーザーがバグに出会うことが減り、ホットフィックスやロールバックで急いで収拾することも減ります。前もってふるうのにかかる時間が、結局あとの事故を防ぐのです。
なぜ非開発者が知っておくと仕事が楽になるのか #
- 「確認してください」がどの段階か分かります。 ステージングで見てほしいという依頼がどの段階なのか分かれば、何をどんな目で点検すべきかがはっきりします。
- 日程に点検の時間を入れられます。 テストと QA にかかる時間を日程に一緒に入れれば、土壇場で追われて検証を飛ばすことを減らせます。
- バグをうまく報告できます。 どの環境で何をどうしていて問題が出たかを書けば、QA と開発チームが同じ状況を再現して原因を早く見つけます。
まとめ #
今日は、作ったものをユーザーに出す前にふるい分ける三つの段階を見てきました。テストはコードが意図どおり動くかを自動で確かめ、QA はユーザーの立場で品質を点検し、ステージングはその点検が行われる本番そっくりの練習の舞台です。このふるいが堅いほど、ユーザーの前で起きる事故が減ります。
問題が起きたあとの対応が気になればバグ、ホットフィックス、ロールバックを、なぜ機能一つにも点検まで時間がかかるのか気になればなぜ簡単に見える機能に時間がかかるのかを一緒に読んでみることをおすすめします。