このブログについて

ソフトウェア開発におけるエラーの予防やプロジェクト管理、品質管理を支援するParasoft製品のTIPSなどを、国内総販売代理店テクマトリックスのサポートスタッフが紹介しています。

2015年1月8日木曜日

[C++test][dotTEST]大阪ハンズオンセミナー開催中!

Parasoft社製テストツールを使用して、効果的なテストノウハウとテストツールの有効性を知っていただける無償のハンズオンセミナーを東京会場のほか、大阪会場でも開催を予定しております。

東京は遠方でなかなか参加できなかった皆様、この機会に是非大阪開催のハンズオンセミナーにご参加ください。


【大阪開催】C++test 単体テスト「実践」セミナー
■概要
ツールで行うテスト効率化!単体テスト「実践」セミナーは、C++testの機能の中でも特に単体テスト機能にフォーカスしたセミナーです。
単体テストがメインとなる実践的な演習をご用意しております。 詳細はこちら

■開催日
2015年1月16日(金)13:30~17:30 (開場 13:20)
2015年2月4日(水)13:30~17:30 (開場 13:20)
2015年3月4日(水)13:30~17:30 (開場 13:20)

■会場
テクマトリックス(株)大阪支店 セミナールーム アクセス方法

C++testハンズオンセミナー大阪 参加お申し込みはこちら



※C++testとは
C/C++プログラムの単体テスト、静的解析、フロー解析、実行時メモリエラー検出を自動化する総合的なテストツールです。
ソフトウェア開発におけるテスト工数の大幅削減を実現します。

------------------------------------------------------

【大阪開催】dotTEST 静的解析、単体テスト体験セミナー
■概要
dotTESTの操作性を体感でき、かつテストツールの有効性を知っていただけるハンズオン形式のセミナーです。
サンプルコードを用いて、dotTEST の基本機能である静的解析と単体テストの操作方法と効率的な使用方法をご説明します。 詳細はこちら

■開催日
2015年1月15日(木)13:30~17:30 (開場 13:20)
2015年2月3日(火)13:30~17:30 (開場 13:20)
2015年3月3日(火)13:30~17:30 (開場 13:20)

■会場
テクマトリックス(株)大阪支店 セミナールーム アクセス方法

dotTESTハンズオンセミナー大阪 参加お申し込みはこちら


※dotTESTとは
C#/VB.NETで開発されたアプリケーションの単体テストに必要なテストドライバ、テストスタブ、テストケースを生成し、単体テストの自動実行と、実行時例外やエラーを検出します。またソースコード上の脆弱性を効率的に検出し、セキュアなアプリケーション開発を実現します。

------------------------------------------------------

システムエンジニアリング事業部が主催するその他のセミナーはこちら

2014年12月19日金曜日

C++test 新バージョン リリース!

C言語/C++言語対応テストツール 「Parasoft C++test 9.5.4」をリリースいたしました。
多くのお客様からご要望をいただいておりましたIAR Compiler for RXをはじめ、サポート環境を拡充しております。


IAR Compiler for RXのサポート

機能安全規格への取り組みが広がる中、TÜV SÜDより認証された開発ツールへの関心が高まっています。

IARシステムズ社のルネサス RX用 IAR Embedded Workbench は、IEC 61508およびISO 26262に基づき認証された機能安全バージョンがリリースされており、今後ニーズが高まっていくことが予想されます。

こうした状況の中、C++test 9.5.4では、IAR Compiler for RXを正式サポートいたしました。

C++testは、ルネサス RX用 IAR Embedded Workbench のプロジェクトをインポートできるため、簡単に静的解析、単体テストを実施することができます。

サポート環境の拡充

IAR Compiler for RXのほか、以下がサポート環境に加わりました。

<IDE>
・Microsoft Visual Studio 2013
・Eclipse 4.3 Kepler

