ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

ソフトウェア工学コミュのテストについて

  • mixiチェック
  • このエントリーをはてなブックマークに追加
あるソースコードからテストコードを自動生成できないかと思ってプログラムを書いています。

そこでみなさんにアイデアを頂きたくトピックをたてました。

例えば、和差積商の計算を番号をそれぞれに割り当ててif文で選択することでそれぞれの
計算をするようなプログラムがあったとします。

これに対するテストとは、どんな事があげられるでしょうか?

コメント(6)

何をテストしたいのでしょうか?

ソースコードが実行可能なレベルで辻褄が合ってるかどうかは、静的解析ツールやコンパイラが確かめてくれます。

機能の充足を確認したいなら、ソースコードの元となった仕様が必要です。「何」を作るか決められていないものに対して、「何」の性質を満たしているかは確認できません。

後者の意味でのテストにおいて、仕様からテストケースを作るツールに、jmlunitがあります。
対象が実数なのか整数なのか、複素数まで考慮するのか
ゼロ割はどう考えるのか
結果が実数の場合の演算誤差はどこまで許容するのか
(BCDコードを使用しないと、コンピュータでは0.1を誤差なしでは表せません)
整数の場合、最大値、最小値はどこまで考えるか
括弧は使用できるか、何重まで可能か
式の文字数に制限はないか

というところは、テストを考える前の情報として必要ですね
私も皆様の意見と同様に、「どこまで保証するプログラムであるのか?」という前提条件を明確にしないとテストは出来ないと思います。
例えば、整数値までを扱うプログラムであれば5÷2は2でも正解ですし。。

代案としてですが、プログラムをフローチャートにした際の全分岐網羅等を考慮したテストケースを作るプログラムならば、需要がありそうな気がします。
毎回同じ結果の出るプログラムであれば、その結果が気に入るかどうかを見ればテストは終了です。
そうではないなら、アルゴリズムだけを示されてもどんなテストが必要なのかは誰にも分かりません。
mnagakuさんの、コメントが全てを包含していると思います。それに加えて、もう少しだけコメントさせていただきます。

ソースコードに基づいて作られたテストコード(ケース)では、元のソースコードで書かれたことが機能的に誤っているかどうかについては、確認できませんよね。
評価対象プログラムの出力する結果が、入力とどのような関係にあるかは、「仕様」を見て判断せねばなりません。さもなければ、足し算をするプログラムなのに、引き算をしていたとしても、ソースコードだけ見ていれば引き算で正しいとしか判断できませんよね。そもそも、やることが決まっている場合は、仰るような「自動化」までは必要ありませんし....

要するに、「仕様」に基づいたアプローチが必要であるということです。

最近では、ホワイトボックステストでの「テストカバレッジ」を上げるためのツール等も市販されています。(winAMS等はその一つと思います)多分、ビンゴーキャメル さんの目指すは、このあたりではないかと思います。

でも、これは、あくまでも、プログラム単体(関数やサブルーチン単体のイメージ)で動作させて、そのソースコードの持つパスを全て動かしてみるというテストカバレッジの向上が目的で、仕様に基づいた動作(機能)を確認することは出来ません。

ということで、インプットがソースコードだけの状態で可能なテストと、その効果を、今一度吟味して、何をどこまでやるか検討されて、もう一度皆さんに投げかけられては、如何でしょうか?

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

ソフトウェア工学 更新情報

ソフトウェア工学のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング