「品質保証DX」の実現に向けて の記事一覧


生産性の向上や多様な働き方への対応など、ビジネスの様々な経営課題を解決するにあたっては、ITの活用が有力な施策です。一方、ソフトウェア品質の向上には、品質保証とテクノロジーのギャップを解消すること、つまり品質保証のIT化により現場を変革し、ビジネスの創出につなげる、言うなれば「品質保証DX」が求められています。品質保証DXの実現にあたって必要な知識と施策をシリーズで解説します。
2024.4.23

ソフトウェア品質問題の流出を防ぐためには、”最後の砦”である品質保証の業務品質向上が欠かせません。しかしながら、昨今のQA現場には人的・時間的な多くの制約が存在し、その実現は難しくなっています。
QA現場の業務品質や生産性を向上させるうえで、有力な解決策となるのが「品質保証DX」です。QA現場のプロセスにDX(デジタルトランスフォーメーション)の概念を適用するアプローチであり、品質の早期安定化による飛躍的なQCD向上が期待されます。
品質保証DXには3点ありますが、これまでの連載では「品質計画」「開発・テスト環境」の2点に焦点を当ててきました。第5回となる本記事では、3点目の「テスト実行」における課題や、解決への指針についてお伝えします。
第1回でも述べた通り、人材や工数といったリソースの不足は、多くのQA現場において避けることが難しくなっています。これらは当然ながら根本解決することが望ましい問題ではありますが、本連載第2回で述べたような計画フェーズで対処すべきものであり、テスト実行に係る施策からは外れる議論といえます。
そのため、ここではリソース不足に置かれた前提で、QA現場が解決すべき課題について論じます。テスト実行における主な課題は、「効率性」「信頼性」「実現性」の3つの観点に分けることが可能です。これらの課題について、それぞれ解説します。
QA人材の不足やテスト工数の圧迫に陥るQA現場において、特に重要となるのがテスト実行の効率性に関する課題です。すなわち、テストに関するプロセスが最適化されず、工数や端末といったリソースが効率的に活用されない課題を指します。
具体例として、次のようなケースが挙げられます。
テスト実行には、多くのステップをともなうUI操作、正確性が求められる結果判定など、手動では効率性が著しく低下するタスクが少なくありません。要件の複雑化・多様化などによりテストケース数が増加しつつある昨今では、テスト自動化が最優先事項といえます。テスト自動化は、過去のデータ資産を活用するための施策としても有効です。
また、第3回でも論じた環境の競合も、テスト実行の効率性を低下させる大きな要素といえます。端末やサーバーといったハードウェアの拡充が難しい場合、既存の物的リソースをいかにして有効活用するかが重要となります。
ソフトウェア品質問題の流出を招く大きなリスクをともなうのが、テスト実行の信頼性に関する課題です。すなわち、テスト実行の結果やそれまでのプロセスに対する信頼性が乏しく、最終的なテスト品質が低下してしまう課題を指します。
具体例として、次のようなケースが挙げられます。
テストケース数の増加や回帰テストの高頻度化などにより、テスト実行の業務負担は増大しているのが現状です。手動プロセスを多く含めば含むほど、操作や判断における人的ミスが生じやすくなることから、やはりテスト自動化を軸にした施策が求められます。
テストの網羅性・信頼性にも密接に関わっているのが、実現性に関する課題です。すなわち、技術的なハードルやリソース不足などにより、本来実施すべきテストが完全な条件で実施できない、あるいは先送りせざるを得ないといった課題を指します。
具体例として、次のようなケースが挙げられます。
特に、機能要件以外の性能などを検証する「非機能テスト」は、テスト実行のハードルが高い要素です。手順の再現や環境のセットアップはもとより判定基準の設定も難しく、機能テスト実施後の”努力目標”のように扱われる側面が否めません。また、環境への懸念がある負荷テストなどは、技術的に実施できたとしても後回しにされることが通例です。
品質保証DXによりテスト実行の課題を解決するにあたっては、適切なソリューションの選定が非常に肝要です。ここでは、テスト実行のソリューションを選定する際の主な4つの要件について解説します。
テスト実行だけの自動化では、実行前の設計や環境構築、実行後の結果判定や分析などは手作業となり、飛躍的な効率性の向上は期待できません。したがって、テスト実行の前後で生じるプロセスを含めた、包括的な自動化が可能なソリューションが理想です。
テスト設計を自動化できれば、膨大なテストケースを自動生成できるばかりでなく、CI/CDツールとの連携によるテストプロセス全体の機械化が可能となり、テスターの大幅な負担軽減やテストのアジリティ向上につながります。また、結果判定を自動化することで、テスターの知見に委ねられ曖昧になりがちなソフトウェアの評価基準が明確化されます。これにより、目視では見逃しやすい微細な結果の差異も検出でき、テスト結果の信頼性を向上させることが可能です。
別業務との兼ね合いにより熟練したテスターが確保できない、といったケースが往々にしてあります。品質保証チームの状況によらず信頼性の高いテストを行うためには、経験・スキルに依存しない自動化が求められます。
たとえば、過去のテスト結果をもとに実行するテストケースを自動選定できれば、回帰テストの影響範囲などを含めた実行判断の自動化が可能です。これにより、経験の少ないテスターでも、限られた期間の中で精度の高いテスト実行が可能となります。
機能テストが優先されやすい風潮とは裏腹に、非機能テストの不足・見送りに起因する品質問題が少なくありません。とはいえ、非機能テストをリリース直前に実施しても、問題判明時のリカバリーは難しくなります。よって、非機能テストは可及的早期に実施することが望ましく、機能テストと並行実施し、可能な限り非機能面でのテスト要件を検証できるソリューションが理想です。
ただし、負荷テストやセキュリティテストなどは種類ごとに評価観点が大きく異なり、単一ソリューションでの自動化は困難です。そのため、機能テスト向けのソリューションに、各非機能テストに対応したソリューションを併用することが現実的です。また第3回でも述べたように、各々をCI/CDパイプラインに組み込み、連携できるかも重要となります。
第4回で紹介した「Torque」のように、環境の構築や運用を最適化するソリューションも不可欠です。環境のセットアップを簡素化・効率化することで、開発・テスト環境の柔軟な運用が可能となり、テスト実行に際しての不整合や遅延を抑制することができます。
開発・テスト環境の要点に関して再確認する際には、次の記事をご一読ください。
今回は、テスト実行における課題や、解決につながるソリューションを選定するための要件をご紹介しました。
■第5回のポイント
テスト実行の最適化を実現するためには、機能テスト・非機能テストそれぞれに対応したソリューションを把握することが肝要です。第6回となる次回は、テスト実行のソリューションである「Eggplant」についてご紹介します。
Last update : 2022/05/23|4 Articles
Last update : 2024/01/23|7 Articles
Last update : 2023/04/05|5 Articles
Last update : 2022/05/23|2 Articles
Last update : 2022/05/23|5 Articles
Last update : 2022/12/20|3 Articles
Last update : 2024/08/08|4 Articles
Last update : 2024/12/11|4 Articles
Last update : 2022/05/23|1 Articles
Last update : 2022/05/23|1 Articles
Last update : 2022/06/08|4 Articles
Last update : 2024/10/25|5 Articles
Last update : 2022/09/29|3 Articles
Last update : 2023/09/12|4 Articles
Last update : 2022/05/23|6 Articles