<コンパイラ>
・Microsoft Visual C++ 2013(12.0)
・GNU gcc/g++ 4.8.x、4.9.x
・Renesas HEW M16C/R8C C Compiler
・Green Hills MULTI C/C++ Compiler for PowerPC
・Green Hills MULTI C/C++ Compiler for INTEGRITY on PowerPC
・Texas Instruments CCS ARM C/C++ Compiler
・ARM C/C++ Compiler for uVision

最新の稼働環境一覧については、こちらをご覧ください。

※C++testはインストールしたホストマシンだけではなく、マイコンベンダーが提供するシミュレーターや、実機(ターゲット機)でも単体テスト、カバレッジ計測が可能です。 また、クロスコンパイラを使用した静的解析も行うことができます。

稼働環境一覧に含まれていないマイコンについては、個別でのご相談も承っておりますので、ぜひお問い合わせください。

C++testの機能概要は以下をご覧ください。

・単体テスト
  http://www.techmatrix.co.jp/quality/ctest/unittest/index.html
・コーディングルールチェック
  http://www.techmatrix.co.jp/quality/ctest/staticanalysis/index.html
・フロー解析
  http://www.techmatrix.co.jp/quality/ctest/bugdetective/index.html
・実行時メモリエラー検出
  http://www.techmatrix.co.jp/quality/ctest/memoryanalysis/index.html


無償体験版をお試しください

ほかにも、「Parasoft C++test 9.5.4」では、MISRA C 2012をはじめとする約80個のコーディングルール追加や、ISO 26262対応で要求される「関数カバレッジ」の対応等、さまざまな機能拡張が行われています。

これらの機能は、無償体験版にてご確認いただけます。

まだC++testをご利用いただいていない方は、この機会にぜひお試しください。

※本文中に記載されている製品名、および社名はそれぞれ各社の商標または登録商標です。


最新版のC++test 9.5.4体験版ダウンロードは ↓ こちら ↓です。


 技術資料請求

2014年12月12日金曜日

第1回:Webアプリのテスト自動化は、なぜ失敗するのか?

世の中には、Webアプリケーションの機能テストおよび、システムテストの自動化をサポートするツールが存在します。しかし、これらのツールを使用しても、テストの自動化が上手く運用できなかった方が多いのではないでしょうか?

問題は、「テストシナリオのメンテナンスの難しさ」にあり、問題に対して、以下の課題が挙げられます。
今回は、これらの課題に対する対策について、紹介します。


  課題1 : 画面の構成が変わるたびに、シナリオを修正する必要がある

  課題2 : 画面数や、ブラウザのサポート数に比例して、テストシナリオの数や長さが大きくなる

  課題3 : テストシナリオがコード(Javaなど)で管理される場合、運用できる人が限定される

  課題4 : テストを行うための環境(DBの初期化、システムの更新)が必要となる


-------------------------------------------------------------------------------------------------------
 ◆◇◆   画面の構成が変わるたびに、シナリオを修正する必要がある   ◆◇◆
-------------------------------------------------------------------------------------------------------

◆ 課題
開発の中で、画面構成の変更の度に、テストシナリオの修正が必要となる場合、修正に手間がかかり、テスト自動化の恩恵が受けられなくなります。

一般的にテストツールを使用した場合、Webの操作は、HTMLの要素(または、XPath)で制御されますが、画面構成の変更の度に、この要素を修正するには、効率的とは言えません。



◆ 原因
画面構成の変更により、HTMLの要素が変わることで、テストツールで制御していた要素が特定できなくなります。このようなケースは、XPathでオペレーションが記録された場合も、同様に起こります。

以下は、画面構成によって、属性値が変わった(「ショッピングカートに入れる」 ⇒ 「ショッピングカートに追加」)ことにより、ボタンがクリックできなくなります。



◆ 対策
要素を一意の情報で制御することで、画面の構成に変更があったとしても、テストシナリオを修正することなくテストを継続できます。

以下のように、要素の属性にid(または、name)を指定することで、画面の構成要素を一意の情報で制御できます。


