怎么写测试程序

1. 如何编写测试程序 不用 如果你创建所有类文件都在同一个包里,那么就直接写个test类,在test类中 直接使用你之前所创建类的就可以了,
前提是你的test类和其他的类在同一级目录中,不需要继承,也不需要接口的 。
直接调用
比如你写了个类文件A.java
又写了个测试类test.java,且A和test在同一级目录
那么在test.java中直接使用就行
比如
test.java{
public static void main(args[]){
A a;
}
}
2. 我编写了个c++程序,如何编写测试程序,测试程序有哪些具体的要求 你好!测试程序负责给编写好的程序提供样本数据,自动收集运行结果,并根据结果作出反馈 。
测试程序可以单独写,也可以做为模块整合在源程序中 。像我们熟知的debug语句,就是测试的最简单例子 。
在没有“断电查看”这一功能之前,为了监测程序每步执行后变量的结果,往往加入一些输出关键变量的语句 。例如以下程序:#incldue using namespace std;#define DEBUG int main(){ int n;#ifdef DEBUG cout<通常会显示-89******00(0xcccccccc).一般这样的语句还会出现在对指针进行操作之后,用debug语句输出指针所指向内存的内容等 。这只是测试程序的一个功能 。
正如前面提到的,测试程序应该提供数据以检测程序的健壮性和安全性,以及用海量数据对执行效率进行检验等 。测试数据的选择有以下几个要点,分别检测程序的不同特性:@ 尽可能包括输入集合内所有可能出现的元素,观察程序能否给出正确结果 。
(Authenticity) 比如:有一个程序输入给定迷宫平面图,要测试出最短路径长度 。那么输入的迷宫应该包括各种可能:有通路的和没有通路的,有死胡同的和没有的,有回路的(避免搜索时出现死循环),出口在左上角,右上角的等,都要考虑进去 。
程序应该对每种情况都做出正确的反应 。@ 注意测试极端情况以及临界情况 。
(Security) 这是为了检测程序的健壮性,用户不可避免地会做出不合法的举动,程序需要有足够的防护强度来应对这些意外 。比如:如果编写了一个简易的计算器,那么一定要检查除数为0的情况;一个程序的功能是将一片文档的内容链接到另一个文档内,那么一定要检查自己链接自己的情况;等等 。
@ 注意输入数据的规模以及随机性 。(Efficiency) 衡量程序效率的标准应该考虑大规模数据下的表现 。
数据需要有足够的随机性以避免意外情况 。比如:比较几种不同排序算法的效率时,选用的数据应该是随机顺序的 。
在顺序数据的情况下:冒泡算法显然比快排还快,但这是偶然情况 。@ 如果有可能,还可以检测程序的通用性及扩展性(Versatility & Compatibility) 好的程序应该易于扩展,可利用价值高 。
大多数软件都在不停的打补丁,而不是推倒重写 。测试程序一般无法直接检测这两种特性 。
然而,测试中出现的错误有时可以帮助我们提升程序的质量 。我曾经写过一个类似于美图秀秀的图像处理程序,C++写的,相当粗糙 。
输入还要用命令行控制 。当时我用各种图片进行了测试,包括纯色的,有明显背景色调的,以及完全混乱的噪声点 。
前面的图片表现都很好,但处理最后一张图片时程序抛出了异常——经过检验发现,我的处理程序是基于24位图片写的,而最后一张图片是32位的 。类似的情况还有32位系统和64位系统下程序运行的问题等,在此就不赘述了 。
要编写测试程序,一般分为两个模块:数据生成和结果检测 。测试程序的第一部分将生成的数据写入一个文件,让程序读取文件并运行后,再将结果写入另一个文件,之后由测试程序的第二部分比对输出文件和标准答案 。