ngtの記法を応用した不具合分析からのテストの補強jasst.jp/symposium/jasst18tokyo/pdf/c4-2.pdf図...

35
会社名・製品名・サービス名は、各社の登録商標または商標です。 Copyright © 2018 VeriServe Corporation All Rights Reserved. Confidential JaSST’18 Tokyo C4)論文セッション 株式会社ベリサーブ 吉川 2018年3月7日 NGTの記法を応用した不具合分析からのテストの補強

Upload: phamthuy

Post on 13-May-2019

215 views

Category:

Documents


0 download

TRANSCRIPT

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

JaSST’18 Tokyo C4)論文セッション

株式会社ベリサーブ

吉川 努

2018年3月7日

NGTの記法を応用した不具合分析からのテストの補強

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

背景

問題と課題

取り組み内容

NGTとは

なぜNGTを活用しようと思ったのか

NGTの応用方法

適用事例

結果

発見した不具合

まとめ

本日の発表内容

1

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

背景

テスト実行者によって不具合が発見される場合がある

2

思わぬ条件が追加されている

操作を加える

おかしな振る舞いに気づく

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

課題

問題

問題と課題

もしテスト実行者が発見してくれないと不具合は見逃されてしまう

3

プロジェクト期間内にテストを補強して潜在している不具合を発見しなければいけない

不具合の発見がテスト実行者に依存している

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

取り組み内容

4

現行のテストケース

補強不足

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

取り組み内容

5

不具合分析

現行のテストケース

補強不足

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

取り組み内容

6

現行のテストケース

補強不足 NGTによる不具合分析

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

NGTとは…

Notation for Generic Testingの略

電気通信大学の西康晴氏が提唱するテスト開発のための記法

NGTによるテスト観点図

テストケースとテスト観点とを必ず結びつけるようにテスト設計する

親子関係をきちんと明示し網羅性を保証する

テスト観点を列挙・整理し全体像を把握する

NGTとは

7

出典:「テスト観点に基づくテスト開発方法論 VSTePの概要」VSTeP.130510.color.pdf

テストすべき事柄を「テスト観点」としてツリー上に展開していく

観点同士のつながりは線や矢印などで関連づける

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

詳細化

ステレオタイプ

継承・部分・属性化・原因結果

ビューとビューポイント

関連

組み合わせ関連

順序依存関連

関連ビューポイント

テストフレーム

テストコンテナ

NGTとは

8

出典:「テスト観点に基づくテスト開発方法論 VSTePの概要」VSTeP.130510.color.pdf

ステレオタイプを使うことで新たな関係や詳細な関係を定義したり、わかりやすくすることができる

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

NGTではテスト観点図を中心にして進めていく

テスト観点を階層的に記述していく

NGTとは

9

出典:「テスト観点に基づくテスト開発方法論 VSTePの概要」VSTeP.130510.color.pdf

はテスト対象を表す

はテスト観点を表す

は順序依存関係を表す

は詳細化関連を表す

はテスト観点間の関連を表す

新たな関係や詳細な関係を定義したり分かりやすくするために≪stereotype≫(ステレオタイプ)を使ってもよい

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

仕様書などから

なぜNGTを活用しようと思ったのか

テスト開発プロセスの比較

10

テスト要求分析

テストアーキテクチャ設計

テスト詳細設計

テスト実装

不具合分析から

不具合分析

テストアーキテクチャ設計

テスト詳細設計

テスト実装

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

なぜNGTを活用しようと思ったのか

他の不具合分析のやり方ではしっくりこなかった

11

機能に対する傾向分析

どんなテストをすればいいかを導出しにくい

不具合の要素で分析キーワードが並べられるだけで、それらをうまく結び付けられない

どんなときに不具合が起こりやすいかという点に着目して分析したかった

潜在的な結びつきを導出したかった

結びつきがない箇所にこそ潜在的な関係性が存在している

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

なぜNGTを活用しようと思ったのか

おもむろに不具合の要素を抽出したかった

12

原因じゃないか発生手順な気がする

条件じゃないか現象だ

要素

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

NGTの応用方法

13

1)NGTの記法を応用し不具合分析する 2)フレームワークに当てはめる

図 NGTを応用した例 図 フレームワークの例

≪then≫ ≪behavior≫

≪behavior≫

≪then≫

≪then≫

終了まで再生 リピートしない録画再生中

バックグラウンド遷移 再生コントロール

録画操作 一時停止中Android

早送り、早戻し

サブ画面 再生表示表示の相違

メニュー表示

iOS

環境1 条件1 条件2 状態1 状態2 操作 確認点(振る舞い)

単位表示

2画面

バックグラウ

ンド遷移

動画再生

単位変更静止画表示

総和が異なる

録画再生中

早送り、

早戻し

録画の一時停

止中

計測値

サブ画面

iOS

不具合分析にNGTの記法を応用して不具合の要素を抽出し、その要素間の関係性を結びつける

結びつけた要素をフレームワークに当てはめてテストケースの形式に整理する

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

1)NGTによる不具合分析 2)フレームワークに当てはめる

NGTの応用方法

流れ

14

①要素を

抜き出す②要素を

つなげる③つながりのない要素をつなげる

④フレームワークに

当てはめる

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

要素を抜き出し、ツリー上に表現していくのはそのままに、

新たなステレオタイプを使って不具合分析しやすいようにした

≪and≫ :左側の要素と右側の要素を合わせて条件となる関係性を示す。並列を表す。

≪then≫ :左側の要素の条件の後、右側の要素の状態になる関係性を示す。順序を表す。

≪after≫ :左側の要素の条件の前提条件が右側の要素となる関係性を示す。逆順を表す。

≪behavior≫ :右側の要素が不具合の現象を表す。

NGTの応用方法

ステレオタイプに着目

15

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

項目 NGT

テスト対象を表す

テスト観点を表す

テスト観点間の関連を表す

順序依存関係を表す

詳細化関連を表す

新たな関係 ≪stereotype≫

項目 今回の取り組み(囲み部分)

(要素として統合)

要素を表す

つながりのない要素間の関連を表す

順序依存関係を表す ≪after≫≪then≫

詳細化関連を表す

新たな関係 ≪behavior≫≪and≫

NGTの応用方法

NGT記法との比較

16

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

適用事例 前提

適用したシステム

17

計測機器

スマートデバイス テスト設計のやり方

仕様ベース

機能分解したモノに対してテストタイプを当てはめていく

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

N

O

タイトル 手順 内容

0

1

バックグラウンドへ遷移したアプリに30秒以内に復帰した際、再生コントロールが正しく動作しない

1. 1画面で動画再生し、「一時停止」ボタンを押す。

2. メールアプリに遷移する3. バックグラウンドに遷移した

アプリを30秒以内にフォアグラウンドに戻す。

• アプリに戻った後、再生コントロールが正しく動作しない。

• 30秒以内にアプリ画面に復帰すると、動画の再生が早送り状態のままとなっている。

適用事例

①不具合の情報から要素を抜き出す

18

動画再生中バックグラウンド遷移再生コントロールが正

しく動作しない

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

発生しない条件との違いを抽出する

「環境」ー「前提」ー「手順(トリガー)」ー「振る舞い」を意識する

その中でポイントとなった箇所を特定する

発生しない条件との違いが出ないような箇所は抜き出す対象にはならない。

例えば異なる環境でも発生するなら環境は関係ないのでその要素は抽出しない。

これらの要素を抜き出すのでこれらを不具合報告に情報として記録しておく必要がある

適用事例

①不具合の情報から要素を抜き出す ~その方法~

19

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

N

O

タイトル 手順 内容

0

1

バックグラウンドへ遷移したアプリに30秒以内に復帰した際、再生コントロールが正しく動作しない

1. 1画面で動画再生し、「一時停止」ボタンを押す。

2. メールアプリに遷移する3. バックグラウンドに遷移した

アプリを30秒以内にフォアグラウンドに戻す。

• アプリに戻った後、再生コントロールが正しく動作しない。

• 30秒以内にアプリ画面に復帰すると、動画の再生が早送り状態のままとなっている。

適用事例

②応用した記法で要素をつなげる ≪then≫≪behavior≫の場合

20

≪then≫ ≪behavior≫動画再生中 バックグラウンド遷移

再生コントロールが正しく動作しない

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

N

O

タイトル 手順 内容

0

2

バッテリ切れで電源スイッチOFFの本体にACアダプタを接続して数分の後、点滅していた電源LEDが消灯したままとなる

【前提条件】• 電源SW:OFF

• ACアダプタ:接続• バッテリー充電:無【手順】1.前提条件セット後、数分間経過させる

• ACアダプタ接続している状態で、電源LEDが消灯したままとなり充電状態判別が不可となる

適用事例

②応用した記法で要素をつなげる ≪and≫の場合

21

バッテリ切れ電源スイッチ

OFFACアダプタ接続

≪and≫ 電源LEDが消灯したまま

≪and≫ ≪behavior≫

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

N

O

タイトル 手順 内容

0

3

静止画表示中に、通信を切断すると、30秒経過しないうちに別の画面に遷移する(静止画表示が保持されない)

1. 静止画を表示する2. 本体の電源スイッチをOFFに

して無線LAN通信を切断する3. アプリの画面状態を確認する

• 本体電源OFFの17,18秒経過後にエラー表示が出て、静止画表示が中断される

適用事例

②応用した記法で要素をつなげる ≪after≫の場合

22

通信断 静止画表示中 30秒間維持されない≪after≫ ≪behavior≫

30秒以内とは状態を保持する時間に関する仕様

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

適用事例

③つながりのない要素をつなげる

23

≪then≫ ≪behavior≫

≪behavior≫

≪then≫

≪then≫

終了まで再生 リピートしない録画再生中

バックグラウンド遷移 再生コントロール

録画操作 一時停止中Android

早送り、早戻し

サブ画面 再生表示表示の相違

メニュー表示

iOS

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

≪then≫ ≪behavior≫

≪behavior≫

≪then≫

