...

PowerPoint プレゼンテーション

by user

on
Category: Documents
17

views

Report

Comments

Transcript

PowerPoint プレゼンテーション
ESEC2009 横河ディジタルコンピュータ 製品・技術PRセミナー
組込みソフトウェア開発における
テスト工数削減のアプローチ
〜テスト自動化率向上を狙ったテスト省力化手法の紹介
〜
横河ディジタルコンピュータ㈱
組込みプロセスシステム事業部(EPS事業部)
横河ディジタルコンピュータ株式会社
アジェンダ
1.横河ディジタルコンピュータ(株)
組込みプロセスシステム事業紹介
2.最近のプロセス改善活動状況
3.テスト機構埋め込み型(テスト言語実装)
組込みシステム開発事例 ★テスト省力化取組み事例(自社)
4.GUI操作基点型(マウス&画面キャプチャ)
組込みシステム検証事例
★自動テスト環境の構築と実行
5.簡単なデモ紹介
横河ディジタルコンピュータ株式会社
第1章
横河ディジタルコンピュータ(株)
組込みプロセスシステム事業紹介
横河ディジタルコンピュータ株式会社
組込み開発 V字プロセス支援事業
70社の組込み開発支援実績
見える化ツール で現場の力を高める
microEPS
要件開発
設計
見える化ツール群
システム評価
総合評価
テスト省力手法 で現場の力を高める
初回
2回目
実装 単体評価
テストデータ
n回目
・・・
OK
/
NG
検査項目・手順
プロセス改善手法 で現場の力を高める
検査機器
検査結果
◆実践型CMMI活動/SPI活動活動支援
◆プロセス定着のためのツール支援
◆テストの自動化率向上活動支援
横河ディジタルコンピュータ株式会社
P.テストプロセス
PET方式
プロセスとエンジニアリングとツール 三位一体
テストプロセスは、CMMIモデル相当から必要部分を抜粋
横河ディジタルコンピュータ(株)
組込みテスティング省力化手法
「ePET」
P. 組込みテストプロセス構築支援
テストプロセスメソッド提供及び適用支援
テストプロセス、運用、目標の定義
P.
テスト計画
テストプロセスメソッド
テストアセスメント
テスト計画に従ったテスト設計
現状把握
E.
テストエンジニアリング
テスト計画、テスト設計に準じたテスト実装
T.
テストツール
「ePET」
= embedded ProcessMethod-Engineering and Tool
改善検討
テスト実施
是正計画・自動化計画
自動化実装
プロセス見直し
データ評価
横河ディジタルコンピュータ株式会社
PET方式
E.テストエンジニアリング
テスト計画、テスト設計に準じたテスト実装
組込み自働テストツール
局所モデルベース開発支援
SimEDIT
設計
組込み機器開発V字モデル
システム仕様設計
製品適合
製品検査
製品適合
システム動作検証
製品検査
基本設計
機能設計
ホワイトボックステスト支援
Rational® Test RealTime
静的解析、ホワイトBOXテスト、
カバレッジ、性能評価
SimEDIT構想による
段階的な局所モデルベース
開発手法
検証
単体動作検証
詳細設計
実装
IBMラショナル
と横河ディジタルコンピュータ協業
IBMラショナルと
横河ディジタルコンピュータ協業
組織的なテストプロセス構築とテスト動作環境を提供
組込みシステム
自動テスティング支援
GUI系ソフトウェア
自動テスト支援
横河ディジタルコンピュータ株式会社
T.テストツール
PET方式
内製ツール及び他社ツールを視野に特性に合わせて適用
弊社ツール紹介 無駄な機能を徹底排除した、低コスト自動化ツール
自動化環境構築プラットフォーム microEATS
GUI適用自動化構築ツール
microCARP
GUIテスト自動化ツール
システムを実際の操作し記録した手順を
自動実行して、機能・性能テスト実施
組込みシステムテストプラットフォーム
システム IFを用いて機能・性能テスト実施
テストフロー
PC
シナリオ
操作パネル
LAN
システム機能
組み合わせ試験
シナリオ実行
PC
個別機器I/F
電流計1 電流計2
操作端末
テスト結果
検査対象
(制御機器装置)
LAN/USB/TTY
電流計3
電流計4
検査対象
(制御機器装置)
横河ディジタルコンピュータ株式会社
規模増大と多様性 派生開発型のテストプロセス
第2章
最近のテストプロセス改善活動状況
横河ディジタルコンピュータ株式会社
ソフトウェア比重と開発割合の変化
経済産業省 2007年版組込みソフトウェア産業実態調査報告書抜粋
組込みシステム開発費に占める割合
ハード
機構系
11.9%
ハード
電子系
20.7%
その他
7.7%
ソフトウェア開発費の内訳
会社規模
ソフト
開発費
59.7%
1000以上
40
15
30
15
300-1000
43
10
30
17
100-300
43
10
30
17
100以下
40
9
0%
開発費の60%程度がソフトウェア開発費
25
26
50%
社内
派遣
外部
その他
100%
社内開発は半数以下(外部依存が高い)
NEW” 更に昨今の社会情勢による外部委託経費大幅削減
この時代に適用した「開発モデル」の創造が急務
横河ディジタルコンピュータ株式会社
組込み開発テスト手法の考察
静的解析導入
ブラックボックスエリア
による改善が一般的
人海戦術要素が強い
このエリアが一番きつい
プロジェクト管理
要件開発
システム評価
要求管理
設計
総合評価
ホワイトボックスエリア
市販ツールの適用が
一般的
実装
単体評価
本日のテーマ
構成管理
横河ディジタルコンピュータ株式会社
第3章 テスト機構埋め込み型(テスト言語実装)
組込みシステム開発 テスト省力化取組み事例(自社)
〜テスト自動化率向上を狙った
テスト環境構築例の紹介 〜
横河ディジタルコンピュータ株式会社
開発特性 ドロドロV6字モデル
開発スパン約1~2年
要素確認テスト
性能確認テスト
製造出荷
試作2
最重要テスト
①
技術部内出荷
重要テスト
機能テスト
②
重要テスト
③
⑥
⑤
④
試作1
量産
平均6回程度の回帰性があり、テスト工数爆発を
抑制するためテスト自動化施策を試みる
横河ディジタルコンピュータ株式会社
テスト省力化構想(抜粋)
組込み機器検査ソフトウェア
プラットフォーム
PC
データパス
操作パス
GPIB
電流計 直流安定化電源
電圧計
周波数測定
A
スペクトラム
アナライザ
操作端末
(1)テスト環境構築
◆テストを作成する環境
◆テスト実行指示 操作パス
Aにメッセージを与え、結果を判定する環境
◆テスト結果 データパス経由での自動レポートする機能
(2)システム検査要領
◆検査機器の操作端末(A)にメッセージを与え
(機器が認識するコマンド、パケット) その挙動を電気特性
の測定値、ソフトウェアの返答結果から合否判定する
◆数千のコマンド(メッセージ)を組み合わせ、システム検査
に流用し、自動化を実現する
◆正常系のみならず、異常系の検査を含め合否判定を行う
(3)システム内部テスト機構
◆数千機能の内部妥当性検証のため、システム設計時、
テスト観測機能を入れ込む。(内部トレースetc)
◆(1)で作成されたテストスクリプトは、検査機器内で
認識&翻訳する機構を設ける。
機能(ハードウェアポート)は、全て、言語仕様化する
(4)目指す目標
検査対象
(組込みシステム機器装置)
ハード基板60枚前後で構成されたシステム
◆組み合わせ検査パターンの自働化 検査漏れの防止
◆派生開発時のデグレード防止、共通機能の部品化と
再利用によるシステム品質の向上
横河ディジタルコンピュータ株式会社
テスト省力化システム構築
開発対象 言語駆動型システム構成
★1、★2、★3の適用
★3
内製テストプラットホーム
操作端末
テスト動作設定
GUI層
解析系、分析系、操作系
★1
言語インタプリタ
翻訳機構
ミドル層
ユニット制御
ユニット機器通信
★2
テスト実行制御
仮想・実機テスト制御
テスト作成
期待値作成
テストビルド
テスト内容解釈
操作パス
テストロード ・コマンド要求
テスト結果&データ
測定値、判定
データパス
判定
テスト結果サマリ帳票生成
テスト実行
I/O層、診断・校正制御
計測器
個
別
機
器
条件データ
実績データ
解析データ
テストシナリオ作成
テストライブラリィ
機能部品群
IF
実機環境
仮想環境 ダミーIO
データベースによるデータ管理
動作環境は ソラリスOS
横河ディジタルコンピュータ株式会社
テスト省力化施策の総括
プロセスルール 代表5か条
①コンパイルビルドのワーニング絶対除去
②仮想環境によるソフトウェア論理デバッグ重視 仮想&実機の2パス検査
③PURIFYによるメモリリーク、NULLポインタ除去
④テストファースト 設計時 言語仕様作成とその実装をルール化
テストシナリオ(テストフローとテスト項目をプログラミング登録)作成
⑤既存標準テストシナリオベースに派生型テストを設計
<約1000スクリプト>
機能別
異常検証
バグ抑制&デグレード確認
システム出荷用確認
500スクリプト
100スクリプト
300スクリプト
100スクリプト
負担工数 50%以上の削減(従来比)を実現
横河ディジタルコンピュータ株式会社
参考 実際の開発テスト工程まとめ(1)
組込み開発上流工程で意識したテストプロセス
テスト工程
P.プロセス(規定)
E.エンジニアリング
T.ツール
要件
・テスト計画の作成
・ユニット制御仕様書
・ユニット言語仕様書
流用テスト部品の確保
発生テスト部品の確保
静的解析ツール
設計
・ユニット設計書
・ユニット言語設計書
・テスト部品の設計
仮想テスト環境の準備
単体テスト環境の準備
バラック実機環境の準備
実装
・言語対応実装&言語ライブラリィ
・テスト部品の作成
・内製テストワーク
ベンチ適用
テストファースト 要件&設計時 言語仕様作成とそれを活用したテスト実装を義務つける
テストシナリオ(テストフローとテスト項目をプログラミング登録)作成
横河ディジタルコンピュータ株式会社
参考 実際の開発テスト工程まとめ(2)
組込み開発下流工程で意識したテストプロセス
テスト工
程
P.プロセス(規定)
E.エンジニアリング
T.ツール
単体テスト
・静的解析導入 ANSI規格レベル
・ユニット内のシュミレータ環境構築
による単体試験促進
・PURIFY導入によるメモリリーク除去
・機能カバレッジ向上のため
のテストデータ作成
・静的解析ツール
・内製テストワークベ
ンチ適用
・PURIFY
結合テスト
・各ユニット結合した
仮想実機環境構築
テストシナリオによるテスト自動化
・PURIFY導入によるメモリリーク除去
・構成管理 dbg用、FIX用の
環境構築
・機能カバレッジ向上のため
のテスト実行
総合テスト
・各ユニット結合した実機環境構築
結合テストシナリオ再利用によるテスト
自動化実施 & 結果レポート提出
・実感環境構築
テスト環境は、シュミレータ版、実機版 2パスで実施
単体テスト部品は、総合テストで活用できることを考慮して設計
横河ディジタルコンピュータ株式会社
第4章
GUI操作基点型(マウス&画面キャプチャ)
組込みシステム検証事例 自動テスト環境の構築と実行
〜テスト自動化率向上を狙った
テスト環境構築例の紹介 〜
横河ディジタルコンピュータ株式会社
前回プロジェクトの大きな課題発生
前回のプロジェクトにおいて、テスト工数が爆発し、QCDの視点で大きな課題
•
•
•
テスト計画がない
テストケースが少なすぎる
テストの実施結果が残っていない
テスト工数爆発最大の障害はテストケースがないこと!
今回開発で、テスト省力化を睨んだ、
テストケース作成&活用の仕掛けを検討
前回開発の状況を整理し、
テスト自動化による工数削減活動を実施
横河ディジタルコンピュータ株式会社
主な活動概要
活動内容
1.自動化ツール選定&運用検討
(1)現状のテスト手法の把握
(2)自動化可能なテストマップ表
(3)新テストプロセス検討
(4)テストプロセス実装ツール検討
2.自動化部分のテスト計画・仕様書作成
(1)自動化テスト計画書
(2)自動化テスト仕様書
(3)テスト仕様に準じた自動化サンプル テンプレート類
3.自動化部分のテスト環境実装(実行)
(1)自動化テスト雛形の提供
(2)テスト部品の構成管理
(3)自動化テスト判定部分の実装
(4)テスト帳票自動生成部の実装
横河ディジタルコンピュータ株式会社
テスト省力化の体制
• 役割分担
テストフェーズ
単体テスト
テスト項目作成
テスト実施
単体受け入れテスト
受け入れテストケース作成
受け入れテスト実施
テスト自動化検討
テスト自動化実現
繰り返しテスト実施
結合テスト
テストケース作成
テスト実施
テスト自動化検討
テスト自動化実現
繰り返しテスト実施
総合テスト
テストケース作成
テスト自動化検討
テスト自動化実現
テスト実施
開発 テスト
横デジ
チーム チーム
弊社役割
●
●
●
●
●
●
●
●
●
△
△
△
△
△
●
●
△
●
●
●
●
単体テストの受け入れテスト(ブラックボック
ス的に確認する分)について、テスト自動化
を検討⇒実装
結合テストの自動化では、テストケース毎に、
自動化方法をテストチームと横デジが協同で
検討(フレームワーク部分は横デジが提供)
●
△
結合テストで作成した機能毎のテストコンテ
ンツを組み合わせて総合テストのテストコン
テンツを作成
●
△
横河ディジタルコンピュータ株式会社
テスト自動化のためのステップ
重要
テストケース、
手順作成
Input、Output期待値、
判定基準作成
単体~結合テストで作成したテストシナリオを厳選し、他部署
(製造部又は品質保証部)で活用できることを前提に構築する
判定ロジック検討
テスト結果表
テンプレート作成
2回目以降
テスト1回目
手動検査実行
テスト結果表更新
検査対象指定
操作手順をmicroCARP
でスクリプト化
検査自動実行
判定ロジックを
microEATSに登録
自動化検証
テスト結果表
自動更新
横河ディジタルコンピュータ株式会社
テスト自動化ツール構成 microEATS
テストケース③
テスト対象API
テストケース②
テストケース①
テスターの操作
を記録
記録した操作を基に
テストスクリプトを作成
// ====================================
// ビルダーの操作
// ====================================
id = GETID("", "WindowsForms10.Window.8.app.0.2e0c681",
-1)
SLEEP(1)
CLKITEM(id, "ファイル(F)", CLK_ACC)
id = GETID("",
"WindowsForms10.Window.20808.app.0.2e0c681", -1)
CLKITEM(id, "プロジェクトの新規作成", CLK_ACC or
CLK_LEFTCLK)
id = GETID("プロジェクトの新規作成",
"WindowsForms10.Window.8.app.0.2e0c681", -1)
SLEEP(1)
繰り返し実行や
データ駆動型に書換
結果をDBに格納
テスト報告書(xls)
自動生成
テストを自動実行
自動化できない
テストケースのテスト結果
結果を自動/目視判定
手動実施済
テストデータ
横河ディジタルコンピュータ株式会社
テスト自動化ツール構築例
microEATS
•
テストの手順、全体のシナリオの進め方をプログラムレスの
フローベースで構築
microCARP
テストケース1
スクリプトに従い
テストを自動実行
•
UWSC
// ====================================
// ビルダーの操作
// ====================================
id = GETID("", "WindowsForms10.Window.8.app.0.2e0c681", -1)
SLEEP(1)
CLKITEM(id, "ファイル(F)", CLK_ACC)
id = GETID("", "WindowsForms10.Window.20808.app.0.2e0c681", -1)
CLKITEM(id, "プロジェクトの新規作成", CLK_ACC or CLK_LEFTCLK)
id = GETID("プロジェクトの新規作成", "WindowsForms10.Window.8.app.0.2e0c681", -1)
SLEEP(1)
スクリプトに従い
テストを自動実行
テストケース1
–
•
テストケース2
詳細な小テストの結果を総合
して結果を判断する
テスト結果
テスト結果
テストケース2
–
想定された操作の結果出力さ
れたファイルの内容で結果を
判断
判定
判定
テスト報告書
•
従来通り手動で
実施したテスト
の結果をマージ
する
(xls)
手動実施済
テストデータ
※Web系の記録・再生にはUWSCのシェアウェア版が必要になる可能性があります。
横河ディジタルコンピュータ株式会社
実動デモ
•
実際にデモサンプルプログラムにて自動テストイメージをご覧ください
横河ディジタルコンピュータ株式会社
テスト省力化(自動化)活動 中間まとめ
自動化ツールによる工数削減
初回のテスト
手動による
テスト
ツールによる
テスト
•
•
テストケース
作成
テストケース
作成
環境
構築
回帰テスト
テスト実行
環境構築
テスト
実行
テスト実行
テスト
実行
テスト
実行
テスト実行
テスト
実行
テスト実行
35%短縮
初回のテストケース作成~環境構築では多少の工数増加はあるが、構築後のテストの実行時間は大幅
に削減されるため、回帰テストの回数が多いほどテスト工数が削減される
人為的なテスト実施漏れ・ミスなどがなくなるため、テストの品質、予定スケジュール遵守率が向上する
自動化活動の3大ポイント
1.どこを自動化すべきか明確にする
2.テスト内容を明確にする
3.再利用可能なテストとなるように自動化実装する
横河ディジタルコンピュータ株式会社
FIN
横河ディジタルコンピュータ株式会社
組込みプロセスシステム事業部(EPS事業部)
042-333-6226
[email protected]
横河ディジタルコンピュータ株式会社
Fly UP