こんにちは。i3DESIGNでテストエンジニアをしている本です。
QA(Quality Assurance)とQC(Quality Control)は、日本語で品質保証と品質管理と表記されます。本記事では、一般的に定義されている品質およびQAとQCについて簡単にまとめた後に、弊社で実践しているQAとQCを紹介させていただきます。
目次
目次
・一般的に定義される品質及びQAとQC
・弊社の考えるQAとQC
・まとめ
一般的に定義される品質およびQAとQC
品質とは
品質の定義は様々ですが、ソフトウェア開発者のワインバーグ氏は
品質とは誰かにとっての価値である
出典 : ワインバーグのシステム思考法 ソフトウェア文化を創る〈1〉
と定義しています。この誰かとは、消費者と提供者による両者の価値のことを指します。
QAとは
提供するモノ、サービスがお客様に渡る際、渡った後に使用上問題が無いかを保証する
出典 : QA(品質保証)の意味とQC(品質管理)の違いとは何なのか。
という意味です。また、石川 馨氏は
品質保証は品質管理の真髄。
出典 : 日本的品質管理―TQCとは何か
と記しているように、QCで確認していく品質と価値を特定していき、判断するための基準を決めていきます。したがって、QAには提供するサービスの深い知識が必要といわれています。
QCとは
提供するモノ、サービスの生産、製造、運営過程で問題がないかを管理する
出典 : QA(品質保証)の意味とQC(品質管理)の違いとは何なのか。
という意味です。QCでは、統計的手法やテスト技法などを用いて管理し、各工程や運営上の問題を改善していきます。
各工程とは具体的に以下のことです。
加工や組立などの生産工程だけでなく、製品やサービスの企画、設計、原材料や必要な設備の確保、製造や活動の標準化、製造やサービスの提供、検査、改善などのさまざまな活動が含まれます。
出典 : 品質管理検定(QC検定)4級の手引き
運営とは具体的に以下のことです。
活動の運営を自主的に進めていくことを基本に、職場の改善だけでなく、勉強することによる能力の向上や職場の活性化、さらには仕事のやりがいなどを目指した QC サークル活動*22と呼ばれる小集団改善活動が有名です。
出典 : 品質管理検定(QC検定)4級の手引き
弊社の考えるQAとQC
弊社では、テストをソフトウェアの品質を守る最後の砦という認識で仕事をしています。しかし、テストコードをなおざりにして工程の手戻りが多発したり、テストケースを作らずに実施する探索的テストではテストエンジニアのスキルに高く依存するため、網羅性を保証することができません。したがって、弊社とお客様で決めた品質を満たせず、品質を守れなくなります。そこで必要になるのがQAとQCの継続的な改善活動です。
なお、「単体テスト」以外の項目は結合テスト以降の話題となっております。
単体テスト
弊社では、コーディング規約とCI/CDを重視した開発スタイルをとっています。CI/CDツールとしてJenkinsやBitriseなどを採用してリグレッションを未然に察知する取り組みを行っています。
弊社で実践している単体テストについての詳しい記事を以下に掲載しましたので、よろしければご覧ください。
『<開発プロセス公開・第一弾>アプリ品質、開発の作業効率、同時にアップ! アプリテスト自動化の仕組みを公開!』
『<開発プロセス公開・第二弾>品質アップのための単体テストの導入』
テストはソフトウェアの品質を守る最後の砦
テストに対して品質を守る最後の砦という認識で仕事をしているからこそ、テストは資産であり管理、改善、向上させ続けなければなりません。弊社ではテストをするときに、テスト計画書、テスト設計書、テストケースを作成して工程を管理しています。そして、新規案件または改修案件の区切りで、振り返りやQA活動を通じて必要だと感じた気付きを共有して、テストを活きた品質の砦足るものに改善、向上させていきます。これは、提供するサービスの深い知識を習得しているからこそ実現できています。テストドキュメントを作成する際に、プロジェクトマネージャーとプロジェクトリーダーで連携してサービス独自の専門用語の理解を深めます。また、抽象的な理解から具体的な理解にするために仕様でわからないことがあれば必ず相談しています。最後の砦になるには、サービスの理解が必須だからです。
テストドキュメントの記載方法
ソフトウェアテストの国際規格として存在するIEEE829やISO/IEC/IEEE 29119を参考にして、弊社内でテストドキュメントのフレームを用意しています。それに則り、QA活動を通じて本当に必要な項目を話し合って記載しています。
テスト計画書は、プロジェクト計画書とお客様からいただいた仕様書を元に、テストフェーズの指針やその進め方をまとめる視点で記載しています。
テスト設計書は、テスト計画書で定めたQAを検証するために、テスト実施方法や内容を明確にする視点で記載しています。
テストケースは、テスターがテストケースのみですべてのテストが実施できるように、テスターの視点で記載しています。その特長として、弊社のテストケースの実施結果には多くのテストケースに見られる未実装を意味するN/Aを記載していません。テスターにとってN/Aはバグにしか見えず、開発フェーズとテストフェーズを並行して進めることを許容していることになるからです。仮にN/Aをテスターが判定できるときとは、開発フェーズが終了していないにも関わらずテストフェーズへ移行してしまい、その進捗具合をプロジェクトマネージャーから聞いたときです。その状況はウォーターフォール開発やアジャイル開発では好ましくない状況です。上記は、QA活動を通じて本当に必要な項目を話し合って記載している一例といえます。
QAはカスタマーサクセスの一部
弊社では、QAをカスタマーサクセスの一部としています。したがって、QAを実践しているテストエンジニアはビジネス、デザイン、テクノロジーへの理解が必要だと考えています。特にQAは開発(テクノロジー)と密接に関係していることから、テストエンジニアと開発エンジニアは同じユニットに所属しています。弊社の『全社員エンジニア対象の社内勉強会(プロコン)についてまとめました!』の記事にもあるように、社内勉強会を定期的に開催している中でテストエンジニアも参加してプログラミングの勉強をしています。カスタマーサクセスを叶えるために色々な領域について日々学習しています。
案件のグロース支援のため新たに追加したサービスをテストするときに、追加したサービス以外で存在している弊社の瑕疵を見つけたときは必ずプロジェクトマネージャーへ相談してから開発エンジニアへ修正依頼をしています。お客様によって弊社の瑕疵が発見されるまで修正しないようでは本当のカスタマーサクセスとはいえません。瑕疵はお客様からの信頼を失う大きな要因であることを念頭に置いているからです。瑕疵には率先して誠意を込めてすべて対応することが、ビジネスパートナーとして信頼していただく最善の方法だと考えています。
お客様が起票されたバグチケットの管理方法
バグチケットとは関係者に、どんなバグが発生しているのか情報を提供するレポートのことです。バグ登録から修正までのライフサイクルの管理をします。23. バグ票の書き方 その①より
カスタマーサクセスとお客様をつなぐ課題管理用のツールとして、Backlogを採用しています。コミュニケーションラインを一本化しプロジェクトの透明性を高めてお客様と共同で進めることで、案件の成功率やカスタマーサクセスの向上を図っています。弊社の特長として、お客様の受入テストに対して弊社も内容をタイムリーに見ることができ、迅速なバグ修正が実現できる状況にしています。
受入テスト
受入テストは要件通りになっているかのお客様の確認となります。結合テスト、システムテスト完了後に実施していただいております。
まとめ
・品質とは、誰かにとっての価値であるということ
・QAとは、提供するサービスがお客様へ渡った後に問題が発生しないことを保証すること
・QCとは、提供するサービスの各フェーズの過程で問題がないかを管理すること
・テストエンジニアはソフトウェアの品質を守る最後の砦という認識で仕事をしており、お客様がすぐにバグだと判断できてしまう箇所は原則、修正していること
・テストをするときにテスト計画書、テスト設計書、テストケースを作成して工程を管理していること
・IEEE829やISO/IEC/IEEE 29119に書かれたソフトウェアテストの規格を参考に、QA活動を通じて本当に必要な項目を話し合って記載していること
・カスタマーサクセスを叶えるためにテストエンジニアであっても社内勉強会でプログラミングの勉強をすることで、開発エンジニア側の視点に立ったバグを指摘して脆弱性を未然に防いでからお客様へ提供できるようにしていること
・お客様によって発見されていない弊社の瑕疵であっても、率先して修正対応することでビジネスパートナーとして信頼していただけるようにしていること
・お客様の受入テストに対して弊社も内容をタイムリーに見ることができ、迅速なバグ修正が実現できる状況にしていること
・受入テストの工程はお客様の確認のためにあり、品質が十分になったら開始していただいていること
以上で一般的なQAとQCと、弊社のQAとQCの取り組みについてご説明させていただきました。弊社の品質のこだわりについて伝われば幸いです。
▶︎in-Pocket編集部より
アイスリーデザインで実施しているウェブアプリ開発におけるサービスの特徴、手法や関連事例などについては、こちらをご覧ください。