テストツールを使用し、テスト自動化を行うためには、ただテストシナリオを作成して、実行すれば良いだけではなく、テストの自動化を想定したアプリケーションを設計することも重要となってきます。


◆ テストツールによる対策!
以下、SOAtestのテストツールを使用した、対策方法についてご紹介します。

※ 静的解析ルールによる、HTMLの属性値の確認が可能!
WebアプリケーションのHTMLの要素に対して、idおよび、name属性が一意の値として振られているかをチェックするためのルールを使用し、確認を行うことができます。



保守性レポートによる、テストシナリオの確認が可能!
テストツールによって生成されたテストシナリオに対して、画面構成の変更により、テストシナリオが動作しなくなる可能性がある箇所をレポートします。




次回予告
-----------------
次回は、2つ目の課題である『画面数や、ブラウザのサポート数に比例して、テストシナリオの数や長さが大きくなる』の対策について紹介します。


 体験版ダウンロード
-----------------------------
http://www.techmatrix.co.jp/quality/download/index.html#soatest

2014年11月17日月曜日

2014年12月5日開催 お客様が語る実践セミナー 高信頼性システムソフトウェア開発への取り組み方




医療機器・車載機器・産業機械・航空宇宙機器などに使用されるシステムには高い信頼性と安全性が求められます。
そして、このようなクリティカルシステム(高信頼性システム)の開発従事者には国際規格に準拠するレベルのソフトウェア品質および安全性を達成するためのスキルが求められています。


一方で開発現場からは、

「規格対応セミナーに参加して規格の要求事項はどうにか理解できたものの、実際の現場で何からどう手をつけたらよいのかが分からない。」
 
「高信頼性システムへの取り組み方として、より実践的な内容が知りたい。」

という声も聞かれます。


そこで、今回はソニー株式会社メディカル事業ユニットの前田 宗泰様をお招きし、「開発者個々のスキルアップ」と「ソフトウェアエンジニアリング」の観点から現実的で効果的なクリティカルシステム(高信頼性システム)開発への取り組み方についてご講演いただきます。

また、テクマトリックスからはソフトウェアエンジニアリングの中でもソフトウェア品質確保における効果的なテスト方法にフォーカスし、その実施における課題と対応策について実例を交えながらご紹介いたします。


○医療機器・車載機器・産業機械・航空宇宙機器をはじめとしたクリティカルシステム (高信頼性システム)のソフトウェア開発に携われている方

○表面的な規格対応にとどまらず、高品質・高信頼性システムの開発のために、実務レベルでのプロセスの整備・改善、スキル向上を目指したい方

特にこれらに当てはまる方には、実践的な情報が得られる内容となっておりますので、是非参加をご検討ください。





━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
◆セミナー概要
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【開催日程】2014年12月5日(金)13:30~17:00 (開場:13:10)

【会場】東京コンファレンスセンター品川東京都港区港南 1-9-36 アレア品川 4F 406

【参費用】無料

【定員】80名(定員になり次第締め切らせていただきます。)
    ※ご同業の方の参加はご遠慮いただいております。


【講演①】
クリティカルシステム開発は
ソフトウェアエンジニアリングの個人メドレー!?
~結果を左右する基礎固めとは?~

【講師】
ソニー株式会社 メディカル事業ユニット 信頼性保証部門プロセスマネジメント部
前田 宗泰 様


【概要】
クリティカルシステムソフトウェア開発における規制や規格は、分野が異なってもソフトウェアエンジニアリングをベースにしている点は共通です。また安全性実現のために実質的に開発者には個人メドレーの如く、多くのスキルを要求するものとなっています。
一方で開発現場では具体的にどのように取り組めばよいのか答えを見いだせていないことが多くあります。
そこで今回は、開発者のスキルとソフトウェアエンジニアリングにフォーカスし、好ましい習慣としての“お作法”をキーワードに現実的で効果的な取り組み方をご紹介いたします。

--------------------------------------


