ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

組み込み系の単体テストの場合、最近のソフトウェア技術は使えない

2016-10-07 10:36:09 | Weblog
これ、混じっちゃっている人が居るみたい・・・

「単体テスト」と呼ばれるテストには2種類ある。
(1)XUnit(JUnit,PHPUnit)など、入出力を操作し、「仕様書にある」
   全ケースを網羅する(ブラックボックステスト)
(2)もう一つは、ソースコードの分岐・命令ないし条件組み合わせを
   全部網羅する(ホワイトボックステスト)
後者は、組み込み等で言われる単体テスト。

この場合、ソースコードが出来ていないと、テスト項目がつくれない
(ソースコードの分岐に合わせてテストするのだから)
よって、テスト駆動(TDD)のように、テスト(項目)を先に作るという
単体テスト(TDDはXUnitを使う→単体テスト)はできない。

 また、リファクタリングを行う場合は、ソースコードを作り直すので、
テスト項目も作り直すことになる(当然、テストもしおなおしということ
になるが、テストをするのと、回帰テストするのは、(1)、(2)共通)

事実上、(2)の方法を行う場合、テスト駆動とか、リファクタリングとか
できない。アジャイルもやりにくい(アジャイルはスプリントごとにソース
コードが変わる可能性があるので、(2)だと単体テストが終わらなくなる)。

そこで、現在、Web系では、単体テストは(1)を指し、(2)の代わりに、
網羅率を確認するテストを同時に行う。
 例えば、Javaの場合は、JUnitのほかにdjunitを行い
 PHPでは、コードカバレッジの機能を使う(内部的にXDebugを使っている)
phpdbgだって言う人も居ます。


この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« ESP8266に関する情報まとめ | トップ | 「ネットでのいじめを根絶し... »
最新の画像もっと見る

Weblog」カテゴリの最新記事