このブログについて

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

2013年9月10日火曜日

2013年10月10日セミナー開催! C#、VB.NET 開発の品質確保に単体テストは必要?


■□□━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━□□■

C#、VB.NET 開発の品質確保に単体テストは必要?
―単体テストを省略するリスクと効率的な単体テスト実施方法とは?―


■□□━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━□□■

昨今、C#、VB.NET 開発では、従来のWindowsフォームアプリケーション開発に加え、ASP.NET を利用した Web システムの開発も増加しています。そのようなシステムの検証では、グラフィカルな画面を伴っているために、機能の分離が難しく、単体テストを省略し、結合テストで品質を担保するケースも多いのではないでしょうか?

結合テストで検出されたバグは、単体テストで検出されたバグに比べ、3倍の修正コストがかかると言われています。また、将来の保守開発においても、回帰テストに再利用できる単体テストケースが作られていないために、結合テストで品質を確保することになります。しかしながら、開発段階で単体テストを実施するには、多くのハードルがあることも事実です。

そこで今回は、単体テストの実施を妨げている要因とその対応策、さらに保守開発における効率的なテストの実施方法をご紹介します。

=====================単体テストの実施を妨げている要因=====================

・Windowsフォームとロジックが結合し過ぎていてテストが困難。
・ASP.NET 開発での単体テストのやり方がわからない。
・ACCESS、SQL Server を多用しており、単体テストが実施しにくい。
・テストケースを作成するのが大変。

======================================================================

単体テスト実施へのハードルが高く、単体テストに取り組めていない方、
より効率的な実施方法を模索している方、必見の内容となっておりますので、
ぜひ奮ってご参加ください!


【参加お申し込みはこちら】

 https://www.techmatrix.co.jp/secure/form/inquiry.asp?id=QU00000412&parm1=parablog


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
◆セミナー概要
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【開催日程】2013年10月10日(木)13:30~16:00 (開場:13:10)

【会場】テクマトリックス セミナールーム
    東京都港区高輪4丁目10番8号 京急第7ビル
    http://www.techmatrix.co.jp/company/map.html

【参費用】無料

【定員】30名(定員になり次第締め切らせていただきます。)
    ※同一部署からのご参加は、2名様までとさせていただきます。
    ※ご同業の方の参加はご遠慮いただいております。

【講演内容】
「単体テストの必要性と、C#、VB.NET開発におけるよくある問題点とその解決法」
 講師:テクマトリックス株式会社 小杉 研太
 概要:
  同値分割やペアワイズ法を利用した効率的なテストケースの考え方や、
  ASP.NET コンパイラを利用した ASP.NET の単体テストケース作成方法を
  ご紹介いたします。

「保守開発におけるテストと品質確保」
 講師:テクマトリックス株式会社 天久 慎介
 概要:
  新規開発に比べ予算や期間も限られている保守開発においては、前任者が居ない、
  ソースコードの可読性が著しく悪い、回帰テスト環境が無い、といった新規開発とは
  異なる品質確保の課題が発生します。
  カンに頼ってテストケースを一から実装したり、手当たりしだいにテストを行うと
  いった方法から抜け出し、より効率的に品質を確保する方法をご紹介します。


「dotTEST9.5およびサービスのご紹介」
 講師:テクマトリックス株式会社 糸田 誠
 
 ※内容は、変更する場合がございます。あらかじめご了承ください。


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

 https://www.techmatrix.co.jp/secure/form/inquiry.asp?id=QU00000412&parm1=parablog

【詳細】 http://www.techmatrix.co.jp/i/qu/20131010/

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

詳細はこちら>>
 http://www.techmatrix.co.jp/quality/dottest/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
◆Parasoft社製テストツール導入事例
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
自動車業界をはじめ、OA機器、システム開発におけるParasoft社製テストツールの
ユーザー様による開発効率化の事例をサイトにて数多くご紹介しております!
貴社プロジェクトにおいてご参考となる内容になっておりますので、ぜひご覧ください。

▼多数のユーザー様事例をご紹介中!事例ページはこちら
 http://www.techmatrix.co.jp/quality/parasoft_casestudy/

2013年4月1日月曜日

第4回:REST API テスト効率化 - テストのバッチ実行

自動化したテストを夜間実行する - SOAtest のバッチ実行機能で継続的なテストを実施!

前回、回帰テストの自動生成について紹介致しましたが、本日は、この作成したテストをバッチ実行する方法を紹介します。

バッチ実行は文字通り、テストの開始を人が行うのでなく、システムから起動させるという意味になります。たとえば、Windows のタスクマネージャーにタスクを登録し、毎晩 1:00 AM にバッチ処理を実行させるようなイメージです。

