直交表を上手に使って効率化を目指す!

Quesをご覧の皆様、こんにちは。

HumanCrestの津久井です。

前回、私の役割は主に、対象となる組込製品全体のテストスコープについて考えることとお話しましたが、
今回も現場で学んだことや、実践していることをベースにお話させていただきます。

もしよろしければあわせて前回の記事もご覧ください。
リスクベース、経験ベースでテストスコープを削る


■はじめに
私が担当している組込製品は、2〜4ヶ月くらいでテストサイクルをまわしています。

【テスト期間3ヶ月の主なテスト概要】
・1ヶ月目 仕様書に基づいた基本動作を中心にテストを実施
・2ヶ月目 基本動作を軸とした組み合わせ確認や高負荷試験、また、同時進行で検出したバグの改修確認を実施
・3ヶ月目 改修された箇所が多い機能(バグが多かった機能)の深堀りと、ユーザーを意識した操作でのテスト

「1ヶ月目」で特に問題が無ければ、組み合わせ確認を多めに実施しますが、なかなかそう上手くはいきません。

最初の2ヶ月間で基本的なテストと、組み合わせテストを行った結果、
バグの件数が多い時には、3ヶ月目を迎えても多くのバグ改修確認が存在する事があります。
そのような状態になった場合、回帰テストに当てられる3ヶ月目の工数は少なくなります。

回帰テストとしてもう一度全体的に網をかけたいが、
1ヶ月目、2ヶ月目で実施してきたテストを再度全数実施するだけの工数は無い。
そんな時に使用しているのが直交表です。

——————— 直交表って? ——————
直交表とは、どの実験Noを取っても、同じ組み合わせが同じ数だけある表のことであり、
すさまじい数の組み合わせ確認を効率的に行える手法です。
また、特に私が良く使用する直交表は「L18直交表」です。

「直交表」と打って頂ければ、ネット上にたくさんの説明がありますので、
ここでは説明を省略して実際の表をご覧いただき、組み合わせのイメージが湧けばと思います。

まず、以下の表のような組み合わせがあります(例として以下の内容はL18直交表)。

L18直交表

上記の組み合わせに対し、因子(A~H)と水準(1~3)それぞれに機能とパラメータなどを割り振ることで、
自動で組み合わせが決まるというものです。

“直行表”ではなく”直交表”ですので、お間違いなく。
——————————————————–

■直交表を使って全体的に網をかける
終盤戦では全数テストを行うことが目的ではなく、全体的に広くテストを行うことが目的です。
そのため、効率的に幅広く多くの機能をテストするには直交表はなかなか便利なツールだと思います。

※工数に少し余裕があればL36直交表を使用したりもしますが、実施するのにかなり根気が必要です。

簡単な流れですが、まずは直交表にて基本動作テストで実施していた機能を因子に割り振ります。
各因子の水準には機能ごとのパラメータを割り振ります。
※パラメータにはあらかじめ優先度をつけておき、優先度の高いものを割り振ります。

直交表を実施していく中で、万が一不具合が多く検出された場合は、不具合の内容からポイントを絞り、
過去に実施した基本動作テストの中から、不具合に深く関連しそうな部分のみを抜き出して実施します。

直近で出ている不具合内容や、修正箇所の多い機能などを中心に実施したりもします。

このように、直交表を使用することで、手広く網をかけ、深掘りすべきポイントを見つけだし、
見つけだしたポイントに対しては厚めにテストを行うことでかなり効率的にテストを進めることが出来ます。

■直交表を使うということは
大前提となることですが、直交表を使用したテストを実施する前に、
計画していた基本機能のテストケースが完了しているということは非常に重要です。

計画していた基本機能テストが完了した後に、全体的に回帰テストを実施したい場合に、
直交表を使用することで全体的に網羅することが可能になり、
限られた工数の中でも実施出来る有効なツールであるといえます。

最終的には工数の削減につながり、何よりも”安心”を得ることができます。
直交表は万能ではありません。
直交表だけを実施すれば大丈夫というわけではないですが、直交表の性質を理解し、
目的に合わせて上手に活用することが出来れば、非常に頼もしいツールになるのではないでしょうか。

このエントリーをはてなブックマークに追加