UXディレクターやWebデザイナーにも知ってほしいQA基礎知識

私がもともとソフトウェアエンジニアで、開発やテスト行程には詳しいのですが、UXディレクターやWebデザイナーの方々から「QAについて知りたい」という声があったので、まとめてみました。

QAとは?

QAとは「Quality Assurance=品質保証」、つまり品質を保証することです。たまにSQAと言って、ソフトウェア品質保証ということもあります。

いったん、「QA」と「テスト」は基本同じ意味と思って頂いて良いです。つまり、リリース(一般公開)する前に、テスト環境にてテストして品質を担保する業務、それがQAです。

Q&A (Questions & Answers) と紛らわしいですが、全く違う意味です。

QAっていつやるの?

通常、「要件定義」→「設計」→「実装」→「QA & バグ修正」→「リリース」という順番で実施します。

主に、
・「要件定義」はビジネスチームが実施するお仕事。
・「設計」「実装」「バグ修正」「リリース」は開発チームが実施するお仕事。
・「QA」は開発チームまたはQAチームが実施するお仕事。
となります。

例えば、ECサイトで「Google Payを決済方法に追加したい」という要件があったとします。

要件定義 (=ビジネス要件)
・「Google Payを決済方法に追加したい」の詳細内容やビジネス背景、対応時期、それによって想定される売上増の金額などを、文書に記載します。

設計1:基本設計
・支払方法に「Google Pay」の選択肢を追加
・注文確認画面に「Google Pay」表示追加
・注文完了前に「Google Pay」に画面遷移
・注文履歴に「Google Pay」表示追加
といった内容を設計書に書いて、どこに影響があるのかを記載したり、UI (ユーザーインターフェース、ここではEC画面デザイン) を作ったりします。

設計2:詳細設計
・基本設計をさらに深堀りし、エラーが出るパターン、特殊な組み合わせ、Google PayのAPIの仕様を読んでみて、実際できるか確認して、設計書に追記したり、追加でUIを作成したりします。基本設計で想定していたことができないことが発覚して、設計書やUIを修正することもあります。

実装
・開発者が、設計書やUIに従って、実際のソースコードを記述します。

QA&バグ修正
・テスト実行者がテストを実施してバグを洗い出し、見つかったバグを開発者が修正します。

リリース
・開発者が、ユーザー(ECサイトならお客様)に実際に機能が使えるようにサイトを更新します。

QA(テスト)ってどんな種類があるの?

いろいろな種類があります。例えば:
・単体テスト
・結合テスト
・UAT
・PET
・リグレッションテスト
・Design QA
・リリース後テスト

建築に使うかは知らないのですが、あえて建築に例えると、家を「子供部屋」と「2つ目のトイレ」を増築する場合、

・単体テスト:「子供部屋」の中の各機能がちゃんと要件通り(=設計通り)になっていること、「2つ目のトイレ」の中の各機能がちゃんと要件通り(=設計通り)になっていることを確認するテスト。電気がつくか、水が流れるか etc

・結合テスト:「子供部屋」と「2つ目のトイレ」と、そこにつながる「リビング」とつながっている部分(インターフェース)が、ちゃんと要件通り(=設計通り)になっていることを確認するテスト。ドアがちゃんと開くか、トイレの下水が台所の蛇口に流れてこないかetc

・UAT (User Acceptance Test、受け入れテスト):実際にユーザーとして住んでみて、一連の動作を試した時に要件通りになっているか、不便な点がないかを確認するテスト。まず「リビング」を経由して「子供部屋」に入って上着をハンガーにかけて椅子に座り、いったん「リビング」を経由して「2つ目のトイレ」で用を足し、再び「リビング」を経由して「子供部屋」でパジャマに着替えて寝る。この時、あえて「2つ目のトイレ」ではトイレットペーパーがないので探すことにする、とか、ママがトイレに入っているので出てくるまで待つ、とか。← こうすると、例えば、ママがトイレの内鍵をかけたのに、外からドアが開いちゃう、というバグが見つかったりする。

・PET (Performance Evaluation Test、性能テスト):「子供部屋」で誕生日パーティーをやるから20人入っても大丈夫だよね? Maxまで入れてみよう、というテスト。Webであれば、1000人が同時にアクセスしたり、10万件の製品一覧を表示してみたりしてもちゃんと動作するよね? 異常にブラウザが遅くなったり、止まったりしないよね? というテスト。

・リグレッションテスト:今回、いじっていない部分もちゃんと動作するよね? というテスト。リグレッション=退化。「2つ目のトイレ」を作った際に、配管を間違えて、「2つ目のトイレ」は水が流れるけど、「1つ目のトイレ」の水が流れなくなってしまった、などということがないようにテストする。

・Design QA:デザインが意図した通りになっているかを確認するテスト。壁紙や床が意図した通りのデザインになっているか、など。

・リリース後テスト:リリース前には確認できないことを確認するテスト。WebならAkamai経由のアクセス確認や、テスト環境を持っていない外部APIとの連携など。

おわりに

QAについて、UXディレクターやWebデザイナーの方も少しイメージが沸いたでしょうか? 質問などあれば、コメント欄にてお知らせ下さい。


この記事が気に入ったらサポートをしてみませんか?