このような仕組みで、毎朝、出勤時にテストレポートを受け取ることや、受け入れ時にのみ実施していたテストを毎日実行することで、どの(ソースをコミットした)時点で問題が発生したのか判別できるようになります。

いわゆる、継続的なテストの自動化は、APIの更新が頻繁に発生したり、提供するサービスのリリースサイクルが短い場合において、早期の品質確保と問題発見を可能にしますので、リリース スピードの向上や手戻りコストの低減において効果を発揮します。

継続的なテストと言えば、Jenkins と連携させた CI 環境の構築も最近では一般的になりつつありますが、勿論、SOAtest もこの仕組みに組込んでご利用頂けます。

と、いうことで、
今回は、SOAtest を使用して REST API の回帰テストを自動実行(バッチ実行)する方法を紹介します。

※前回のおさらいは、こちらからご参照頂けます。
第3回:REST API テスト効率化 - 回帰テストの自動生成

2013年3月6日水曜日

Parasoft SOAtest ハンズオンセミナー開催!

この度、お客様からのご要望が多かった、「SOAtest/LoadTest」のハンズオンセミナーを開催いたします。

「SOAtest/LoadTest」のテストツールを使用した、WebアプリケーションやWebサービスへの効果的なテスト(機能テスト/回帰テスト/パフォーマンステスト)方法を体験できます。
また回帰テストの自動化による効率的なテスト方法や、パフォーマンステストでのメトリクスによる品質チェックなども紹介いたしますので、ご興味のある方は、奮ってご参加ください。

第1回目のハンズオンセミナーは、4月25日(木)の開催です。
(詳細については、コチラをご覧ください)


[セミナー内容]
  1. 本セミナーで使用するWebアプリケーション/Webサービスの概要
  2. 製品(SOAtest/Loadtest)の基本概要
  3. 演習1:機能テスト/回帰テスト/静的解析
  4. 演習2:パフォーマンステスト(負荷テスト/メトリクスによる品質チェック)
  5. その他の機能紹介(テスト自動化/実行時エラー検証・セキュリティチェック)

[開催日/場所]
  • 開催日:2013年4月より、毎月1回開催(13:30 - 17:30)
  • 場所:テクマトリックス(株) セミナールーム(東京都港区高輪4-10-8 京急第7ビル3F)
  • 定員:8名(先着順)
  • 受講費:無料

  ※ セミナー日程については、コチラをご覧ください。

2013年2月22日金曜日

第3回:REST API テスト効率化 - 回帰テストの自動生成

皆様、ご存知の通り Web API 開発においてもデグレード対策は必須です。
※ REST API および SOAP API の総称として、Web API という言葉を用いています。

たとえば、公開中の Web API 数が増加傾向にある場合や、異なるバージョンの Web API が複数ある場合、それらに対する回帰テストの規模やシナリオ テストの工数は増加し続けます。

これらは、サービスのリリース スピードや作成コストに大きく影響します。

回帰テストを自動生成し、テストを自動化できれば、これは素晴らしいことだと思いませんか?

と、いうことで、
今回は、SOAtest を使用して REST API の回帰テストを自動生成する方法をサクッと紹介します。
前回のおさらいは、こちらからご参照頂けます。

・ 第1回:REST API テスト効率化 - テスト作成/実行
第2回:REST API テスト効率化 - テスト結果の自動検証

2013年2月20日水曜日

Parasoft Jtest 9.5 リリース!

Java対応テストツール「Parasoft Jtest 9.5」 日本語版をリリースしました!

<主な新機能>


  • フロー解析機能/静的解析機能の強化 処理速度と解析精度の向上
  • Java 7 の便利な機能を見逃さない静的解析
  • 継続的品質アシスタントで静的解析を自動実行
  • 単体テストにおけるレポート機能の強化 テスト結果の詳細出力とレポーティングAPI
  • サポート環境の拡大 Java 7, Eclipse 4.2, Widows Server 2008, Windows 8 に対応


詳しくはこちらから。体験版のダウンロードもあります。

2013年2月15日金曜日

Parasoft Concerto について

今回は、ソフトウェア開発管理プラットフォーム Parasoft Concerto を紹介します。

Parasoft Concerto は、ソフトウェア開発ライフサイクル全般を通して、ソフトウェア開発の進捗と品質管理を支援するソフトウェア開発管理プラットフォームです。

