テストの実施時って、
ターゲットが実際どのような値を取っているのかを調べることがありますよね。

そういうとき、どうされていますか?

オシロスコープや検査治具で波形・挙動を確認している

というのが一般的なのではないかなと思いますが、
でも、こういった会社で管理するタイプの備品には、たいてい数に限りがありますよね。

しかも、使うといっても
「使用申請して、デスクに持ってきて、終わったら返却手続きを…」
というのも面倒だったり。。
(日常的に使わないので使い方を忘れちゃってたり、なんてこともありますよね。)

そんなとき!
AUTOmealがお役に立ます!!
なんと波形の計測もできてしまうのです!!

少量でも欲しい栄養が摂れるオートミールのように、
少額でも欲しい機能が使えるAUTOmeal。
名前負けしてませんね!!!!

前回の「パート1:制御」の記事に続き、今回は「パート2:計測」ということで、
AUTOmealを使って制御したターゲットへの信号入力の自動計測を、
自動テスト初心者の私がやってみました!

 

はじめに。前回の振り返り

前回はロジック制御/計測用のI/Fボードとアナログ制御用のI/Fボード、パルス制御/計測用のI/Fボードを使用して、
ボタンやファン、フィンが載っているデモボードを制御してみました!

Pythonで書かれたスクリプトを実行し、ファンの風量を切り替えたり温度センサの値を変更したりしましたね!

連載第1回目となる前回の記事はコチラからもお読みいただけます!是非ご覧ください。

上記の記事内にある動画では、
命令を出したときのアプリの様子、その際のターゲット機器の様子をご覧いただけます。
前回は制御(信号出力)の様子をご覧いただきましたが、今回は計測(信号入力)の様子をご確認いただければと思います。

 

計測の準備

それでは早速、計測の準備をしていきます。

トライアルセットでは必要な拡張I/Fボードは全て載せた状態になっているため、
ハードウェア関連の設定は、どのI/Fボードを使用するかをアプリ上で選択するだけです。

前回はアナログ計測用のI/Fボードを使用しない設定にしていましたが、
今回は、ロジック制御/計測用のI/Fボードとアナログ計測用のI/Fボード、パルス制御/計測用のI/Fボードを有効にします。

これだけで完了です。
本当に設定や操作がかんたん…!!易しくて優しい!!

一つ一つの設定や操作がかんたんで使いやすいです。

誰でもすぐかんたんに使えるように、学習コストも小さくすることを意識しました。
(開発者談)

ユーザ側で行う事前準備としては以上になります。

  • どこまでが自分たちでカスタマイズでき、どこからがカスタマイズを依頼する必要があるのか
  • 自分たちでやるとしたらどれくらい手間がかかるか

も検討材料の一つかと思うので、ご参考になれば嬉しいです!

 

自動計測してみた

制御と同様に、計測も手動操作、自動操作が可能です。
やってみた様子を動画でご覧ください!

距離センサでは、距離値の元となる電圧を取っているため、アナログ計測用のI/Fボードを使用してその電圧値を計測します。
LEDは、距離値に応じて点灯/消灯するようになっているため、ロジック制御/計測用のI/Fボードを使用してHi/Loを計測します。
フィンは、一定周期で角度を変えるように動いているため、パルス制御/計測用のI/Fボードを使用してそのデューティー比を計測します。

UIから計測

UIから手動操作を開始した際の動画がコチラになります。
「手動操作開始」ボタンを押してから、ターゲットデモボードに付いている距離センサの前で物体を近づけたり離したりしました。
それに合わせて画面下のMultiWaveformの波形が上下しているのが確認できます。

最初MultiWaveformで表示する時間間隔が細かくて見づらかったので拡大しました。
直感的な操作でやりたいことができる。
こういうところが絶妙に使いやすくてありがたいです。

Pythonスクリプトを使用した計測

先ほどはアプリで波形がどのように表示されているかだけをご覧いただきましたが、
計測の際のPythonスクリプトの例は以下です。
使用するAPIも分かりやすく、かつPythonでの記述のため、やはりハードルが低く感じられます。

