Skip to content

MS_TestAutomation

nishi_74322014 edited this page Aug 3, 2026 · 1 revision

テスト自動化

概要

テスト自動化がなかなか上手く行かないので考察した結果をメモ

詳細

以下のように、分類してベターユースを考察

分類

以下の分類がある。

単体テスト:B層以下のテスト自動化

メソッド・インターフェイスから、
単体テスト用CLのように直交表を用いてデータ・パターンをテスト自動化する。

単体テスト:P層以下のテスト自動化

UIから、
単体テスト用CLのように直交表を用いてデータ・パターンをテスト自動化する。

結合テスト:シナリオ・レベルのテスト自動化

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

考察

前述の分類毎に、ベターユースの考察結果をメモしておく。

単体テスト:B層以下のテスト自動化

  • これは、CIのCIツール内で使われている、
    NUnit + FxCop + OpenCover + ReportGenerator(Jenkins: MS_Jenkins.md
    などを使用してテスト自動化できる。
  • また、CI の項に書いたように、コンテナ技術(MS_ContainerTechnology.md)と組み合わせるとイイと考える。

※ FxCop は .NET アナライザー(Roslyn アナライザー)に、 OpenCover は coverlet に、それぞれ実質的に置き換わっている。

単体テスト:P層以下のテスト自動化

  • データ投入の自動化等を検討すると良いと考える。
  • 同様に、CI の項に書いたように、コンテナ技術と組み合わせるとイイと考える。
  • UIからのテストだが、シナリオではなく、データ・パターンをテストするため、
    UIオートメーションのツール、もしくは負荷テスト・ツールを使用してはダメ。

結合テスト:シナリオ・レベルのテスト自動化

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

TDDやCIとは別物と考える。

TDDや CI は、単体テストや、結合テストとは少々違うと考える。

  • TDDについては、
    • 幻想、死んだなどの言葉も見つかるので、応用には注意。
    • そもそも、SIのテスト工程に、そのままハマらないので、注意。
  • CI については、CIの考察に書いたように、
    • 同様に、SIのテスト工程に、そのままハマらないので、注意
    • そもそも、≒テスト技法ではなく、品質改善や納期短縮のプラクティスという話もある。

要約

以下の違いを認識する。

其々、テストの目的が異なるので最適な手段も異なる。

  1. SIのテスト工程(単体テスト、結合テスト)
  2. レグレッション・テスト
  3. CIのプラクティス

SIには適合し難い。

  • SIでは、上記の 2., 3. は適合し難い。
  • パッケージと言えども、SIテンプレート系の
    パッケージでは、≒ SIになるので適合し難い。

テスト自動化と親和性が高いケース

SIのUP開発ではなく、

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

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

従って、

  • OSSのAS IS的なライセンス
  • 若しくはWebサービスの開発

などの、

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

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

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

参考

TDD(テスト駆動開発)


Tags: テスト, ツール類

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally