QualityForwardはクラウドベースのテスト管理サービスです。Web APIを提供しています。そのWeb APIを使いやすくするため、Node.jsライブラリも開発中です。
今回はそのNode.jsライブラリを使って、一日の作業件数を集計してみます。
準備
まずはライブラリを読み込みます。APIキーは.envファイルに書き出しています。
import * as dotenv from 'dotenv';
dotenv.config();
import { QualityForward} from 'qualityforward-node';
必要な変数の準備
まず今日の作業分を集計するので、必要な変数と当てはまるテストケースを格納する変数を用意します。
(async () => {
const toDay = new Date;
let result = [];
// 後の処理もこの中に記述
})();
QualityForwardオブジェクトの初期化をします。
const client = new QualityForward(process.env.API_KEY);
テストフェーズの取得
最初にテストフェーズをすべて取得します。
const testPhases = await client.getTestPhases();
次にすべてのテストフェーズについて、テストケースを取得します。
for (const testPhase of testPhases) {
for (const testSuiteAssignment of testPhase.test_suite_assignments) {
const testCycles = await testSuiteAssignment.getTestCycles();
// : 次の処理はこの中に記述
}
}
テスト結果の取得
すべてのテストサイクルについて、テスト結果を取得します。テスト結果の中で本日作業分をフィルタリングします。
for (const testCycle of testCycles) {
const testResults = await testCycle.getTestResults();
const ary = testResults.filter(t => {
if (t.executed_at.getFullYear() === toDay.getFullYear() &&
t.executed_at.getMonth() === toDay.getMonth() &&
t.executed_at.getDate() === toDay.getDate()) {
return t;
}
});
Array.prototype.push.apply(result, ary);
}
テスト結果ごとにグルーピングする
TestResultが取得できたら、例えばテスト結果ごとにグルーピングしてみます。
const group = {};
for (let testResult of result) {
if (!group[testResult.result]) group[testResult.result] = 0;
group[testResult.result]++;
}
console.log(`本日の作業結果`);
for (let result in group) {
console.log(` ${result} : ${group[result]}件`);
}
そうすると以下のような出力が得られます。
$ npx ts-node test.ts
本日の作業結果
pass : 4件
fail : 1件
skip : 1件
cut : 1件
block : 1件
qa : 1件
作業件数を蓄積していくことで、品質の可視化にも繋がるでしょう。
まとめ
QualityForwardを使えばExcelなどで行っていた煩雑なテスト管理がクラウドベースでできるようになります。ライブラリを使うことで既存システムとの連携も用意です。ぜひお試しください!