Skip to content

入力された数式の文字列を解釈して計算する、数式計算プログラムをテストするためのソフトウェア。阪大プロB課題向け

Notifications You must be signed in to change notification settings

tkhs-dev/culctester

Repository files navigation

数式計算プログラム テスト用アプリ

image

概要

入力された数式の文字列を解釈して計算する、数式計算プログラムをテストするためのソフトウェアです。 主に大阪大学 プログラミングB(武政先生)の演習課題で作成するプログラムを対象としています。

使い方

  1. こちらからファイルをダウンロードし、解凍する。
  2. 実行ファイルと同じディレクトリのtestフォルダーにテスト対象のプログラム(.exe)を1つ配置してください。
  3. ソフトを起動する
  4. テストの条件を指定し、実行ボタンを押す
  5. テスト結果が左側に表示される
  6. テスト結果で失敗と判定された数式をコピーし、バグの原因探求に用いる
  7. バグを修正したら、testフォルダ内のexeを修正後のものに置き換えて、再実行ボタンを押す(同じ数式セットでテストを再実行できる)

設定項目

- 減算を含む

生成される数式に減算を含めるかどうかを指定します。(演習課題1 発展1)

- 乗算を含む

生成される数式に乗算を含めるかどうかを指定します。(演習課題1 基本要件)

- 二桁以上の整数を含む

生成される数式に二桁以上の整数を含めるかどうかを指定します。(演習課題1 発展3)
なおオーバーフローの問題により、生成される被演算子は三桁までとなります。

- 負の数を含む

生成される数式に負の数を含めるかどうかを指定します。(演習課題1 発展4)

- 全体を囲むかっこを許可する

(1+1)のように計算上意味のない、全体を囲むかっこの生成を許すかを指定します。
この設定を有効かつ、次の、ネストの深さ を1以上に設定すると、20%の確率で全体を囲むかっこが生成されます。

- ネストの深さ

生成される数式のかっこの入れ子の深さを指定します。(演習課題1 発展5)
例えば、この値を2に設定すると1+(2*(3+4)+5)+6のような数式が生成されます。

- 数式の最大の長さ(文字)

生成される数式の最大の長さを指定します。
入力を受け付けるchar配列の大きさに従って設定してください。

- 試行回数

設定された数だけ数式を生成しテストします。
この値を大きくすると、より多くの数式をテストできバグを発見できる可能性が高くなりますが、テストにかかる時間が長くなります。 とはいっても1000個で5秒ほどです。

結果の見方

成功ケースと失敗ケースのタブに分けて表示されます。

成功ケースタブでは、数式と計算結果が表示され、失敗ケースタブでは、数式と、数式の本来の答え(expect),プログラムによる計算結果(actual)が表示されます。

expectやactualには、数字以外にもInvalidFormulaOverflowなどの文字列が表示されることがあります。 InvalidFormulaは、数式の構文エラーを表し、生成された数式の構文エラーを正しく検出できているかを評価できます(演習課題2の発展課題?)。 Overflowは、数式の答えがInt型で扱える範囲を超えたことを表します。これは、このソフトによって生成された数式の問題であり、課題に関連して考慮する必要はありません。

テスト対象のプログラムの条件

  • .exeを起動後、scanfを用いて数式の入力を受け付けること
  • 計算結果の出力は一番最後に数字のみを出力すること
  • デバッグ出力は行っても構わないが、結果が出力された後には何も出力しないこと

最後の出力が数字以外だった場合、入力した数式に構文エラーがあったという判定になります。(actual = InvalidFormulaになる)

正しい出力例

> ./calcurator.exe
> 1+2
計算中...
3

誤った出力例

> ./calcurator.exe
> 1+2
計算中...
3
終了 <- これは出力しないでください

Q&A

Q. なぜこのソフトを作ったのですか?

A. バグを見つけるのが面倒だったから。数式の生成とテストの自動化を行うことで、バグの発見を効率化できる。

Q. 実行ボタンをおしたら、Array is emptyというエラーが表示された

A. 解凍したフォルダ内にあるtestフォルダにテスト対象のプログラム(.exe)を1つ配置してください。

About

入力された数式の文字列を解釈して計算する、数式計算プログラムをテストするためのソフトウェア。阪大プロB課題向け

Topics

Resources

Stars

Watchers

Forks

Languages