≪then≫

終了まで再生 リピートしない録画再生中

バックグラウンド遷移 再生コントロール

録画操作 一時停止中Android

早送り、早戻し

サブ画面 再生表示表示の相違

メニュー表示

iOS

適用事例

つながりのない要素をつなげるコツ

24

端末種類と各種操作

画面状態とある機能が動作している状態

画面状態の遷移

画面状態と各種操作

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

環境1 条件1 条件2 状態1 状態2 操作 確認点(振る舞い)

単位表示

2画面

バックグラウ

ンド遷移

動画再生

単位変更静止画表示

数値表示

録画再生中

早送り・戻し、

スライダー

録画の一時停

止中

計測値

サブ画面

iOS

適用事例

④フレームワークに当てはめる

25

≪then≫ ≪behavior≫

≪behavior≫

≪then≫

≪then≫

終了まで再生 リピートしない録画再生中

バックグラウンド遷移 再生コントロール

録画操作 一時停止中Android

早送り、早戻し

サブ画面 再生表示表示の相違

メニュー表示

iOS

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

107件

結果

26

現行のテストケース

99件

現行のテストでは発見で

きない不具合を8件検出

テストの補強後

99件

8件

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

発見した不具合

27

環境1 条件1 条件2 状態1 状態2 操作 確認点(振る舞い)

単位表示

2画面

バックグラウ

ンド遷移

動画再生

単位変更静止画表示

数値表示

録画再生中

早送り・戻し、

スライダー

録画の

一時停止中

計測値

サブ画面

iOS

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

環境1 条件1 条件2 状態1 状態2 操作 確認点(振る舞い)

単位表示

2画面

バックグラウ

ンド遷移

動画再生

単位変更静止画表示

数値表示

録画再生中

早送り・戻し、

スライダー

録画の

一時停止中

計測値

サブ画面

iOS

発見した不具合

28

04:サブ画面で動画を再生して終了時点まで待つと選択範囲の数値表示が以前に選択した数値のままになる

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

環境1 条件1 条件2 状態1 状態2 操作 確認点(振る舞い)

単位表示

2画面

バックグラウ

ンド遷移

動画再生

単位変更静止画表示

数値表示

録画再生中

早送り・戻し、

スライダー

録画の

一時停止中

計測値

サブ画面

iOS

発見した不具合

29

06:動画再生コントロールを繰り返しサブ画面で動画を再生した後、メイン画面で録画を開始すると録画画面が2つの画面を行き来する07:iOS端末で、サブ画面

で動画再生中にスライドバーを移動した後、別の画面をタップすると動画再生コントロール表示が非表示にならない

02:サブ画面で動画再生中に一時停止ボタンを押すと再生が止まらない

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

環境1 条件1 条件2 状態1 状態2 操作 確認点(振る舞い)

単位表示

2画面

バックグラウ

ンド遷移

動画再生

単位変更静止画表示

数値表示

録画再生中

早送り・戻し、

スライダー

録画の

一時停止中

計測値

サブ画面

iOS

発見した不具合

30

03:メイン画面に動画再生、サブ画面に別の動画を再生時に再生コントロール操作を行い、マルチタスクジェスチャーを行い、再度再生するとメイン画面の再生が途中で止まる

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

環境1 条件1 条件2 状態1 状態2 操作 確認点(振る舞い)

単位表示

2画面

バックグラウ

ンド遷移

動画再生

単位変更静止画表示

数値表示

録画再生中

早送り・戻し、

スライダー

録画の

一時停止中

計測値

サブ画面

iOS

発見した不具合

31

01:iOS端末で、サブ画面で動画再生中に計測機器との接続を削除しても「計測中」表示のままとなる。

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

環境1 条件1 条件2 状態1 状態2 操作 確認点(振る舞い)

単位表示

2画面

バックグラウ

ンド遷移

動画再生

単位変更静止画表示

数値表示

録画再生中

早送り・戻し、

スライダー

録画の

一時停止中

計測値

サブ画面

iOS

発見した不具合

32

04:単位変更ボタンを長押し中にファイル管理画面を閉じると単位が自動で変わり続ける

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

環境1 条件1 条件2 状態1 状態2 操作 確認点(振る舞い)

単位表示

2画面

バックグラウ

ンド遷移

動画再生

単位変更静止画表示

数値表示

録画再生中

早送り・戻し、

スライダー

録画の

一時停止中

計測値

サブ画面

iOS

発見した不具合

33

05:単位変更ボタンを長押し中にホーム画面に遷移すると、単位変更のスライドバーが動作しない

会社名・製品名・サービス名は、各社の登録商標または商標です。Copyright © 2018 VeriServe Corporation All Rights Reserved.Confidential

次のテストのための分析としても利用できる。

テスト実行者によって発見された不具合が多いな、と感じたときに有効

不具合の発見がテスト実行者にほとんど依存していない場合は有効ではない

異なる手法で設計されたテストケースに対して有効

NGTで設計されたテストケースに対しては有効ではない

NGTを実践する取っ掛かりとして有効

まとめ

34