テストの実施時って、
ターゲットが実際どのような値を取っているのかを調べることがありますよね。
そういうとき、どうされていますか?
オシロスコープや検査治具で波形・挙動を確認している
というのが一般的なのではないかなと思いますが、
でも、こういった会社で管理するタイプの備品には、たいてい数に限りがありますよね。
しかも、使うといっても
「使用申請して、デスクに持ってきて、終わったら返却手続きを…」
というのも面倒だったり。。
(日常的に使わないので使い方を忘れちゃってたり、なんてこともありますよね。)
そんなとき!
AUTOmealがお役に立ます!!
なんと波形の計測もできてしまうのです!!
少量でも欲しい栄養が摂れるオートミールのように、
少額でも欲しい機能が使えるAUTOmeal。
名前負けしてませんね!!!!
前回の「パート1:制御」の記事に続き、今回は「パート2:計測」ということで、
AUTOmealを使って制御したターゲットへの信号入力の自動計測を、
自動テスト初心者の私がやってみました!
※本連載ではAUTOmealプロトタイプを使用しています。現在発売されている製品版とは一部異なりますのでご了承ください。
CONTENTS
はじめに。前回の振り返り
前回はロジック制御/計測用のI/Fボードとアナログ制御用のI/Fボードを使用して扇風機を制御してみました!
また、Pythonで書かれたスクリプトを実行し、
電源のON/OFF切り替えたり距離センサからの距離値を変更したりしました!
連載第1回目となる前回の記事はコチラからもお読みいただけます!是非ご覧ください。
上記の記事内にある動画では、
アプリ、(Pythonを実行する)コマンドライン、ターゲット機器の様子をご覧いただけるのですが、
アプリ上にいくつかChartのタブが表示されていたかと思います。
「何か表示されてるな~」くらいに、ご興味をお持ちいただいた方もいらっしゃるのではないでしょうか?
今回はそのChartに関わる計測部分を気になる準備方法も含めてご紹介いたします!
計測の準備
それでは早速、計測の準備をしてみます。
以下の手順で実施していくのですが…
- 拡張I/Fボードの付け替え
- 設定ファイルの編集
- ファームウェアの書き込み
一瞬で終わりました!
思っていたよりも全然かんたん!
拡張I/Fボードの付け替え
今回は、ターゲットである扇風機に付いている距離センサがどのような値を取っているかを見ていきたいので、
前回記事の状態から構成をすこし変更して、アナログ計測用のI/Fボードを使います。
やりたいことに合わせてかんたんにカスタマイズできるのって、やっぱり嬉しいですね!
(取り外し時ついついピン折りがちなのでお気を付けください…。)
設定ファイルの編集
AUTOmealでは “Settings”フォルダにあるSettingファイルを編集することで、
自分の環境に合わせた設定を行うことができます。
また、”FunctionSettings.json”では、どの機能を使用するかを設定することが可能です。
今回はロジックの計測、アナログの計測をしたいため、
”LogicBoardControl” と ”AnalogMeasureBoardControl”を、それぞれtrueにしました。
ファームウェアの書き込み
開発者に使い方の説明を受けたときに、
ファームウェアの書き込みが必要だよと言われ、
え、なんか面倒そう…(´・ω・`)
と思ったのですが、
実際やることはただマネージャアプリ上でちょちょっと情報を入力するだけでした。
その他 > RaspberryPiセットアップ…(S) をクリックし、
出てきたポップアップに対して 接続するラズパイのIPアドレス、ポート、ユーザ名、パスワードを入力し、
「ファームウェア書き込み」をクリック。
これだけで完了です。
本当に設定や操作がかんたん…!!易しくて優しい!!
誰でもすぐかんたんに使えるように、学習コストも小さくすることを意識しました。
(開発者談)
ユーザ側で行う事前準備としては以上になります。
- どこまでが自分たちでカスタマイズでき、どこからがカスタマイズを依頼する必要があるのか
- 自分たちでやるとしたらどれくらい手間がかかるか
も検討材料の一つかと思うので、ご参考になれば嬉しいです!
自動計測してみた
制御と同様に、計測も手動操作、自動操作が可能です。
それぞれやってみた様子を動画でご覧ください!
UIから計測
UIから手動操作を開始した際の動画がコチラになります。
「手動操作開始」ボタンを押してから、扇風機に付いている距離センサの前で物体を近づけたり離したりしました。
それに合わせて画面下のADCChartFormの波形が上下しているのが確認できます。
(画面上側には前回同様にロジックの波形が表示されています。)
最初チャートで表示する時間軸が細かくて見づらかったので、ショートカットキー(I)で拡大しました(縮小はO)。
こういうところが絶妙に使いやすくてありがたいです。
Pythonスクリプトを使用した計測
先ほどはアプリで波形がどのように表示されているかだけをご覧いただきましたが、
下の動画ではPythonスクリプトを実行し、コマンドライン上で実際の値も見られるようにしました。
(距離センサへの入力は手動で物体を近づけたり離したりしました。)
波形の動きに対応した値が表示されているのが確認できます。
以下は使用したスクリプトの抜粋です。
(今回は動画撮影のために無限ループで取得した値を表示するようにしています。)
!/usr/bin/env python3
import asyncio
from asyncio.tasks import sleep
from logging.handlers import WatchedFileHandler
import time
from xmlrpc.client import TRANSPORT_ERROR
import lib.test_manager as tm
import subprocess
from lib.TestLogger import *
### GPIOのON/OFFのチェックに使用
ON = 1
OFF = 0
MEASURE_TIME_MS = 10 #<計測時間
WAIT_TIME_MS = 1 #<待機時間
LOOP_NUM = int(MEASURE_TIME_MS / WAIT_TIME_MS)
async def main():
try:
### TestLoggerの初期化
### Logファイル名を変更する場合は第1引数を変更する
tlog.Setup(“pythonLog.log”,__name__)
### TestManagerの起動をPythonから行う場合コメントを外す
###サンプルではLicense確認Messageのため、アプリ起動後20秒程度Waitを入れてください#subprocess.Popen(“../TestManager.exe”)
#time.sleep(20)
tlog.info(‘===== テストシナリオを開始します。 =====’)
tlog.info(‘テストを開始します。’)
### 自動テストを開始
tm.start()
### 初期化
### PWM1,2の出力停止
tm.pwm(‘PWM1’, 1, 0)
tm.pwm(‘PWM2’, 50, 6)
### GPIOをLowに設定
tm.key(‘GPO_17’, False)
tm.key(‘GPO_22’, False)
tm.key(‘GPO_5’, False)
tm.key(‘GPO_6’, False)
#########
#
# テスト内容を記述
#
#########
# 1s待機
time.sleep(1)
tlog.info(‘電圧値の計測を開始します。’)
loop_count = 0
while (1):
value = tm.get_adc_input(‘adc1’)
tlog.info(‘入力電圧値: ‘ + str(value))
loop_count += 1
time.sleep(WAIT_TIME_MS)
### Testのエラーが発生した場合の処理
except tm.TestError as e:
#########
#
# テストエラー時の処理を記述
#
#########
tlog.error(e)
### AUTOmealライブラリ以外の例外が発生した場合の処理
except Exception as e:
tlog.error(‘Pythonの 例外が発生しました。’)
tlog.error(e)
コマンドライン上に表示されていた計測結果はpythonLog.logでも確認できます(計測のたび随時更新)。
今回表示しているのは1ポートのみですが、AnalogMeasureBoard1枚で最大8ポートまで計測が可能です。
(開発者談)
自動計測してみた感想
今回はアナログの計測をメインでやってみました。
前回同様、やることが少なくかんたんでした!
個人的にいいなと思ったのが、簡易的なオシロスコープなど、欲しい機能が備わっているところ…
というのもそうなのですが、
その機能を使うまでの設定がかんたんだったり、機能自体が使いやすいところでした。
ツールって、
汎用性が高過ぎると、特定のターゲットに対する個別設定が煩雑になって
「こういうことするときにどこをどう設定する必要があるんだっけ」
ってなったり、
機能が豊富過ぎると、使いたいものをぱっと使うことができなくなりがちで
「あの機能使いたいんだけど、どこのタブから行けばいいんだ…。」
となるイメージがありました。
その点、
AUTOmealは必要な機能が備わっていながら、シンプルさも持ち合わせているので
とても使いやすいツールだなと感じました。
(´-`).。oO やさしさを感じる
本当に期待しかないですね!!!
最後に
いかがでしたか?
実機を動かすテストでは実際の波形を計測して、結果判定する必要があるため、
テスト自動化の課題の一つだったのではないでしょうか?
AUTOmealでは、計測も自動で実施してくれます。
動画内でもご覧いただきましたが、計測した波形を見える化してくれるため、
今までわざわざ用意していたオシロスコープや検査治具を用意する手間も省けます。
アプリでここまでできるのは嬉しいですね!
さあ、自動制御、計測とやってきましたが、
次回はついに!
計測したデータに基づいた結果判定を実施します。
是非お楽しみに!!
最後までお読みいただき、ありがとうございました!
「パート3:判定」はコチラ!
「制御」「計測」に続き、第3回目は満を持して「判定」を行います!今回も自動テスト初心者の私がやってみました!
(もうこれで「自動テスト経験者」にステップアップしてもいいでしょうか)
パート3:判定編
テスト自動化ツールまとめ
~どれを使えばいいのか書いてみた~
年々、大規模化するソフトウェア開発。品質に対する要求レベルも上昇しており、テストにかかる工数も増加しています。そこで、自動化へ一歩踏み出す皆さんが導入からつまずかないよう、テスト自動化の始め方と自動化ツールについてまとめてみました。
記事を読む
【好評御礼!無料のウェビナー!】
近年の組込み機器開発の現場では「テスト自動化」が進んでいます。
しかし、いざ自動化に取り組もうとしても、
「具体的な実現イメージが湧かない・・・」
「テストケースの作成段階では作る人によってバラつきが出てしまう・・・」
「ターゲットごとのテスト環境の構築が大変・・・」
といった課題をお持ちの方は多いのではないでしょうか?
そこで今回のセミナーでは、
お手持ちのラズパイを使って「かんたんに」「低コストに」テスト自動化環境の構築を実現できる
「AUTOmeal(オートミール)」をご紹介します!