姓名:吴斌 学号:18072608 中北学院计算机科学与技术专业
软件测试第一次作业:
1、程序中遗留的缺陷数量与已检测出的缺陷数量呈正比,请解释为什么程序测
试会出现这种情况。
解:设编写一个程序出现缺陷的概率为 a,所编写的程序代码数量为 b
则在这个程序中缺陷的代码数量为 ab
设某测试软件检测出缺陷的概率为 k
则用该软件测试程序,能够检测出的缺陷代码数量为 abk
在检测出缺陷但是没有修复前,程序中遗留的未检测出的缺陷代码数量是
ab(1-k)
检测出缺陷后对缺陷代码进行修复,在重写缺陷段的代码是又会出现缺陷
这个在缺陷修复过程中出现的缺陷代码数量为 abk*a 即a2bk
则在检测出缺陷并进行修复后程序中遗留的缺陷代码数量是 ab(1-k)+ a2bk
故程序中遗留的缺陷数量与已检测出的缺陷数量之比为
ab (1−k)+ a2bk
abk
=1−k+ak
k
由上述可知,程序中遗留的缺陷数量与已检测出的缺陷数量之比是
1−k+ak
k
由此可知,程序中遗留的缺陷数量与已检测出的缺陷数量之比只是与测试软
件检测出缺陷的概率为 k 和编写一个程序出现缺陷的概率为 a 有关,与程序的代
码数量无关。
而 a 的值一般来说与程序员自身有关,k 的值与测试软件的性能有关,因此
一般情况下两个值都是定值,因此程序中遗留的缺陷数量与已检测出的缺陷数量
之比是1−k+ak
k
也是一个定值。
所以说,程序中遗留的缺陷数量与已检测出的缺陷数量呈正比,这个比值取
决于程序员自身和相关的测试软件。
2、阐述软件测试与软件调试的区别
答:
(1) 测试是为了发现软件中存在的错误;调试是为了证明软件开发的正确性。
(2) 测试以已知条件开始,使用预先定义的程序,且有预知的结果,不可预
见的仅是程序是否通过测试;调试一般是以不可知的内部条件开始,除统计性调
试外,结果是不可预见的。
(3) 测试是有计划的,需要进行测试设计;调试是不受时间约束的。
(4) 测试经历发现错误、改正错误、重新测试的过程;调试是一个推理的过
程。
(5) 测试的执行是有规程的;调试的执行往往要求开发人员进行必要推理以
至知觉的"飞跃"。
(6) 测试经常是由独立的测试组在不了解软件设计的条件下完成的;调试必
须由了解详细设计的开发人员完成。
(7) 大多数测试的执行和设计可以由工具支持;调式时,开发人员能利用的
工具主要是调试器。
3、介绍至少一款你曾经用过或者了解的测试工具,谈谈测试工具对测试的影响
和作用。
答:测试软件 webload
webload 是 RadView 公司推出的一个性能测试和分析工具,它让 web 应用程
序开发者自动执行压力测试;webload 通过模拟真实用户的操作,生成压力负载
来测试 web 的性能用户创建的是基于 java script 的测试脚本,称为议程 agenda,
用它来模拟客户的行为,通过执行该脚本来衡量 web 应用程序在真实环境下的性
能当前最高版本是 6.0
webload 提供巡航控制器 cruise control 的功能,利用巡航控制器,可以预
定义 web 应用程序应该满足的性能指标,然后测试系统是否满足这些需求指标;
cruise control 能够自动把负载加到 web 应用程序,并将在此负荷下能够访问
程序的客户数量生成报告
webload 能够在测试会话执行期间对监测的系统性能生成实时的报告,这些
测试结果通过一个易读的图形界面显示出来,并可以导出到 excel 和其他文件里。