ソフトウェアの品質管理とは
ソフトウェア品質管理というのは、プロジェクトを計画通りに成功させるために、必要な機能を実現させる工程や予算の管理を行うことを指します。管理を怠り問題が発生した場合、ソフトウェアテストなどのテスト工程を止めてしまい、プロジェクトに関わるエンジニアの作業を止めてしまう可能性があります。また、システムがリリースされてから問題が発生した場合、金銭的な損失だけでなく企業としての信頼にも大きな損害をもたらす恐れがあります。これらを未然に防ぐために、ソフトウェア品質管理が重要視されます。
品質管理の定義
日本国内における品質の考え方は、お客様の要求に応えて提供すべき価値を実現しているものと認識されています。
何を品質の評価基準とするのかにも左右されますが、ユーザーが満足できるサービスが提供されているならば、お客様を第一に考えたソフトウェアとして評価されることでしょう。そのため、ソフトウェアにおける品質の基準は、ユーザーの評価によって変化するということがポイントになります。
品質の分類
ソフトウェアの品質管理を考える上で、ユーザーを満足させることができればソフトウェア品質管理は成功し、ユーザーを不満足にさせてしまったのであれば、そのソフトウェア品質管理には課題があるといえます。この課題を見極めるには、品質が性質ごとに大きく3つに分類されるという考えに基づいています。
・当たり前品質
当たり前品質とは、備わっていることが当たり前とであり、不足していると不満に感じる品質属性のことを指します。確保されていることが大前提であり、ソフトウェアにとっては基本性能や安全性などが例としてあげられます。
・一元的品質
一元的品質とは、備わっていると満足し、不足していると不満をもたらす品質属性です。これは製品のスペックにあらわされることが多く、CPUの処理速度やバッテリー持続時間などの個体差のある機能が代表例としてあげられます。
・魅力的品質
魅力的品質とは、備わっていると満足感を与えるものの、不足していても不満にはならず、仕方がないと割り切ることができる品質属性です。具体例としてはデザイン性や高級感など、他製品と差別化し、秀でた機能対し評価されます。
これら3つの品質属性の内、評価対象がどこに属しているか把握することで、ユーザーの評価を把握し、課題を明確にすることができます。商品やサービスにより品質の基準が異なるので、どの属性bに分類されるのか把握することで、品質管理の基準が変わることでしょう。
ソフトウェアの品質管理をする際のポイント
ソフトウェア品質管理の重要なポイントである、マネジメント工程についてみてみましょう。
品質マネジメントの原則に従う
品質マネジメントはISO9001およびISO14001により、確立されました。 原則となるルールを守ることで、より効果が出やすくなります。ここからは、品質マネジメントの7原則について解説いたします。
原則1.顧客重視
顧客とは、金銭をやり取りする相手だけではなく製品やサービスに係る人を指します。 顧客中心という考え方ではなく、顧客もマネジメントシステムの一環として取り組み、顧客の要求や機体に応えるよう活動することを指します。
原則2.リーダーシップ
将来に対する明確なビジョンを描き、言語化・成文化することで組織内に周知することで社風として確立し、中小企業を依存型から自立型に導きます。
原則3.チームメンバーの積極的参加
リーダーが掲げた目標を達成するために従業員全員が一丸となり、参加することです。 その際、従業員それぞれが目標達成に向け何ができるか、常に考えておく必要があります。
原則4.プロセス重視
すべての作業が必要なプロセスに基づいて行われているのか、作業工程に無駄がないかを確認し、見直すことを指します。各プロセスが一連の活動として実施されている状態のことを指します。
原則5.リスクマネジメント
問題点を解決するだけではなく、改善する点がない場合でもアップデートする点がないか検討し、マネジメントの最適化を考え続ける活動のことです。
原則6.客観的事実に基づくデータ管理
客観的な事実であるデータや記録に基づいて、具体的で明確な目標を立てるということです。その為、やみくもに記録を残すのではなく、何らかの活用できる形としてデータや記録をとることが必要となります。
原則7.全員で管理
組織に関わる供給者や利害関係者は、対等かつ平等であるという意識の基、協力関係を築き気持ちのよい関係で仕事し、価値実現を目指す必要があります。
品質管理の工程を明確にする
品質管理をする上で、何を基準とした工程なのか明確にする必要があります。ソフトウェアの場合には、指標となる実際の成果物はサマリーレポートなどの報告書になります。そのため、収集したデータの基準を統一する必要があります。
その後に指標となるデータを集めるのです。集められたデータを見える形に変化させることで、工程を実施する手助けになります。データの作成は主にグラフや散布図などを使って行われています。プロジェクト状況を可視化することは、適切なマネジメントを行うのに必要とされます。
最後に組織体制を整えることが必要になります。データの変化を見つけることができたなら、体制図やバグが起きている開発チームの残業状況などを再確認し、発生原因を深く掘り下げます。問題の因果関係を確認し、組織体制を変化させることが必要です。
ソフトウェアの品質管理をするには
ソフトウェア品質管理を担当業務とするには、資格を取得することと、特定の職種を選択することが必要になります。では、どのような資格や職種があるのか見てみましょう。
ソフトウェア品質管理に関わる資格
ソフトウェア品質管理に関わるために、まずはソフトウェアテストに関する資格を取得することで、スキルを証明することができます。
・JSTQB認定テスト技術者資格
ISTQBの加盟国として、日本国内でISTQBに沿った技術者資格認証を行う試験です。財団法人日本科学技術連盟によって実施されています。日本だけではなく、国際的にテスト技術者として認証されている資格です。
・ISTQB認定テスト技術者資格
ソフトウェアテストに関する国際的な資格認証を行う非営利団体が認定している資格です。取得することにより、品質管理のスキルがあることが証明されます。
・ソフトウェア品質技術者資格(JCSQE)
ソフトウェアテストやレビューだけでなく、ソフトウェア品質の定義や概念などのトピックを網羅している資格です。開発担当者や保守運用技術者、経営者も対象としています。
・IT検証技術者認定試験(IVEC)
一般社団法人IT検証産業協会が認定するテストエンジニアの資格で、実務能力をはかるための問題が出題される試験です。初心者から上級者まで7段階のレベルが設けられています。
上記の資格や試験は、テストエンジニアとして絶対に必要というわけではありませんが、ソフトウェア品質管理ができるスキルの証明として用いることができます。
品質管理に携わる職種
ソフトウェア品質管理に携わる職種として、以下の3つがあげられます。
・プロジェクトマネージャー
プロジェクトマネージャーは、プロジェクト全体が予定通りに、予算内で開発できているのかを管理する仕事です。ソフトウェアの品質は、上流工程ですでに決定しているので、目標としている品質に向かって計画どおり進んでいるのかを管理・マネジメントいたします。
・プロジェクトリーダー
プロジェクトリーダーは、発注者の要求が変わってもプロジェクトの中に組み込む必要があります。自らも技術者として、テスト・検証をテストエンジニアとともに繰り返すことや、チームが一丸となって開発を行うための雰囲気作りも行う存在です。
・テストエンジニア
主にソフトウェアのテスト・検証をするエンジニアです。製品に不具合・デグレ・バグがなく、問題がないか確認するため、「第三者」として開発者が行うテストとは異なる視点から、品質管理を行います。
どの職種も開発における上流工程に関わる機会があることが特徴として挙げられます。IT技術の発展とともに複雑化するソフトウェア開発において、開発者と同様に上流工程から参画し、より的確に品質を担保・向上させる品質管理が市場に求められており、今後も需要が拡大し続けることでしょう。
参照元:https://www.softwarejobs.jp/media/000026