「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>テスト]]

* 目次 [#g6d669c5]
#contents

*概要 [#n15d28ac]
テスト自動化がなかなか上手く行かないので考察した結果をメモ

*詳細 [#qb315a39]
以下のように、[[分類>#v1c0985d]]してベターユースを[[考察>#e9b323bb]]。

**分類 [#v1c0985d]
以下の分類がある。

***単体テスト:B層以下のテスト自動化 [#ca4fa9f7]
メソッド・インターフェイスから、~
単体テスト用CLのように直交表を用いてデータ・パターンをテスト自動化する。

***単体テスト:P層以下のテスト自動化 [#e2bf382d]
UIから、~
単体テスト用CLのように直交表を用いてデータ・パターンをテスト自動化する。

***結合テスト:シナリオ・レベルのテスト自動化 [#oc9dcbf1]
[[UIオートメーション]]のツール、もしくは[[負荷テスト・ツール>負荷テストのポイント]]を使用して行う、~
複数画面に渡った、シナリオ・レベルをテスト自動化する。
-[[UIオートメーション>#o6769791]]のツール、
-もしくは[[負荷テスト・ツール>負荷テストのポイント]]を

使用して行う、複数画面に渡った、シナリオ・レベルをテスト自動化する。

**考察 [#e9b323bb]
前述の[[分類>#v1c0985d]]毎に、ベターユースの考察結果をメモしておく。

***単体テスト:B層以下のテスト自動化 [#a2e572e2]
-これは、[[CI]]の[[CIツール>CI#dace51d6]]内で使われている、~
[[NUnit + FxCop + OpenCover + ReportGenerator>Jenkins]]~
などを使用してテスト自動化できる。

-また、[[CI]]の項に書いたように、[[コンテナ技術]]と組み合わせるとイイと考える。

***単体テスト:P層以下のテスト自動化 [#ce4f705b]
-データ投入の自動化等を検討すると良いと考える。

-同様に、[[CI]]の項に書いたように、[[コンテナ技術]]と組み合わせるとイイと考える。

-UIからのテストだが、シナリオではなく、データ・パターンをテストするため、~
[[UIオートメーション]]のツール、もしくは[[負荷テスト・ツール>負荷テストのポイント]]を使用してはダメ。
[[UIオートメーション>#o6769791]]のツール、もしくは[[負荷テスト・ツール>負荷テストのポイント]]を使用してはダメ。

***結合テスト:シナリオ・レベルのテスト自動化 [#s1893030]
[[UIオートメーション]]のツール、もしくは[[負荷テスト・ツール>負荷テストのポイント]]を使用して行う。
-[[UIオートメーション>#o6769791]]のツール、もしくは[[負荷テスト・ツール>負荷テストのポイント]]を使用して行う。

-しかし、以下の目的は、其々、分けたほうが良いかもしれない。
--通常の、手動の結合テスト
--自動化ツールを使用した自動の結合テスト
---どちらかと言えば、リグレッション・テスト的。
---ただし、SIではペイするプランを立案し難い。

***TDDや[[CI]]とは別物と考える。 [#kaa6b591]
TDDや[[CI]]は、単体テストや、結合テストとは少々違うと考える。

-TDDについては、~
[[TDD(テスト駆動型開発)は幻想>#x3780c2d]]らしいので、コチラも注意。
-TDDについては、
--[[幻想、死んだ>#x3780c2d]]などの言葉も見つかるので、応用には注意。
--そもそも、SIのテスト工程に、そのままハマらないので、注意。

-[[CI]]については、~
[[CIの考察>CI#m6de4984]]に書いたように、
--SIのテスト工程に、そのままハマらないので、注意
--同様に、SIのテスト工程に、そのままハマらないので、注意
--そもそも、≒テスト技法ではなく、品質改善や納期短縮のプラクティスという話もある。

**要約 [#na9c524c]

***以下の違いを認識する。 [#ca6a0ff7]
其々、テストの目的が異なるので最適な手段も異なる。

+SIのテスト工程(単体テスト、結合テスト)
+レグレッション・テスト
+[[CIのプラクティス>CI#m6de4984]]

***SIには適合し難い。 [#c3b37863]
-SIでは、上記の 2., 3. は適合し難い。

-パッケージと言えども、SIテンプレート系の~
パッケージでは、≒ SIになるので適合し難い。

***テスト自動化と親和性が高いケース [#g1fa92c5]
SIのUP開発ではなく、

-製品開発
-OSSのAS IS的なライセンス
-アジャイル的なプロセス

と親和性が高いものと考える。

従って、
-OSSのAS IS的なライセンス
-若しくはWebサービスの開発

などの、

バックログ消化型 & チーム開発で、

デグレード等の早期検出という用途に最も適合しているものと考える。

これはコードの進化のスピードに大きな影響を与えるため、~
OSS、Webサービス隆盛の要因の一つにもになっているものと考える。

*参考 [#vf56d515]

**テスト駆動開発 [#x3780c2d]
**[[テスティング・フレームワーク]] [#a7fef269]

**[[UIオートメーション]] [#o6769791]

**TDD(テスト駆動開発) [#x3780c2d]

-テスト駆動開発 - Wikipedia~
https://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という名の幻想...~
https://qiita.com/asip2k25/items/a580417c8aeedd248094

**[[CI]](継続的インテグレーション) [#x27f1ffd]
-TDDは死んだ。テスティングよ栄えよ。 by DHH - やっとむでぽん~
https://yattom.hatenablog.com/entry/20140424/p1

-TDDを真面目にやってみて気付いたこと - Masatomo Nakano Blog~
http://blog.madoro.org/mn/70

**[[CI/CD]] [#jd691dd2]
***[[CI]](継続的インテグレーション) [#x27f1ffd]
***[[CD]](継続的デリバリー) [#xfe4829c]

**[[テスト自動化について - Open 棟梁 Wiki>https://opentouryo.osscons.jp/index.php?%E3%83%86%E3%82%B9%E3%83%88%E8%87%AA%E5%8B%95%E5%8C%96%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6]] [#sdf29dd3]

----
Tags: [[:テスト]], [[:ツール類]]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS