// Test Automation
テスト自動化は一般的には難易度の高いプラクティスです。しかし弊社の長年積み上げたノウハウがあれば、導入、運用時の無駄を省き低コストで高品質な自動テストを導入できます。
// Why
テストのコストは膨大です。リリース前のテストはもちろん、実装中にも開発者は細かく何度も確認しています。手動では繰り返すことができないので、確認後にコード修正が入るとテストの漏れが発生しがちです。緊急リリース時には、リスク込みでリリースせざるを得ない場合もあります。
テストは資産となり蓄積されるので繰り返し実行できます。負荷分散にもつながります。また現状の品質を正確に把握できるので、リスクに対応することが可能になります。
リスクを削減しているからこそ攻めることができます。リリース速度を向上させ、ユーザー満足度を向上させます。思い切ったリファクタリングが可能となり、改善の結果ますます開発速度が向上します。
// Approach
システムテストを自動化するにはアプリを外部からプログラムで操作する必要があります。これができるかどうかが、テスト自動化の成否を分けるといっても過言ではありません。
弊社開発のOSSライブラリです。対象はネイティブ、.NETのForm、WPFアプリケーションです。キーマウスのエミュレートに加え、対象プロセス内部のメソッドを外部から呼び出せるので、従来の手法では自動実行が難しかったテスト項目も自動化できます。Windowsアプリから操作可能な組み込み機器のテストにも利用されています。
Webアプリ自動操作のデファクトスタンダードです。弊社メンバーは特にC#を得意としているので、ASP.NETのプロジェクトではプロダクトと同じ言語でテストを実装できます。ブラウザで動作するJavaScriptも呼び出せるので、細やかな制御が可能です。
自動テストの設計は通常のテスト設計と少し異なります。手動の場合よりパラメータを多めに振ることができ、成否をプログラムが判断するのでそれに応じた期待値判定を考える必要があります。弊社には衛星通信の品質を保証できるほどのテスト設計のスペシャリストがいます。
アプリを外部から操作するという技術的な面と、テスト内容を分かりやすく記述するという面の二つがあります。テスト自動化を成功させるには、これを綺麗に分離しなければなりません。設計と実装は(株)Codeerの最も得意とするものです。
// Test Assistant Pro
CodeとToolのシナジー効果。自動テストのコードの大部分をツールで作成する、Visual Studioの拡張です。
(株)Codeerは自動テストを作成する際にはC#とOSSのライブラリを使ってプログラムを作成します。様々なプロジェクトでテスト自動化コンサルティングをしてきた結果、それが最も高い効果を出せると考えています。
しかし、プログラム作成にはそれなりにコストが必要でした。そこで作られたのがTestAssistantProです。プログラムの完成度の高さはそのままに、コードの大部分をツールによって作成することで大幅なコスト削減に成功しました。またガイドラインに沿ってツールを利用することで、テスト自動化プログラムの学習コストも削減できます。
| 対象 | ライブラリ | 設計パターン |
|---|---|---|
| Webアプリ | Selenium | PageObjectパターン |
| Windowsアプリ (Win32 / WinForms / WPF) |
Friendly | Driver/Scenarioパターン |
画像を押すと、操作の様子を大きく表示します。
3rdパーティ製のコントロールでもカスタマイズによって対応できます。必要に応じて拡張していきますので、ご要望がありましたらご連絡ください。
何より重要なのは、まず効果を出すことです。そのためには次のことが必須です。
「良い設計に沿ってコードを書く」ことを基本に、そのコードの大部分をツールで作成することでコストを抑えます。コストを抑えて早く実装できるからこそ、効果が出るレベルのテストケースの量を確保できるという好循環につながります。
| ライセンス | 価格/年 | 内容 |
|---|---|---|
| 開発者ライセンス | ¥198,0002年目以降 ¥138,000 | 1人の開発者が1台のPCで利用できます。 |
| サイトライセンス | ¥1,980,0002年目以降 ¥1,380,000 | 最大50人の開発者が利用できます。 |
詳細はTestAssistantProライセンス利用規約をご覧ください。有効期限確認時にネットワーク接続が必要となります。また、その際にライセンス情報、マシン固有の識別子、Visual Studioのバージョン、TestAssistantProのバージョンをサーバーに通知します。
// Case Study
// How to Request
テスト自動化で成果を出すには経験が必要です。(株)Codeerは多くの案件で成果を出してきました。
テスト自動化が上手くいくかは、対象プロダクトの性質にも大きく依存します。まずはテストの一部だけを自動化して、効果をご確認ください。
経験豊富なコンサルタントがハンズオン形式でトレーニングいたします。後半では、実際に対象プロダクトのテストを自動化する実践的なメニューも用意しています。
自動テストにはそれにあった設計が必要です。弊社では非常に高いテスト設計技術を持ったメンバーをそろえております。
トレーニングを受ければお客様自身で自動化できますが、より早く自動化したい場合や、最初にサンプルとなるコードが欲しい場合はご依頼ください。
弊社の提案する自動テストは運用時のトラブルを少なくする設計です。解決の難しい問題が発生した場合は現場に伺って解決いたします。メールサポートも受け付けております。