<製品の機能と特長>

  • 機能安全規格、医療機器ソフトウェア安全規格、規制への対応
  • さまざまな開発ツールとの連携による情報の一元管理
  • 顧客要求を確実に実現するプロジェクトの進捗管理を支援
  • 定義されたワークフローで開発が実施されたことを保証
  • 要求からテストまで完全なトレーサビリティを確保
  • プロジェクトレビュー、分析を容易にするさまざまレポート
  • 複数拠点にまたがるプロジェクトも一元把握

Concertoの代表的なユースケースの一つを、デモ動画として公開(Youtube)しましたので、ぜひご覧ください。
当社のConcertoページ で、全ての機能や連携できるツールなどの詳しい情報をご確認いただけます。

<デモの流れ>
  • テスト担当者が発見した欠陥情報を登録して、開発者と共有する
  • 開発者がソフトウェアの修正、単体テストを行う
  • テスト担当者が修正を確認して、電子署名された変更履歴を残す




2013年1月29日火曜日

第2回:REST API テスト効率化 - テスト結果の自動検証

今回は、SOAtest を使用して REST API のテスト結果を自動検証する方法をサクッと紹介します。
前回のおさらいは、 『第1回:REST API テスト効率化 - テスト作成/実行』 を参照してください。

■目的
・REST API テスト結果の自動検証

手順:
 ・テスト結果検証ツールの追加
 ・テスト結果の検証項目の設定
 ・テスト実行/検証結果の確認

■テスト概要
郵便番号検索APIを開発していると仮定し、この機能のテストを Parasoft SOAtest を使用して行います。
今回は、例として、Yahoo Japan 様が公開している REST API (郵便番号検索API)をテストします。

郵便番号 '108-8588' で検索し、結果の検証を行います。
テスト結果で取得する値は、弊社(テクマトリックス 株式会社)の名前や住所などの情報です。
※2013.01.24時点での Yahoo Japan 様のAPI 仕様に基づいて記載しています。

■それでは、早速はじめましょう。

1. SOAtest の起動

 1-1. SOAtest を起動します。

2. テスト結果検証ツールの追加

2-1. テストクライアントの実行結果に対して、検証ツールで検証を行うようにします。
 [Test 1: REST Client] を右クリックし、シュートカット メニューより [出力の追加] を選択します。




 2-1. ダイアログが開きますので、次の項目を選択し、[終了] ボタンをクリックしてツールを追加します。


■ 左欄 : [レスポンス] より [トラフィック] を選択
このダイアログからは、これから追加するツールを [Test 1: REST Client] のリクエスト、レスポンス、または両方の何処に対して適用するのかを選択できます。
今回は、テスト結果を検証したいので、[レスポンス] を選択します。

■ 右欄 : [Validation] より [JSON Assertor] を選択
今回、検証するメッセージ形式は JSON なので、JSON Assertor を選択します。
仮に、検証するメッセージ形式が XML である場合は、 XML Assertor を選択します。

 2-2. [JSON Asserot] が [Test 1: REST Client] に連結されていることを確認します。


ここまでの操作で、テストクライアントと検証ツールの連結は完了です。

3. テスト結果の検証項目設定

3-1. 追加した JSON Assertor (検証ツール)を開き、[Test 1: REST Client] テスト結果の検証項目を設定していきます。
[設定] タブを選択して [追加] ボタンをクリックします。





 3-2. ダイアログから様々な種類の検証方法を選択できますが、
今回は、テスト結果(レスポンス)の値を検証するため [Value Assertion] より [Value Assertion] を選択し、[次へ] をクリックします。

 3-3. 次に、ツリー ビューで表示されたテスト結果(レスポンス)の要素の一覧から、検証対象とする項目を選択します。
今回は、[PostalName] を選択し、[終了] をクリックします。

3-4. 今回は、テスト結果(レスポンス)の [PostalName] の期待値として、[期待値] に 'test' と入力し、故意にテストを失敗させるように設定します。

4. テスト実行

4-1. [Test 1: REST Client] を選択し、テストを実施します。


4-2. 想定通り、テストが失敗していることを確認します。


5. テスト結果の確認

5-1. [Test 1: REST Client] を右クリックし、[タスクの表示] を選択します。

 5-2. [品質タスク] ビューに問題の詳細が表示されますので、エラー メッセージをダブルクリックします。

 5-3. [詳細] ビューに問題の詳細が表示されます。

次の理由でテストが失敗したことが解ります。
 ・ 検証ツールの期待値: test
 ・ 実際のテスト結果: テクマトリックス 株式会社


いかがでしたか?


■ まとめ

今回は、REST API のテスト結果を自動検証する方法を紹介しました。
サクッと完了ですね。