【講演②】
ソフトウェアエンジニアリングの基礎への取り組み
~成果を出す静的解析・単体テストの実施法~

【講師】
テクマトリックス株式会社 ソフトウェアエンジニアリング技術部
渡辺 征一

【概要】
ソフトウェアエンジニアリングの基礎の中でも重要になるのが静的解析と単体テストです。
これを効率的に実現するために様々なツールが存在しますが、開発現場で運用に乗らないということをよくお聞きします。運用に乗らない主な原因は、各開発者の必要なスキルが不足していることや各開発者が好ましい習慣を身につけるためのプロセスの見直しができていないことにあります。
そこで、スキルやプロセスの見直し方法をはじめ、そこで洗い出される課題への対応策について具体的な事例を交えご紹介します。



 ※内容は、変更する場合がございます。あらかじめご了承ください。


【申込方法】お申し込み受付ページからお申し込みください。

2014年11月7日金曜日

C++testの便利な使い方


今回のテーマ:無限ループの単体テスト

皆さん、単体テストしてますか?

今回は、すこし稀な話題かもしれませんが、無限ループの単体テストについて取り上げてみたいと思います。

皆様のご存じのとおり、無限ループのある関数に対して単体テストをうまく実施することはできません。 テスト対象の関数が終了し、実行後の状態を確認しないと単体テストは完了とならないからです。

今回の記事では、C++testを使って無限ループの単体テストを行う方法をご紹介します。


どうして無限ループの単体テストができないのか?

関数単位で実行される単体テストは、

  1. 事前状態の設定
  2. 関数の実行
  3. 事後状態を確認

というような構成をとります(このような構成は、ホーアトリプルと呼ばれます)。

関数の実行による状態の変化、つまり事後状態を確認することで単体テストは完了します。

そのため、関数内の処理が無限ループに入ってしまうと、事後状態を確認することができず、単体テストは成立しないのです。

そのまま実行してもタイムアウトしてしまう・・・



C++testでは無限ループなどでテスト対象の処理が終わらない場合、タイムアウトでテスト失敗とみなします。(そのほかのツールではテストの実行がハングアップしてしまうかもしれません。)

そのため、無限ループするソースコードについては、レビューをしっかり行い単体テストは省略するという選択肢をとる場合もあります。

しかし、実際の開発現場では、ループ内の処理を確認したい、コードカバレッジを計測したい というケースがあるでしょう。

そうなると、どうにかして無限ループの単体テストを実施しなければなりません。

無限ループへの対策

では、無限ループのある関数をテストするにはどうしたらよいのでしょう?

よく見かけるのは、
  1. #ifdefで一時的にループを排除する
  2. ループを抜けるための変数を用意する(デバッガで変数を書き換える)
というような方法です。

すでに皆様の中にもこのような方法をとっている方がいるかもしれません。もちろん、それでテストが実施できていれば問題はありません。

ただ、1番目はソースコードが煩雑になりますし、2番目については、テストを自動化することができません。

そこで、登場するのが、

3. 「無限ループ用のC++test マクロを使う」


です。


無限ループの単体テストに対応するためのマクロ - C++test ユーザーズガイドより
名前
説明
CPPTEST_REGISTER_JMP(expression)
setjmp または sigsetjmp を使って内部的なジャンプ バッファーを設定し、渡される式を評価します。 CPPTEST_JMP API の呼び出しを使ってバッファーにジャンプすることができます。通常このマクロはテスト ケースの内部で使用され、テスト対象関数への呼び出しをラップします
CPPTEST_JMP (value)
longjmp の呼び出しを実行します (longjmp または siglongjmp 使用されます)。実行ステータスを最新の CPPTEST_REGISTER_JMP の呼び出しに戻します。通常このマクロはスタブの中で使用され、整数の引数を受け取ります。この引数は cpptestGetJmpReturn 関数によってテスト ケース内で返却されます。引数を使って、実行されるジャンプの正しさを検証できます 。
int CDECL_CALL cpptestGetJmpReturn();
最新の CPPTEST_JMP の呼び出しの戻り値、つまり longjmp/siglongjmp の引数を返します。これは setmp/sigsetjmp からの戻り値です。

