暑期课题:用java编写一个测试程序,可以测试c程序
我现在主要通过在c程序中插入足够的断言作为标准输出,传递信息给java程序
现在假设要测试一个快速排序,该怎么测试呢????
我现在主要通过在c程序中插入足够的断言作为标准输出,传递信息给java程序
现在假设要测试一个快速排序,该怎么测试呢????
解决方案 »
- System.out.println(3/2>1);输出什么?
- jlist中如何实现对item的响应
- 下班前求一正则表达式
- 有关.jar问题
- 有没有把JAVA文件转换成可执行文件的东东?
- 两个简单的问题
- 一个简单的语法问题想跟大家讨论
- JCreator2.5竟然不支持最新的JDK1.4.2beta
- 新手请教基础问题。解答正确马上给分。
- 请问各位高手:如何把一个HTML文件转换成纯文本文件?(尽量保证转换后的显示格式)
- [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.的错误消息
- 刚开始学java,关于java里命名我觉得我们老师可能讲得不对,请教一些各位高手
所以我在c程序里插入了断言输出语句,将每次对序列的划分情况传给java程序
然后判断是否符合划分逻辑
测试时,让java创建进程给c程序,并用iostream来进行数据的交换不过c程序的path得预先作为句柄写到代码里面
能不能在程序运行时手动更改啊???
“快速排序”中的排序是动作,完成一项任务;“快速”是手段,存在着多种不同的排序方法,而这里我们恰好期望使用“快速”排序方法来完成这项排序任务。
那么,我们测试的目的是为了验证我们排序的正确性,还是验证我们确实是使用了“快速”排序法呢?对于不同的目的我们的测试框架也会是不同的,如果我们期望测试的是排序的正确性,那么我们不必要在排序中间进行验证,我们需要的是在排序结束之后,给出合理的期望结果,并进行相应的验证,以确定我们排序后的结果与期望结果完全符合。
如果我们的目的是验证我们编写的代码是否是一种“快速”排序法,则情况又所不同。每一种排序方法虽然目的和结果相同,但内部实现机理不同,在排序过程中产生的行为也不尽相同,这时我们可以依据快速排序法在排序过程中的行为准则进行判断,判断的内容可能是,每一次排序过后(一次快速排序过程由多次排序组成)所产生出的结果是否与期望(exptected)的结果相同,如果不同可能是采取了不同的排序方法导致,也可能是排序方法本身就有问题。 至于具体实现,为什么不能自己写一个C程序的测试框架呢?这样就可以避免JAVA和C之间交互的麻烦,当然在C中,通过调用原生函数接口,也可以直接调用C的方法,或者可以将每次运行的结果集放入某一个存储空间,并使得JAVA读取及验证。 另外,关于关于是否是“白盒”或“黑盒”的问题,是依据你的测试用例来判断的,而不是你的测试框架,如果你的测试用例仅仅包含假设的外部输入脚本或假设的输出脚本,那么属于黑盒测试(功能测试)。如果你测试的用例设计针对内部编码,则属于白盒测试。 最后关于,“不过c程序的path得预先作为句柄写到代码里面能不能在程序运行时手动更改啊???”,不清楚什么意思?期望在程序运行期间手动设置C程序的PATH,那么做一段设置被测程序路径的功能不就OK了?当然希望也能进行测试,呵呵@.@||~