先日公開したATestCovの使い方の一例紹介です。組み合わせテストツールATestCovを公開 - 千里霧中ATestCovでは、実行時引数「--info」(-i)の付与で、テストケースで網羅できていないパラメータ組み合わせを検出できます。 実行例として、以下のファイルを入…
組み合わせテスト設計の補助用に、nワイズカバレッジを計測する簡易的なツールATestCovをリリースしました。ATestCovユーザマニュアル リリースページツールの想定用途は、既存のテストケースの網羅度チェックや、組み合わせのばらつきの評価です。計測対象…
テストでは観点という言葉が時々使われています。ただ結構曖昧な用語なので、議論すると話が発散しがちな印象を持っています。 そこでは体系だった標準を土台にすると発散を軽減できる場合があるのですが、テストの観点を語る上で使えそうな標準として、ISO/…
最近、FMPictというテスト設計自動化ツールを作りました。https://github.com/hiro-iseri/fmpictFMPictは、FreeMindのモデルからテストケースを生成するテスト設計自動化ツールです(PICTを制御して実現しています)。nワイズカバレッジ(n:1~3)を100%網羅す…
ソフトウェアテストの小ネタ Advent Calendar 2017 - Qiitaの7日目の記事です。テスト業務でFreeMindを使っている現場をちらほら見ます。このFreeMindについてですが、中身はテキストベースのXMLフォーマットなので、容易に読み出しや変更を行えます。XMLパ…
去年からU30テスト設計コンテストというコンテストイベントで、審査委員長をやらせて頂いています。今コンテストへの出場応募中ということで、今回その宣伝をしたいと思います。 テスト設計コンテストとは テスト設計コンテストは、ASTERが開催しているテス…
最近自分の周りで「テスト戦略とは何か」という議論をちらほら見ます。それを見ていて、世の中のテスト本ではどのような定義で「テスト戦略」の言葉を使っているか気になりました。 そこで今回、テスト戦略について解説のある書籍を、概要とともにリストアッ…
並行処理での優先度逆転の回避や効率性改善の実現手段として、優先度上限プロトコルがあります。優先度上限プロトコルは、リソースをロックしたプロセスの優先度を上限値に引き上げる仕組みです。 今回はTOPPERS/ASP3での実装を例に、簡単な解説を書きたいと…
POSIXスレッドを使用する場合で、複数のスレッドを一斉にブロック解除させる方法についてまとめます。 今回は、割と課題になりがちな、スレッドの開始制御について扱います。POSIXでは、この開始時におけるタイミング同期の一斉制御は少し面倒になります。pt…
pythonでは、ドキュメントとして書かれたコメントと、実際の動作が一致するか確認する手段として、doctestを標準で提供しています。 題材として、大まかな動作の説明をdocstringに書いた、以下のhoge()という簡単なメソッドを扱います。 # coding:utf-8 # sa…
組み込みのモデリングツールとして一般的なEnterprise Architectのファイルは、zipファイルとして解凍すると、テキストベースのXMLとして、モデルデータの各種解析や編集が可能になるのが一部で知られています。 一方で同じく組み込み一般的なAstah*の方は、…
これは ソフトウェアテスト Advent Calendar 2016 - Qiita の4日目の記事です。 C++では、C++11から以下の言語仕様が追加されました。 ・違反するとコンパイルを失敗させる表明構文:static_assert ・指定対象をコンパイル時に処理させる指定子:constexpr …
以下でツリーモデルで物事を分析する難しさが少し触れられていたので、ツリーモデルの記法上の制約について書きたい(一応の前置きとして、今回書くのは主に記法上の制約のみで、ツリーによる分析の進め方にはあまり言及しない)。http://togetter.com/li/1047…
組み込み向けのUML解説本で、概念モデルのクラスの識別をどのように行っているか、今回まとめた。 まとめた本は以下の本+α。組み込みUMLの技術書5冊と、組み込みではないが、クラス識別に関する名著(オブジェクトデザイン、実践UML、ユースケース駆動開発…
オブジェクト指向の定番の入門書OOSCでは、オブジェクト指向と契約プログラミングの間に密接な関連付けを行っている。例えば継承によってメソッドをオーバーライドする場合では、Assertion Redeclaration ruleとして以下を示している。 事前条件は、継承元と…
ソフトウェアのモデル駆動開発ツールの一つに、Stateflowがある。Stateflowは、MATLAB/Simulink上で状態遷移モデルと制御フローモデルを動かすための環境に該当する。 この環境、母体となるMATLAB/Simulinkが組み込み制御システムならあらかたシミュレートで…
自分の組み込み業界ではやたらExcelが多くて、Excelドキュメントのレビューの機会が度々ある。その中には、ファイル間のトレーサビリティ目視チェックといった、時に刺身タンポポと揶揄されるような気の滅入る作業も少なくない。 こういった作業は、周知の通…
最近、RL78/G13 Stick評価ボード(*)を購入した手始めに、定番のLチカを行ったので手順をメモ。 環境構築 ソフトウェアの方は、ルネサスのサイトからCS+ for CA,CXをダウンロード・インストール。また評価ボードのマニュアルに従って、評価ボードのデバイスド…
最近公開されたTOPPERS/ASP3については、Mac OS Xでのシミュレーション環境がいち早く公開されている。今回はそのビルド・実行方法と、簡易的なタスクの実装方法についてまとめる。 シミュレータの実行 ダウンロード 以下から「Mac OS Xシミュレーション環境…
組合せテストツールのPICTの解説で、表題についてよく聞かれるのでメモ。PICTについては、専用のバイナリファイルで配布されていたこともあり、今までWindowsで使用されてきた。 ただ去年からGithubでオープンソース化され、gccやclangで自由にビルドできる…
C/C++でのユニットテストによるメモリリーク検出 - 千里霧中の補足。メモリエラーの検出方法についてだけれど、最近のclangやgccだと、AddressSanitizerという動的解析ツールが組み込まれており、それを活用できる。使用する場合はコンパイラオプション「-fs…
TPI NEXTについて、日本語化を期に実践し始めているのと、現在TPI NEXT入門ワークショップを作っている背景から、最近、知識確認としてその資格試験であるファンデーション試験を受験した。 この試験、日本語で情報がほとんどなかったので今回参考までにまと…
先日、アイティメディア主催の「開発スピードと品質の両立実践法」というイベントにて、インタビュー形式の基調講演と、パネルディスカッションに登壇させていただきました。 https://itmedia.smartseminar.jp/public/seminar/view/723イベントのテーマは「…
VimにおけるVerilog開発環境については、ここ数年で色々なプラグインが標準サポートしてきた。 整理のために、今回はVerilog関連のプラグインの設定を少しまとめたいと思う。 スニペット 今年になって、neosnippetsがVerilogを標準サポートしている。 neosni…
PyAutoGUIがシンプルでかなり使いやすかったのでメモ。 PyAutoGUIは、GUIの自動操作をサポートするPython用ライブラリ。マウス操作、キーボード操作、スクリーンキャプチャ、指定した画像のマッチングと座標取得などの機能を提供する。シンプルだけれど、自…
MPLABでシミュレータを自動操作する手段にSCL(Stimulus Control Language)のスクリプトがある。 このスクリプトはIDEで設定して自動生成することが多いけれど、手書きで作成することも可能だ。スクリプトの記述力は十分とは言えないものの、ファイル操作・…
Mac向けのSPICEとしてMacSpiceというものがあるが、これが結構良かったので使い方を簡単にまとめたい。 題材として今回はローパスフィルタ回路のシミュレーションをする。 題材 今回はローパスフィルタ回路として、単純なRC回路とRLC回路を対象に、周波数特…
Pythonでのやや複雑な単回帰分析について。今回は書籍「データ指向のソフトウェア品質マネジメント」を題材にやってみる。Pythonでの記述は*を参考にした 分析データとしては、書籍での「テスト工程での不具合検出数の予測」にて提供されているCSVデータを…
先日、WACATE2014冬というテストの合宿勉強会にて、テスト設計手法の一つであるクラシフィケーションツリー法を解説させていただきました。 クラシフィケーション・ツリー法入門 from H Iseri クラシフィケーションツリー法は国内ではあまり知られていない手…
少し前の話ですが、レガシーコード改善勉強会というイベントで登壇させていただきました。 内容としては、自分の組み込みと少し離れた場ということもあり、普遍的なレガシーコードとの扱い方について話させて頂きました。 レガシーコードとの付き合い方とテ…