CS+(CubeSuite+)自動運転 スクリプト作成マクロの紹介 ~人力から自動化への道~

Slides:



Advertisements
Similar presentations
1 情報基礎 A 第 9 週 プログラミング入門 VBA の基本文法 1 準備・変数・データの入出力 徳山 豪・全 眞嬉 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
Advertisements

InstallShieldLecture InstallShield でインストーラを作成する方法 ( 初級編 ) ソニーエンジニアリング 設計 3 部 1 課 齋藤佑輔.
中小企業診断士 野田 幸紀 2010 年 2 月 10 日(水) データ分析をする前に知っておきたいノウハウ (ACCESS初級編)
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也. 講義計画(あくまで予定) 第 1 回 プログラミング言語の種類と歴史 第 2 回 eclipse の基本操作 第 3 回 eclipse のデバッグ機能 第 4 回 構造化プログラミングの復習 第 5 回 演習 第 6 回 構造化指向からオブジェクト指向へ.
第5章 JMPのインストールと基本操作 廣野元久
目次(電子納品 操作手順) ※ページはスライド番号
BBT大学 Ruby on Rails開発環境セットアップマニュアル
WinDBG6によるRTX5.5デバッグ RTX開発環境 WinDBG6.0 debugモードで起動 232Cクロスケーブル
7-1.WEKOコンテンツ 一括登録 マニュアル Version2.5
TeX で数式を書くための PowerPoint アドイン Ver (2011/06/26) Ver. 0.1 (2007/5/30)
SDOPxls2xml操作説明書 version1.0
Powerpointを使用した ゆっくり動画の作成
UNIX利用法.
情報処理実習 第05回 Excelマクロ機能入門 操作マクロ入門.
UNIX利用法 情報ネットワーク特論資料.
PC作業の一時停止 ●「スタンバイ(サスペンド)」: メモリには電源が供給される。実行中のデータがそのままメモリに保持されるため、作業を中断した状態から 数秒で再開ができる。省電力。 操作: 「スタート」→「電源オプション」→「スタンバイ」とクリックする。 ●「休止状態」: メモリの内容をハードディスクに退避してから全デバイスの電源をオフ。作業を中断した状態からの再開ができる。ノートPCでは電池が消耗しない。
JXTA Shell (3) P2P特論 (ソフトウェア特論) 第6回 /
1 インストール・起動する 「SQS」で検索 SQSホームページ 動作環境 JavaSE 6以上 (JRE6)
TMenu メニューバーを用いた操作のための コンポーネント.
ファイルやフォルダを検索する ①「スタート」→「検索」→「ファイルとフォルダ」とクリックする。
PCの情報を得る - 「システム情報」 ①「スタート」→「すべてのプログラム」→「アクセサリ」→「システム ツール」→「システム情報」とクリックする。 ②左欄の項目を選択すると、右欄に情報が表示される。
心理学情報処理法Ⅰ やってみよう:Wordの起動.
TeX で数式を書くための PowerPoint アドイン Ver. 0.1 (2007/5/30)
2007 Microsoft Office system クイックガイド
情報理工学部 情報システム工学科 ラシキアゼミ3年 H 岡田 貴大
Fiery Color Profiler Suite v4.7
Lightweight Language Weekend ls-lRシェル
VBA(Visual Basic Application)を使ったプログラミングの初歩概説
プログラミング演習II 2004年10月19日(第1回) 理学部数学科・木村巌.
F5 を押すか、または [スライド ショー] > [最初から] をクリックして、コースを開始してください。
ノンプログラマのための Selenium de DDT はじめの一歩
Microsoft Office 2010 クイックガイド ~応用編~
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
かぞえチャオ!でコードレビュー 2013/10/20 Ciao-ware.
Microsoft Office 2010 クイックガイド ~応用編~
第2回 Microsoft Visual Studio C++ を使ってみよう
Excel 2002,2003基本14 テンプレートを作る.
≅ ≰ ≳ ≗ ≲ ≩ ≴ ≥ ver manual Tanaka.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
オープンソフトウェア利用促進事業 第3回OSSモデルカリキュラム導入実証
シーケンス図を用いて実行履歴を可視化するデバッグ環境の試作
実行時情報に基づく OSカーネルのコンフィグ最小化
単語登録(1) ◎MS-IMEの「単語登録」に、単語、語句、記号など自分がよく使うものを登録しておくと、便利である。
JXTA Shell (1) P2P特論 (ソフトウェア特論) 第4回 /
インタラクティブ・ゲーム制作 プログラミングコース 補足資料
7-0.SWORD Client for WEKO インストールマニュアル Version 2.2
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
≅ ≰ ≳ ≗ ≲ ≩ ≴ ≥ ver manual Tanaka.
JXTA Shell (2) P2P特論 (ソフトウェア特論) 第5回 /
ソフトウェア保守のための コードクローン情報検索ツール
情報基礎演習I(プログラミング) 第11回 7月12日 水曜5限 江草由佳
~目次~ Ⅰ.動作環境 Ⅱ.ファイルのダウンロード Ⅲ.システムのインストール Ⅳ.初期設定 Ⅴ.アンインストール
ファイルやフォルダを検索する ①「スタート」→「検索」とクリックする。 ②「表示項目」から適当なものを選択する。
統計ソフトウエアRの基礎.
電気・機械・情報概論 VBAプログラミング 第1回 2018年6月25日
vc-3. ダンプリスト,配列 (Visual Studio C++ の実用知識を学ぶシリーズ)
TeX で数式を書くための PowerPoint アドイン Ver. 0.1 (2007/5/30)
vc-2. Visual Studio C++ のデバッガー (Visual Studio C++ の実用知識を学ぶシリーズ)
情報基礎演習I(プログラミング) 第8回 6月8日 水曜5限 江草由佳
TeX で数式を書くための PowerPoint アドイン Ver. 0.1 (2007/5/30)
Microsoft Office 2010 クイックガイド ~応用編~
vc-1. Visual Studio C++ の基本操作 (Visual Studio C++ の実用知識を学ぶシリーズ)
vc-3. ダンプリスト,配列 (Visual Studio C++ の実用知識を学ぶシリーズ)
プログラムの一時停止時に 将来の実行情報を提供するデバッガ
Visual Studio 2013 の起動と プロジェクトの新規作成 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
Cp-1. Microsoft Visual Studio 2019 C++ の使い方 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
単語登録(1) ◎MS-IMEの「単語登録」に、単語、語句、記号など自分がよく使うものを登録しておくと、便利である。
C#プログラミング実習 第1回.
第0.5回: ~Unity Editorの操作方法~
Presentation transcript:

