文档介绍:软件工程
电子教案
王树林
Chapter 17 SOFTWARE TESTING STRATEGIES
软件测试策略把软件测试用例的设计方法集成到一系列已经周密计划的过的步骤中去,从而使得软件开发得以成功完成。
软件测试的策略途径
测试是一系列可以事先计划并且可以系统地进行管理的活动。
测试开始于模块层,然后延伸到整个计算机系统。
不同的测试技术适用于不同的时间点。
测试是由软件开发人员和独立的测试组来管理的。
Chapter 17 SOFTWARE TESTING STRATEGIES
测试和调试是不同的活动,但是调试必须能够适应任何的测试策略。
软件测试策略必须提供可以用来检验一小段原代码是否得以正确实现的底层测试,同时也提供能验证整个系统的功能是否符合用户需求的高层测试。
验证和确认
测试是质量可以被评估,错误可以被发现的最后壁垒,但是,测试不应当被视为一个安全网。
Chapter 17 SOFTWARE TESTING STRATEGIES
软件测试组织
软件开发者总是负责程序的单个单元的测试,保证每个单元能够完成设计的功能。在很多情况下,开发者也进行集成测试。仅仅在软件体系结构完成后,独立测试组织(ITG)才开始介入。
一种软件测试策略
Chapter 17 SOFTWARE TESTING STRATEGIES
C
U
D
R
S
I
V
ST
系统工程
需求
设计
编码
单元测试
集成测试
确认测试
系统测试
测试策略
Chapter 17 SOFTWARE TESTING STRATEGIES
软件工程的过程可以看成是一个螺旋结构。最初,系统工程定义了软件的功能,从而引出了软件需求分析,建立了软件的信息域、功能、行为、性能、约束和确认标准。沿着螺旋向内前进,经过设计阶段,最终到达编码。为了开发计算机软件,我们沿着流线的螺旋前进,每一圈都会降低软件的抽象层次。
Chapter 17 SOFTWARE TESTING STRATEGIES
高层测试
集成测试
单元测试
软件测试步骤
需求分析
设计
编码
Chapter 17 SOFTWARE TESTING STRATEGIES
对数泊松执行时间模型(logarithmic possion execution-time model)的软件故障模型为: F(t)=(1/p)ln(l0pt+1) ;
瞬时的故障密度,l(t)=l0 /(l0 pt+1) 。
测试人员可以预测测试进程中错误的急剧减少。如果这个预测模型与实际所收集的错误吻合的话,那么这个模型就可以用来预测为了达到一个可以接受的低故障密度,以及测试过程所需要的时间。
Chapter 17 SOFTWARE TESTING STRATEGIES
每小时的故障数
l0
预期的故障密度,l(t)
执行时间,t
Chapter 17 SOFTWARE TESTING STRATEGIES
通过在软件测试过程中收集数据和利用现有的软件可靠性模型,就可以回答:测试什么时候完成。
策略问题
明确地指出测试目标。测试的特定目标应当用可以测度的术语来描述。比如测试有效性、测试覆盖率、故障出现的平均时间、发现和改正缺陷的开销、允许剩余的缺陷密度或出现频率。