これらのマクロを使うと、テスト対象のソースコードに手を加えることなく、無限ループの単体テストを実施することができます。

無限ループ用のC++testのマクロの利用イメージ


テストケースの実装例

ぜひご活用ください!

今回は、無限ループに関する、C++testの便利な使用方法をご紹介しました。

ご紹介したマクロについては、サンプルコードがC++testのマニュアルに記載されておりますので、あわせてご活用ください。

また、ユーザ様向けに、FAQサイトの公開もおこなっております。そちらもぜひご利用ください。


C++testをご利用いただいていない方は、この機会にぜひお試しください。

無償体験版ダウンロードは↓こちら↓です。



 技術資料請求


テクマトリックスではツールのご提供のみにとどまらず、導入前の支援から、導入開始時における開発者向けのトレーニング、CI(継続的インテグレーション)環境構築など、運用に乗せるための様々なサービスも実施しています。

ご興味のある方は、お気軽にお問い合わせください。

2014年10月21日火曜日

セミナー情報「JAVA,C#,VB.NETの単体テスト運用を阻む“3つの壁”の乗り越え方とは?」

 セミナー詳細

昨今のエンタープライズシステム開発では、品質向上を図るために単体テストの実施が求められるようになってきました。特に銀行、保険、証券など金融システムでは単体テストの実施が必須となってきていると言われています。

しかし、実際の開発現場では単体テストがうまく運用に乗らず成果を出せていなかったり逆に工数増加につながってしまっているという状況も多いのではないでしょうか?

お客様にその原因について伺うと、単体テストの運用を妨げる3つの大きな壁が見えてきました。


1つ目の壁「単体テスト定義の壁」

 ・各担当者における単体テストの認識が異なっていることで、テスト品質にバラつきが生じ、成果が出にくい状況に陥っている。
  例:
  # 単体テストは誰が実施するべきなのか分からない。
  # 単体テストをどの単位で行えばいいのか分からない。
  # 保守開発において、どこまでをテスト範囲とすべきか分からない。

2つ目の壁「単体テスト手法の壁」

 ・ノウハウ不足による工数増加でテスト実施まで至らない。
  例:
  # どこまでテストしたらいいのか分からず、終了基準が曖昧。
  # ドライバやスタブはどう準備すればいいのか分からない。
  # データベースにアクセスするメソッドはどうやってテストを実施するのか分からない。


3つ目の壁「単体テスト運用の壁」

 ・テスト実施後のテスト資産やノウハウが活用できていない。



そこで今回は単体テスト実施におけるこの3つの大きな壁をテーマに、実際の例を交えながらその乗り越え方をご紹介いたします。また、単体テストの次のステップとして効率的なテストと品質向上を実現する継続的インテグレーション環境の構築方法についても併せてご紹介いたします。

単体テスト実施を一度諦めてしまった方、運用に乗せたいとお悩みの方必見の内容となっておりますので、是非ご参加ください!




━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
◆セミナー概要
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【開催日程】2014年11月7日(金)14:00~17:00 (開場:13:40)

【会場】テクマトリックス セミナールーム
    東京都港区高輪4丁目10番8号 京急第7ビル

【参費用】無料

【定員】40名(定員になり次第締め切らせていただきます。)
    ※ご同業の方の参加はご遠慮いただいております。

【講演内容】
「単体テスト運用における3つの壁とその乗り越え方」
講師:テクマトリックス株式会社 鈴木 沙緒理
概要:
多くの方が品質向上のために単体テストが必要と感じています。しかし、いざ実施に踏み出すと様々な問題に直面し、実際には運用に乗せられなかったケースも多く聞かれます。本セッションでは、単体テストの運用において直面する壁とその解決策を事例を交えながらご紹介します。