CS+(CubeSuite+)自動運転 スクリプト作成マクロの紹介 ~人力から自動化への道~ 2016/2/27 Yasushi Tanaka

CS+を使ったデバッグ操作 CS+に限らず、統合開発環境(IDE)を使ったデバッグ操作は以下のような作業が大半を占めている ブレークポイントを設定 プログラムを実行 変数の値をウォッチ(または変数値を設定) 期待値通りになっていることを作業者が確認 画面キャプチャを取得しExcelへ貼り付け

CS+が提供する自動運転 CS+はスクリプトによる自動運転をサポートしているが、サポートするスクリプト言語はPython (正確にはIronPython)である IronPythonとは何か? ⇒汎用インタプリタ言語であるPythonを、Microsoftが提供する.NET Frameworkを利用して実装したもの(http://www.ironpython.net/) ⇒Windowsおよび.NETとの親和性が高い

CS+のIronPythonサポート IronPythonからCS+のデバッガを操作するための関数・プロパティ・クラス・イベントを提供している。詳細は付属マニュアルで確認できる

CS+とIronPythonで出来ること 手動(マニュアル)で行うデバッグ操作は、原則すべてスクリプトでも行える ブレークポイントを設定 プログラムを実行 変数の値をウォッチ(または変数値を設定) 値の確認(Python言語のIf文で確認できる) 画面キャプチャの取得(IronPythonの持つ .NET Framework連携機能で行える)

じゃあ、どうして使わないのか? Python言語を知らない(わからない) CS+の提供する関数・プロパティ・クラスを知らない(わからない) CS+から.NET Frameworkを呼び出す方法、さらに.NET Frameworkの使い方を知らない(わからない) ⇒C言語しか知らない技術者にはハードルが高い .NETなんて言葉、IT系ニュースサイトで聞いたことあるだけだよ。IronPython?CLR?なんだか難しそうだなぁ~ CS+が提供するクラス? オブジェクト指向? 名前は聞いたことあるけど、それって美味しい食べ物?

ハードルが高いから、使わない? “マニュアル操作で出来るから、まあ、いいか” ⇒この結果、テストに大量の時間が消費されていると共に、単純ミスも混入していく 人は単純作業を続けていくと、いくら精神論で「注意しろ」と指示したところで、1000回に1回くらいは間違えてしまう。それは誰しも同じ。

解決策はないのか? Python言語の習得を全員に呼び掛けてマスターさせることは非現実的。スキルを持った人間が作ればいい ⇒Excelで「やりたいこと」を設計すれば、それをPythonに落としてくれるジェネレータが欲しい!

やっと本題です IronPythonScriptGenerator.xlsがその悩み、解決します ExcelからPythonスクリプトを自動生成する (CS+を制御する部分はPythonの関数群で構成) (生成されたスクリプトの例) # # スクリプト実行開始 start_script() # No.1: コメント コメント comment("コメント") # No.2: CPUリセット cpu_reset() # No.3: ブレークポイント設定(ソフト) R_TAU0_Channel0_Start add_sw_break("R_TAU0_Channel0_Start") # No.4: ブレークポイント設定(ソフト) r_cg_timer.c#116 add_sw_break("r_cg_timer.c#116") # No.5: ブレークポイント設定(ソフト) main add_sw_break("main") ...

Excel上で直感的に自動運転を編集 ユーザはリストボックスから「やりたいこと」を選択し、パラメータを与えるだけでOK!

自動運転テストの設計例 ブレークポイント時の変数値をチェックし、画面キャプチャするテストを設計した例 ブレーク箇所を ソースファイル名#行番号 で指定するため保守性が下がるのが唯一(?)の難点か。

スクリプトの自動生成 必要事項を記入してボタンを押すだけ! ↑この部分は自動生成される

スクリプトの冒頭部分を見てみると テスト設計パラメータが埋め込まれる # coding: shift-jis # # ToolVersion: version 1.01 # Testcase: 機能テスト_A_12 # Created by: yasushi # Date: 2015/12/13 # Revision: 1 # TargetVersion: Ver.1.00 # TestDescription: ソフト起動後、g_count変数が所定の値になっていることを確かめます # CLRインポート import clr clr.AddReferenceByPartialName("System.Windows.Forms") from System.Windows.Forms import * clr.AddReferenceByPartialName("System.Drawing") from System.Drawing import * clr.AddReferenceByPartialName("System.Threading") from System.Threading import * # ライブラリインポート import os import datetime # スクリプト開始 common.ViewOutput = True print "Pythonスクリプトを開始しました" テスト設計パラメータが埋め込まれる

CS+の操作 表示(V)→Pythonコンソール(N)を選択し Excel上で表示されたコマンドを貼り付け

スクリプトを実行した例 “スクリプト実行を正常終了しました”が表示されていれば、テストにパスしている

ログファイルを覗いてみる 複数行にわたる説明が埋め込まれている [000000] 2015/12/13 19:02:02 ToolVersion: version 1.01 [000001] 2015/12/13 19:02:02 Testcase: (12130703)IronPythonScriptGenerator [000002] 2015/12/13 19:02:02 Revision: 6 [000003] 2015/12/13 19:02:02 TestDescription: サポートしているコマンドを一通り実行してみる コマンドの差異を調査する 出力結果が正しいか確認する 次期バージョンではコピー⇒形式を指定して貼り付け(値)でセットすること [000004] 2015/12/13 19:02:02 TargetVersion: 400000 [000005] 2015/12/13 19:02:02 スクリプト実行を開始します [000006] 2015/12/13 19:02:02 ブレークポイントを全て初期化します [000007] 2015/12/13 19:02:02 CPUリセットします [000008] 2015/12/13 19:02:03 ブレークポイント追加(ソフトウェア) R_TAU0_Channel0_Start (中略) [000056] 2015/12/13 19:02:14 プログラムの実行を開始します(Ctrl+Dで中断)。現在の実行中フラグ: [000057] 2015/12/13 19:02:14 False [000058] 2015/12/13 19:02:15 プログラム実行開始しました [000059] 2015/12/13 19:02:15 時間待ち 2048(ms) [000060] 2015/12/13 19:02:17 プログラム実行を強制停止します(Ctrl+Dで中断)。現在の実行中フラグ: [000061] 2015/12/13 19:02:17 True [000062] 2015/12/13 19:02:19 プログラム停止しました [000063] 2015/12/13 19:02:19 実行時間: [000064] 2015/12/13 19:02:19 2226434987nsec [000065] 2015/12/13 19:02:19 変数値を符号なし10進数で表示 r_cg_timer_user.c#g_count: [000066] 2015/12/13 19:02:19 10 [000067] 2015/12/13 19:02:19 比較( > 4 )に成功しました [000068] 2015/12/13 19:02:19 比較( <= 10 )に成功しました [000069] 2015/12/13 19:02:19 g_countが意図通り変化していることを確認 [000070] 2015/12/13 19:02:20 スクリーンキャプチャを保存しました C:\Git\Repository\Excel\(12130703)IronPythonScriptGenerator\20151213_190220_0_g_count変化.png [000071] 2015/12/13 19:02:20 メッセージボックス:スクリプトを終了します [000072] 2015/12/13 19:02:23 スクリプト実行を正常終了しました 複数行にわたる説明が埋め込まれている

画面キャプチャを見てみる 実際はスクリーン全体が保存される (説明用にCS+ウィンドウだけトリミングした)

ログファイルの自動収集・結果集計 ログファイル格納フォルダのログを自動検査 パラメータを設定して“結果集計”をクリック

“結果集計”ボタンで最新結果を得る 最も新しいログファイルを取得して判断

スクリプト/マクロの品質は? スクリプト、Excel VBAマクロ共に品質保証はされていない(実験的なレベル) 品質保証が不十分だからという理由で、今後も手動操作、人海戦術に頼るつもりですか? ⇒自動運転で浮いた時間を、スクリプト/マクロの品質確保や最終結果ログの確認に費やす方が将来的な生産性の向上につながります!

IronPythonExecutorとの連携 IronPythonExecutor.xlsは複数のテストケースを管理する、IronPythonScriptGeneratorの上流ツールです。以下の機能をサポートします サブ階層を含むGeneratorファイルの自動収集 IronPythonスクリプトの一括生成 IronPythonスクリプトの一括実行(自動運転) ⇒これらの機能により、回帰テスト(リグレッションテスト)が極めて効率的に行えます!

姉妹品:TclScriptGenerator.xlsの紹介 旧世代品にあたるHew(High-performance embedded workshop)向けのスクリプトジェネレータとして、TclScriptGenerator.xlsを開発しました。 HewではIronPython言語ではなく、Tcl/Tk言語を使用します。Hewのスクリプトサポートが弱いため、以下の制限事項があります。 変数値の監視ブレークはサポートしていません SFRの設定・表示はサポートしていません メモリ内容のファイルロードによりシンボル情報が消去されます

ご清聴ありがとうございました The End