1.开卷有益
突然发现,软件测试大家都很关注。测试在过程式语言的调试和测试时,就是一个令人关心的问题。将软件调试(debug)和软件测试(test)视为一个问题,这是方法决定的。因此研究的是所谓白盒测试、单元测试和程序调试。
1.防止淹没
1.1 过程式程序测试
不需要测试的R语言程序。R语言是解释型语言,每一条命令的执行结果都要经过程序员检验,才能进行下一个命令。医生诊断病情用的方法与R语言类似。
象R语言一样的高级语言毕竟不多。多数高级语言应该有程序测试阶段。
过程式程序测试,根据源程序的功能结构实现。
1.2测试用例
测试用例的困难就是表达,如何表示全部的用例。在算法分析中有穷举法,就是用树的方式表示全部用例组合。据说有工具PICT,可以在微软的网站下载。关键是防止淹没。
黑盒测试的用例更困难,看不到源码,然而应该知道程序的类型,程序的功能。
因此,黑盒测试的用例(序列)根据程序的类型分为4~8类。
面向对象技术的程序测试与过程式不同,本质相同。
2.有效的路径选择
2.1 if语句和while语句的路径
源程序的路径有多少,即:产生输出的路径有多少。结构式程序,对出口是很重视的。
2.2 while循环执行次数
while循环的执行次数,在数理逻辑中称为序型(order)。order这个单词,大家都熟悉,阶。
2.3 防止异常和错误
突然work(做事)的一个命令,没有源程序段的支持,一定是错误。但是没有规定,反而发现不了。
UNIX对每一个语句都有error处理,所以对异常处理的比较清晰。
2.软件测试主旨
2.1 软件测试的范围
软件测试的对象是软件错误(software error)、软件缺陷(software defect)、软件故障(software fault)、软件失效(software failure)。软件测试是软件工程中工作量最繁重的阶段。
2.2软件测试新方法
所谓白盒测试应了解源程序,而黑盒测试应用输入数据驱动。而软件测试新方法是这两个基础方法的综合,
首先表示所有数据数据的集合,因此程序必须能通过所有数据的运行得到正确结果。 (1)对单元测试更有用
其次,程序的所有路径都能清晰表示,因此能掌握程序的出口数量和输出数据的正确结果。
然后,while语句的执行次数和输入输出数据能表示。
最后,错误的程序段能在程序调试时发现。
2.3 软件测试程序编写
(1)过程式源程序
(2)面向对象技术的源程序
(3)操作系统软件
(4)R语言经济统计程序
参考文献