1 嵌入式软件测试和验证 一、 软件测试 1
1 定义 1993 年 IEEE 对软件测试给出了一个综合的定义:①将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中;②是对①中所述方法的研究
它指出软件工程是一种层次化的技术
科学的测试是贯穿整个产品生命周期中的测试
要突破原来对测试的理解,着眼于整个软件生存期,特别是着眼于编码以前各开发阶段的测试工作,以保证软件的质量
2 软件测试的真正目标 软件测试的真正目标是寻找 bug
即使是在交付时间表很紧的情况下,采取一个步骤来想一下从哪里开始着手,这样,测试才会是最有效率的
但即使在时间非常充足的情况下,也不可能测试出每一个 bug,所以必须将测试划分优先级,划分的根据是基于产品目前的状态(新的,修改的或者只是纯漏洞)和对客户的可能影响而进行的最诚实的评估
避免采用知道软件可以处理的测试数据和操作;测试人员的任务是在测试中扩大软件的边界
在设计自动化测试时,也要避免“踩灭”失败条件的误区
测试人员的任务不是创造大量的总是可以干净的成功运行的测试
测试人员需要去寻找和理解故障条件
不要浪费时间去想软件产品中是否存在 bug
它肯定有bug,并且不可能全部找出它们
测试的目的是指望测试人员找出那些最有影响的 bug
必须要做的是,要从消极的角度考虑这些问题
3 软件测试的意义 1
发现软件错误; 2
有效定义和实现软件成分由低层到高层的组装过程; 3
验证软件是否满足任务书和系统定义文档所规定的技术要求; 4
为软件质量模型的建立提供依据; 即软件测试包括“找错”、“组装”、“确认”和“评估”四个层次的作用
4 软件测试方法 从不同的角度来看,可以将软件测试的方法分为以下几类:根据是否需要运行被测软件的角度,软件测试分为静态测试方法和动态测试方法
根据在动态测试中是否需要了