■ 次回予告

次回は、回帰テストの作成方法について紹介しますのでお楽しみに!




2013年1月11日金曜日

[セミナーのご案内] こんなソフトウェア開発は失敗する!! ~無駄のないテストが工数削減のカギ~



今回はセミナーのご案内です。

近年、顧客要求の多様化によりソースコードは複雑化・肥大化し、ソフトウェアの品質
確保はますます困難になってきています。とりわけ金融、通信、公共、防衛などの
各業界においては、C/C++言語で構築されたミッションクリティカルなシステムが数多く
存在し、既存ソフトウェアの修正や機能追加といった保守開発が盛んに行われる中で、
ソースコードは、ますます複雑なものとなっています。
この結果、品質確保が不十分となり、ソフトウェアの問題に対する原因究明に、多大な
工数と労力がかかることは、保守開発時の大きな課題です。

みなさまの中には、以下のような問題でお困りになられた方もいらっしゃるのではない
でしょうか?

・既存ソースコードに関連するバグが発生し、検出までに莫大な工数がかかってしまった
・保守開発時にデグレードが多発し、問題の修正に苦労した
・ソースコードを修正した際の影響範囲がわからないため、テスト対象が絞り込めず、
 無駄な時間を費やしてしまった

テクマトリックスでは、上記のような問題を抱えたC/C++システムにおいて、工数削減や
デグレード防止を実現するためのセミナーを企画いたしました。本セミナーでは、主に
ソースコード修正時の影響範囲の分析や効率的なソフトウェアテストの実施方法をご紹介
いたします。
ふるってご参加をご検討ください。


------------------------------------
セミナー開催概要
------------------------------------
タイトル:
     こんなソフトウェア開発は失敗する!!
         ~無駄のないテストが工数削減のカギ~

開催日程:20130130() 13:3016:10 (開場 13:15)
会場    :テクマトリックス セミナールーム
          東京都港区高輪4丁目108号 京急第7ビル 2
          最寄駅:JR・京浜急行「品川駅」より徒歩1
参費用 :無料
定員   :40(定員になり次第締め切らせていただきます。)
       ※同一部署からのご参加は、2名様までとさせていただきます。
       ※ご同業の方の参加はご遠慮いただいております。

【お申し込み】
弊社ホームページよりお申し込みください。

C言語、C++言語を使用されている方を対象としたセミナーです。

------------------------------------
アジェンダ
------------------------------------
1.保守開発におけるテストの有効性を高める方策

 【概要】
  既存システムの保守開発では、期間や納期、コストが優先され、十分なリスク
  調査が行われないまま、ソフトウェアの修正が行われる場面が多くあります。
  限られた時間やコストの中で、保守開発時に生じやすいデグレードや修正漏れ
  を防ぐポイントとなる、影響度分析やメトリクス計測の活用方法、また効率的
  なテスト方法についてご紹介します。

2.テクマトリックス取扱いツールのご紹介
 【概要】
  弊社が取り扱っております開発支援ツールについてデモンストレーションを
  交えてご紹介します。

 【ご紹介ツール】
 ・C++test 
  C/C++対応、単体テスト・静的解析・フロー解析・実行時メモリエラー検出ツール

 ・Insure++
  C/C++対応ランタイムエラー検出ツール

 ・Lattix
  アーキテクチャ分析ツール

 ・Understand
  ソースコード構造解析ツール

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

2013年1月4日金曜日

第1回:REST API テスト効率化 - テスト作成/実行

Web API 開発時における課題は、やはりテストの効率化です。Web APIのテストには、テスト クライアントが必須であり、そのため、テスト クライアントの開発、および開発したテスト クライアントのテストが必要になります。これらの作業は、素早くサービスを提供する本来の目的から遠ざけるだけでなく、単純に工数の増加を意味します。
テスト クライアントを開発する場合は、個々のテストの属人性が高くなるだけでなく、開発・改修するWeb APIの数やバージョンの増加に伴い、工数が益々増加してしまいます。

Parasoft SOAtestは、ツールのGUI より、Web API のテストに必要なテスト データを設定するだけで、直ぐにテストできます。そのため、テスト クライアントの準備にかかる工数を大幅に削減し、テストのスピードを加速します。

さらに、Parasoft SOAtestは、個々のテストクライアントのテスト結果に対して期待値を設定できます。そのため、テストの自動実行により得られた結果と期待値の検証を完全に自動化でき、目視検証を行う必要がなくなります。また、これにより工数を大幅に削減できます。検証結果はエビデンスレポートとして外部保存できます。