软件测试基础
2.1软件测试
2.1.1定义:在规定的条件下对程序进行操作,以发现程序是否满足设计错误,衡量软件质量并对其是否满足设计要求进行评估的过程。
2.1.2目的:①发现缺陷,提高质量;
②验证是否满足需求;
③建立软件质量的信心;
2.1.3原则:
①测试显示缺陷的存在;
②穷尽测试是不可能的;
③测试尽早介入(测试早介入,耗费的成本要低,效率也会高);
④缺陷集群性(80-20原则):80%的缺陷集中在20%的模块中;
⑤杀虫剂悖论:当用某一种测试方法无法在找出缺陷时,要及时更换测试用例;
⑥测试活动依赖于测试背景;
⑦不存在缺陷就是谬论(有用的系统);
2.2.软件测试管理的流程和各阶段的主要工作内容
①测试计划和控制:确定测试范围,制定出测试计划,说明要测试的项目的相关资料,如:输入输出文档,产品描述,软件主要功能,进行人力资源的分配。
对应的输出文档:测试计划和测试进度表
对整个测试计划的所有资源进行规划(人力、物力、财力等);
控制的目的:资源整合,风险分析;
②测试分析和设计:主要工作内容是明确需求的范围,明确每个功能的业务处理过程,不同的功能点与业务的组合,挖掘显示需求背后的隐士需求,制定测试的技术方案,设计测试用例,选择测试工具等。
对应的输出文档:测试设计规格说明书和测试用例规格说明书
③测试实现和执行:建立或设置相关的测试环境,准备测试数据,执行测试用例,对发现
软件缺陷进行报告、分析、跟踪等。
对应的输出文档:测试规程规格说明、测试日志和事件报告
④评估出口准则和报告:测试执行结束后,对测试结果要进行整体的或综合分析,总结测试过程出现的错误,做好测试总结报告。
对应的输出文档:测试总结报告
2.2.1出口准则:
①保证满足客户需求;
②测试用例执行覆盖率达到100%,测试需求覆盖率达到100%;
③一、二级错误修复率应达到100%;三、四级错误修复率应达到90%以上;五级错误修复率应达到80%以上;
2.2.2缺陷级别
1-Urgent 系统瘫痪;
2-Very High 频繁的死机,系统大部分功能不可用;
3-High a 功能点没有实现;b 数据丢失;
4-Medium a 影响一个相对独立的功能;b 仅仅在特定条件上发生;
c 与产品需求定义不一致;d 断断续续的出现;
5-Low 表面性错误(如错别字、提示信息不准确等);
⑤测试结束活动:测试经理和测试团队中的其他成员还需要将测试工作产品归档,同时对测试过程和测试活动进行相关数据的收集和分析,总结测试过程和测试活动的经验教训。
对应的输出文档:分析统计报表,软件测试管理文档;
3.回归测试目的:①缺陷的修复是否使另一个缺陷产生;
②缺陷是否被修复;
4.冒烟测试:将代码更改嵌入到产品的源树中之前对这些更改进行验证的过程;
5.测试用例的三大要素:标识、输入、结果;
基于生命周期的软件测试
3.1.软件生命周期测试概念
(1)定义软件测试的流程和方法
(2)指导测试项目所要求的进度、成本和质量
(3)开展测试任务必需覆盖整个软件测试生命周期的一组有序的软件测试活动
3.2.软件测试过程
(1)测试计划:对整个测试进行规划(人力、物力、时间等);考虑到会遇到的风险(控制);
(2)需求分析:基于系统要实现的功能或要满足的需求进行模块化;
(3)设计用例:概要设计:将系统模块化;
详细设计:将各模块中各个性能进行详细设计;
(4)开发用例;
(5)执行用例;
(6)测试报告评估:包括输入、输出、结果、运行过程等;
3.3.生命周期各阶段的测试工作
(1)需求阶段:重点是确认定义的需求符合机构的要求;
(2)设计和编程阶段:验证设计和程序实现了需求;
(3)测试和安装阶段:检查实现的系统符合系统规格说明;
(4)维护阶段:系统将重新测试以决定改变的部分和未改变的部分能继续工作;
3.4.测试准入、准出条件
(1)准入条件:各种资源准备就绪
(2)准出条件:保证整个验证过程的质量
3.5风险
(1)风险定义:在整个测试过程中可预测的会导致测试停滞的各种因素;
(2)风险对象:测试活动中各种资源;
(3)风险的目的:保证测试计划能够正确的执行;