テストの技術 システム工学概論 補足追加 河野善彌 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 誤り摘出数 の累計 テスト項目数 残の累計
© Copyright 2024 ExpyDoc