- 追加された行はこの色です。
- 削除された行はこの色です。
Open棟梁Project - マイクロソフト系技術情報 Wiki
* 目次 [#q80d3d7f]
#contents
*xUnit系ツール [#n093985e]
.NET開発のJUnitに対応するテスティング・フレームワークには、~
NunitやVisual Studio の単体テスト機能がある。~
ただし、DJunit、DBunit相当のフレームワークは存在しない。
なお、これらの機能は、
>Visual Studio 2005では、Team Developer、Team Tester以上
のEditionでしか利用できなかったが、
-Visual Studio 2010では、Professional以上
-Visual Studio 2012では、Premium以上
で利用可能になっている。
**画面系 [#c0a25b26]
以下のものも存在するが、使い難いものと思われる。
-NUnitAsp - ASP.NET unit testing~
http://nunitasp.sourceforge.net/
-NUnitForms An NUnit extension for testing Windows Forms applications.~
http://nunitforms.sourceforge.net/
-なお、ASP.NET MVCでは、~
コントローラのアクションを実行するための~
テストコードを書けば良いため単体テストが容易になった。~
なお、使用するツールとしては、以下のデファクトのツールを使用できる。
--NUnit
--Visual Studio単体テスト機能
**機能の変遷 [#v3bb2e76]
***VS2008 [#n6fcb3a8]
-特集:Visual Studio 2008単体テスト機能徹底活用(前編)~
Visual Studio 2008単体テスト機能のすべて - @IT~
http://www.atmarkit.co.jp/ait/articles/0811/14/news137.html
--Visual Studio 2008では、Professional Editionでも使用できる。
***VS2010 [#ka63dbca]
-Visual Studioで作る単体テスト、~
基本のき(VS2010向け改訂版):CodeZine~
http://codezine.jp/article/detail/5826
--Visual Studio 2010では、Professional Editionでも使用できる。
***VS2012 [#md0a84c3]
-第 1 回 Visual Studio 2012 による~
単体テスト Visual Studio 2012 自習書シリーズ~
http://msdn.microsoft.com/ja-jp/vstudio/dn223359.aspx
-Visual Studio 2012で「単体テストの作成」機能が無くなったけど良い感じ~
http://d.hatena.ne.jp/aoki1210/20120915/p1
-単体テストの作り方がVisualStudio 2012から変わった~
http://pgnote.net/?p=1680
--機能が変わって、Visual Studio 2012では、Premium Edition以上で使用できる。
--「単体テストの作成」機能が無くなったのは、テストファーストで無い為と言われている。
*UI Automation [#q0e525f9]
UIオートメーションは、UIに対する~
イベントの起動を自動化するためのフレームワークであり、~
.NET Framework 3.0(移行)のWPFに含まれている。~
このUIオートメーションを利用することで、~
以下のアプリケーションのUIを操作できる。
-Windowsアプリケーション(Win32)
-Windowsフォーム・アプリケーション(.NET)
-WPFアプリケーション(.NET)
・・・
-参考
--UIオートメーションによる自動UIテストの実践 - @IT~
http://www.atmarkit.co.jp/fdotnet/special/uiautomation/uiautomation_01.html
**Coded UI Test [#q320311e]
また、Visual Studio 同梱の機能に
>コード化された UI テスト(Coded UI Test)
がある。
-wpf - Microsoft UI Automation Library Vs Coded UI Test - Stack Overflow~
http://stackoverflow.com/questions/4909206/microsoft-ui-automation-library-vs-coded-ui-test
こちらを参照すると、コード化された UI テスト(Coded UI Test)は、~
UI Automation Libraryをランタイムとして使用する機能であることが解る。
エントリ系の自動化に特化した用途であれば、有用である可能性がある。~
#UI自動化利用方針の「使い捨て前提で適用シーンを絞り込んで利用」に合致。
-コード化された UI テストと操作の記録でサポートされている構成とプラットフォーム~
http://msdn.microsoft.com/ja-jp/library/vstudio/dd380742.aspx
--要件:Visual Studio Ultimate, Visual Studio Premium
*CIツール [#dace51d6]
デイリービルド&デイリーテストで使用する。
**NUnit+OpenCover+ReportGenerator [#i6e5f02c]
[[カバレージ・ツール-OpenCover>使用APIの一覧、関数コールグラフ、単体テストのエビデンス#k3cb74af]]
*適合するシナリオ [#e9b48eb4]
テスティング・フレームワーク、TDDが適合するシナリオを~
UP開発に対して、適用困難である事実をサンプリングして説明する。
**テスティング・フレームワーク [#fb093ba8]
**xUnit系ツール [#fb093ba8]
UP開発ではテスト自動化と同様に、~
>テスティング・フレームワークを使用したレグレッション・テストで
ペイするプランを立案し難いため。
ペイするプランを立案し難い。
事例としては、
e-cando自体(e-candoを使用したUPではなく)が、~
テスティング・フレームワークを使用して、かなりの所まで~
レグレッション・テストの自動化ができている。~
ちなみにこの、テスティング・フレームワークを使用したテスト自動化基盤、~
通常CL消化1人月程度の所を、9人月ぐらいの工数をかけて整備しているとのこと。~
#所謂、ペイするプラン。
また、上記のテスト対象にUIを含めることは難しいため、~
e-candoでは、F層・D層をテスト対象としている。
なお、テスト対象にUIを含める場合は、
-UIテスト自動化ツールではなく、
-前述の「[[Coded UI Test>#q320311e]]」等
を使用することになると思われる。
***TDD(テスト駆動開発) [#y730fc75]
-テスト・ファーストでない場合と
-テスト・ファーストである場合とで、
定量的な効果にどれぐらいの違いがあるのか解らないため。
定量的な効果にどれぐらいの違いがあるのか解らない。
ただし、テスティング・フレームワークを使用した~
レグレッション・テストの自動化が前提となっている場合は、~
テスト・ファーストを試してみても問題ないと思われる。
-参考
--テスト駆動開発 - Wikipedia~
http://ja.wikipedia.org/wiki/%E3%83%86%E3%82%B9%E3%83%88%E9%A7%86%E5%8B%95%E9%96%8B%E7%99%BA
--TDDを真面目にやってみて気付いたこと - Masatomo Nakano Blog~
http://blog.madoro.org/mn/70
***効果的シナリオ [#wba8c8d3]
上記の方式は、製品開発であっても、
やはり
-OSSのAS IS的なライセンス
-アジャイル的なプロセス
-OSSのAS IS的なライセンス
と親和性が高いものと考える。
従って、
-OSSのAS IS的なライセンス
-バックログ消化型 & チーム開発
#影響範囲なども把握しにくい状況を想定。
#影響範囲なども把握し難い状況を想定。
で、デグレード等の早期検出という~
用途に最も適合しているものと考える。~
用途に最も適合しているものと考える。
#所謂OSSコミュニティ的な開発運用。
これはコードの進化のスピードに大きな影響を与えるため、~
OSS文化隆盛の要因の一つにもになっているものと考える。
***事例 [#s1613296]
某開発支援ツールがテスティング・フレームワークを使用して、~
かなりの所までレグレッション・テストの自動化ができている。~
ちなみにこの、テスティング・フレームワークを使用したテスト自動化基盤、~
通常CL消化1人月程度の所を、9人月ぐらいの工数をかけて整備しているとのこと。~
#所謂、ペイするプラン。
また、上記のテスト対象にUIを含めることは難しいため、F層・D層をテスト対象としている。
**UI Automation [#i427a940]
テスト対象にUIを含める場合は、
-UIテスト自動化ツールではなく、
-前述の「[[Coded UI Test>#q320311e]]」等
を使用することになると思われる。