PowerPoint プレゼンテーション

テストの技術
システム工学概論
補足追加
河野善彌
2004. 12. 16
復習
ソフトの誤りによる事故
覚えていますか
ソフトウエアには,誤り(バグ)がつきもの
バグの為に正常でない動作/不充分な性能
ソフトウエアバグによる障害
・広汎な地域
北米の市外電話が一日麻痺
・社会の活動阻害
証券取引/銀行システムのダウン
・被害金額大
火星着陸人工衛星が使命達成に失敗
数百億円の損害
・多数の使用者
携帯電話56万台の機能異常/リコール
IT化の進展につれ,ソフトの占める立場が大きくなる
ITS ハイウエイ自動走行システム
バグ 0 でなければ?
1960年代 0.数件/K行….1990年代 0.001件/K行….
では2000年代は ?
それは如何にして達成できる?
Copyright Z. Koono 2004
復習
設計の正しさのテスト
設計は誤りを免れない
目的
仕様
設
計
プログラム
(計算機
言語表記)
計
算
機
テスト
仕様の一部を対象とし
プログラムを動かして
実動作を確認する
働き
機能
効果
効用
テスト作業
仕
様
設計
テスト設計
テスト実行
期待
出力
一致
照合
必要
入力
不一致
実
出力
対象
プログラム
デバッグDebug
原因切分け
次
へ
誤り修復
再
テスト
テストの効果1
テストの効果2
テストの効果3
設計側の
誤り率Ed
仕様書
ある べ
き 仕様
設計
仕様
テス ト
仕様
通常の設計
照合
テスト 設計
テスト側の第II種
(不正を正と誤る)
誤り率Et
各種の
テスト
の誤り
テストの戦略や狙いの誤
テスト設計〜コード化の誤
流れのルートの潰し漏れ〜不注意ミス
照合の誤
終了
不一致調査/修正
テスト後の
誤り率
Ed×Et
例Et=0.1なら1/10化
復習 何処を如何にテストするか
各種のテスト (見方が異なる)
・時系列:
・立場:
・規模:
今回例
単体,統合,システム,評価,検収...
開発者,検査/品質保証,ユーザ..
単体,サブシステム,システム....
小プログラムの確認を行う原理的なテスト
・設計結果を見ながらテストを考える(White box)
・単体テストでは,全ての経路を塗りつぶす
(大きくなると異常時のルートは通せない)
テストケースとチェックポイント
・ケース(試験する場合)幾つかのチェックポイント(確認個所)
Copyright Z. Koono 2004
復習
機能構造とプログラム構造
1秒毎にプログラムを起動
mai n
時計
Tokei
時刻を
える
Ji kokuwo
Eru
時刻表示
を求める
Ji kokuHyouj
i wo
Eru
全体を制御する親
表示
する
Hyouj
i suru
子である部品
内部的なモジュール
C言語では関数
時計プログラム
Copyright Z. Koono 2004
復習
プログラム構造とテスト1
ドライバー(駆動する)
mai n
進行を確認
する手段
時刻を
える
Ji kokuwo
Eru
時計
Tokei
時刻表示
を求める
Ji kokuHyouj
i wo
Eru
テスト対象
表示
する
Hyouj
i suru
スタブ(部品を疑似)
データを確認する手段
Copyright Z. Koono 2004
プログラム構造とテスト2
復習
指令入力
指令出力
終了
開始
ダミー実行管理
各種入力を与え
制御構造部
る.
各状態遷移
内部インタフェ
プログラム
イス点
ダミー出力
各種出力を
ダミー出
プログラム類
与える.
力
Copyright Z. Koono 2004
復習
テストの進め方
One at a time 一つずつ確実な物を増やす
重要なテストの戦略 テスト仕様書を貫くもの
mai n
トップダウン
時計
Tokei
併用
時刻を
える
Ji kokuwo
Er u
時刻表示
を求める
Ji kokuHyouj
i wo
Er u
入力系
内部処理系
試験入力
が容易化
表示
する
Hyouj
i sur u
ボトムアップ
出力系
試験出力
が容易化
Copyright Z. Koono 2004
テストの計画
テスト条件1
購入
指定
釣銭出
力
待機中
釣銭
投
入
金
単体テスト
1
釣銭
販売商品
釣銭
1遷移ルート
毎に関係部分
を洗う
チェックすべき所
は全てチェック
合計金額表示
可
販売可?
不
可
出力
可?
不
可
可
3
販売可能商品表示
購入指
定
釣銭
出力
購入
指定
釣銭
出力
販売可能
投入金有り
販売不可
投入金
合計金額表示
投入金
合計金額表示
2
販売可?
販売可?
不
可
可
販売可能商品表示
不
可
可 販売可能商品
表示
異常
テスト条件2
テスト項目表(通し枚数
番号 大項目
中項目
/全体枚数
)
対象システム名
プログラム名
完了日/確認者
小項目
トップダウンに
テストする場合を展開する
正常機能
正常販売サイクル
途中放棄
状態S1で途中放棄
釣銭出力
購入指定
状態S2で途中放棄
......
保守機能
テスト設計担当者氏名
テスト設計日
テスト実施担当者氏名
テスト実施日
テスト条件3
テスト条件書(
大/中項 小項目
目番号
番号
/
)
テストケース
テスト設計等の誤りは朱記訂正して使用する
正解入力
正解出力
テスト設計担当者氏名
テスト実施担当者氏名
テスト設計日
テスト実施日
実出力
判定
正解出力/入力は実際に近い
形式(ランプ点滅等)で記入する.
実出力は,実際に出た現象を
そのとおりに記入する.
判定は,実出力=正解出力なら○
テスト作業者≠当該個所設計者
なので,テスト作業は連続して実行.
途中でプログラム手直ししない
全部のデータを揃えてから
悪い所を推理する.
正解との照合個所は,多いほど良い.
合計金額,販売可能表示
テスト ケースとは,テストしたい場合を云う.
販売可
能移行
110円まで投入
10円追加
販売可能点灯
10円追加 販売可能点灯数増
復習
テストでの切分け
One at a time 一つずつ確実な物を増やす
増やして異常なら,増した所を疑え
mai n
時計
Tokei
時刻を
える
Ji kokuwo
Er u
時刻表示
を求める
Ji kokuHyouj
i wo
Er u
表示
する
Hyouj
i sur u
Copyright Z. Koono 2004
デバッグの切分け
復習
クロ
ック
ク
ロ
ッ
ク
時刻
を
える
時計
時
刻
求
め
る
異常個所の摘出は
最も時間を要する
盤面
時刻
表示
時
求める
時針
分
求める
分針
秒
求める
秒針
表示
する
盤
面
ソースを読むのは
最も面倒
プログラム,関数単位に
切分ける 他人で可
追詰めて,修正の為
ソースを読む
Copyright Z. Koono 2004
変更前後の管理
変更表 シス テム名 機能/プロ セス /プロ グラ ム名 設計
審査
ソースコード
↓
フローチャート
↓
データフロー
↓
(仕様)
何処が
悪いのか,
突止めて
再発防止が
重要
ソースコードのみでなく,
遡って変更する
再度同種の不良を出
さ ない為の対策
作込工程 不良を作込んだ原因
変更後
変更前
月日
番号
復習
現物をあれこれ
いじり回すと
混乱が起こる
mai n
時計
Tokei
時刻表示
を求める
Ji kokuHyouj
i wo
Eru
時刻を
える
Ji kokuwo
Eru
修正の管理
表示
する
Hyouj
i suru
切分単位毎に
1版,2版..と
現物を差換え,残す
面倒でも手違が無い
時刻表示
時刻表示
.....
.....
.....
.....
2版
1版
現
物
保
存
時刻表示
.....
.....
プロ
アマ
面倒でもキチンとやる
手順を飛ばして,却って損する
ー常に基本を厳守ー
3版
Copyright Z. Koono 2004
復習 再発防止
仕
様
文
書
設計
作業
文
書
設計
作業
文
書
設計
作業
Prog
誤り
コード
誤を
作込
な
ぜ
?
な
ぜ
?
異常
動作
な
ぜ
?
どうしたら,
この設計の作業で
誤りを作らなくなるのか?
再発防止対策
ユーザ
クレー
ム!
な
ぜ
?
再発防止策の調査
重要な誤りは,
現象
症状
メカニズム
不良工程
不良個所
と遡って調べる
テスト作業の進捗管理1
累
計
誤
り
数
開発者
テス ト
出荷
テス ト
現地
検収
テス ト
実
運
用
年月
仕
様
書
設計
開発側
テス ト
品証側
テス ト
製
品
テスト作業の進捗管理2
誤り摘出数
の累計
テスト項目数
残の累計