import automeal as am
import time

###
#ロジック入力
###

# GP10計測ch1に繋がっているLEDが消灯していることを確認します。
# 計測ch1 がLowか確認します。
print(“Level LED の赤いランプが消灯していることを確認します。”)
am.read_logic_rpigp10(“Board1”,1)

# 待ちを行います。
time.sleep(0.5)

###
#アナログ入力
###

# 距離センサから取得した電圧値を計測します
print(“Board2 (アナログ入力ボード)の入力ch1 の計測を行います。”)
result_analog = am.read_analog_cpiai1208li(“Board2”, 1)
print(“電圧値:%dmV”%(result_analog))

# 待ちを行います。
time.sleep(0.5)

###
#PWM入力
###

# フィンからの入力を計測します。
print(“Board3 (PWM入出力ボード)の入力ch1 の計測を行います。”)
result_duty,result_freq = am.read_pwm_ampio(“Board3”, 1)
print(“実行時の計測値は以下でした。”)
print(“周波数:%dHz”%(result_duty))
print(“デューティー比:{:.1%}”.format(result_freq/100))

# 待ちを行います。
time.sleep(0.5)

アプリ画面上に表示される計測結果はOutputLog.logでも確認できます。

これで一度アプリを閉じてしまっても確認できますね。

また、テスト実行時のMainWaveformの様子も後から確認することができます。
アプリ画面からZip化されたテスト結果を読み込むことで、かんたんにテストの開始から終了までの波形を確認可能です。

今回表示しているのは1ポートのみですが、アナログ入力ボード、ロジック入出力ボード各1枚で
それぞれ最大8ポートまで計測が可能です。
パルス入出力ボードは最大16ポートまで計測が可能です。
(開発者談)

 

自動計測してみた感想

今回は計測をメインでやってみました。
前回同様、やることが少なくかんたんでした!
個人的にいいなと思ったのが、簡易的なオシロスコープなど、欲しい機能が備わっているところ…

というのもそうなのですが、
その機能を使うまでの設定がかんたんだったり、機能自体が使いやすいところでした。

ツールって、
汎用性が高過ぎると、特定のターゲットに対する個別設定が煩雑になって
「こういうことするときにどこをどう設定する必要があるんだっけ」
ってなったり、

機能が豊富過ぎると、使いたいものをぱっと使うことができなくなりがちで
「あの機能使いたいんだけど、どこのタブから行けばいいんだ…。」
となるイメージがありました。

その点、
AUTOmealは必要な機能が備わっていながら、シンプルさも持ち合わせているので
とても使いやすいツールだなと感じました。

(´-`).。oO やさしさを感じる

本当に期待しかないですね!!!

 

最後に

いかがでしたか?

実機を動かすテストでは実際の波形を計測して、結果判定する必要があるため、
テスト自動化の課題の一つだったのではないでしょうか?

AUTOmealでは、計測も自動で実施してくれます。

動画内でもご覧いただきましたが、計測した波形を見える化してくれるため、
今までわざわざ用意していたオシロスコープや検査治具を用意する手間も省けます。
アプリでここまでできるのは嬉しいですね!

さあ、自動制御、計測とやってきましたが、

次回はついに!
計測したデータに基づいた結果判定を実施します。
是非お楽しみに!!

最後までお読みいただき、ありがとうございました!

テスト自動化ツールまとめ
~どれを使えばいいのか書いてみた~

年々、大規模化するソフトウェア開発。品質に対する要求レベルも上昇しており、テストにかかる工数も増加しています。そこで、自動化へ一歩踏み出す皆さんが導入からつまずかないよう、テスト自動化の始め方と自動化ツールについてまとめてみました。
記事を読む

【 無料セミナー 】
組込み開発向けテスト自動化プラットフォームAUTOmeal デモウェビナー

AUTOmealによる環境構築から実際の自動テストの様子まで、基本的な使い方をデモンストレーションいたします。ぜひ実動作をご覧いただき、その効果をご確認ください。

お申し込みはこちら!