「CI環境構築によるテスト自動化がもたらす品質向上と早期リリースの実現」
講師:テクマトリックス株式会社 内田 江美
概要:
テストのさらなる効率化のためには、CI(継続的インテグレーション)環境の構築がおすすめです。しかし、何からスタートすればいいのかお悩みの方も多いのではないでしょうか? 本セッションでは、CIに関する基礎知識を初め、テストの実行をCI環境に取り入れた場合のメリットについてご紹介します。
 
 ※内容は、変更する場合がございます。あらかじめご了承ください。


2014年10月2日木曜日

ケーススタディにみるIEC 62304/ FDA GPSV対応とは

医療機器ソフトウェアの開発プロセス その最適化と効率化
~FDA、MDD、CFDA、新法(医薬品・医療機器等法)対応~


2014年11月25日の新法(医薬品・医療機器等法)の施行が少しずつ近づいて参りました。
GHSから法規制対象外のヘルスソフトウェアに関する開発ガイドラインが公表され、また、法規制対象の単体プログラム医療機器の医療機器申請に関しましても、厚労省 医療機器・体外診断薬部会などから情報が公開されつつあります。

こうした動きの中で、IEC 62304、ISO 14971対応に関する弊社へのお問い合わせも急増し、方針やスピードの違いはあれ、多くの企業様が既に対応作業を開始されています。

また、国内の薬事法改正に関わらず、欧州・米国・中国など海外に向けた医療機器ソフトウェアに関する医療機器申請でも、開発現場でのソフトウェアの内部品質、外部品質を担保する品質文書や記録とそれらに裏付けられたサマリ文書が当然必要に
なります。
それらの品質文書や記録はソフトウェア開発プロセスを構築して生み出されるものです。FDAの査察、EUのUV(非通知審査)に対応して、しっかりとプロセスを立ち上げておく必要があります。


 しかし一方で、

  「何から手を付ければいいのか分からない」

  「どのくらい大変な作業になるのか検討がつかない」

  「規格書は読んだが、具体的には何をすればいいの?」

  「自社の今の開発プロセスでは不十分なのか?」

  「ある程度規格に準拠した開発は行っているつもりだが、効率が良くない」

 などのお悩み・不明点をお持ちのご担当者様もまだまだいらっしゃるのではないでしょうか。


テクマトリックスは、FDA、MDDなどに関する専門知識とソフトウェアエンジニアリングのノウハウの両方を駆使し、お客様の課題に合わせたソリューションを提供しています。

今回は、お客様から寄せられるよくあるケースをもとに課題解決への取り組みとその効果についてご紹介します。



<ケーススタディ>
 医療機器ソフトウェアの開発プロセス その最適化と効率化


 ◆お客様の声
「FDA、MDDともに申請通過済み。しかし申請内容と実態に大きな乖離を感じている」


今回のケースでは、海外の医療機器申請は通過しているものの、法令、国際規格がソフトウェアに求めることの本質や背景への理解が不十分だったために、表面的な対応になっています。
そして、それが結果的に開発への大きな負担となり、生産性や品質にも悪影響をもたらしています。

そのため、現状を分析し、まずはFDA、MDDに申請しているソフトウェアライフサイクルプロセスへ実態を近づけなければなりません。その上でプロセスを最適化し、品質、生産性の向上につなげていく必要があります。


>このケースの詳しい内容




◆ 無料相談会 実施中!◆

テクマトリックスでは、医療機器ソフトウェアのIEC 62304(JIS T 2304)およびFDAガイドラインへの適合に向けた様々な課題について、プライベート無料相談会を開催しております。
本プライベート無料相談会では、ソフトウェアを使った医療機器の欧米薬事や、今後より一層求められるCSV、今年11月25日に施行される新法(医薬品・医療機器等法)についても、ご相談をお受けします。

IEC 62304、FDA、新法(医薬品・医療機器等法)についてお悩みをお持ちのお客様は、ぜひご検討ください。