这里写目录标题
一、软件测试概述
1、软件缺陷
软件缺陷:又称之为“Bug”。即计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。
缺陷的表现形式:
- 软件没有实现产品规格说明书所要求的功能模块;
- 软件中出现了产品规格说明指明不应该出现的错误;
- 软件实现了产品规格说明中没有提到的功能需求;
- 软件没有实现虽然产品规格说明没有明确提及但应该实现的目标;
- 软件难以理解、不易使用、运行缓慢、用户体验不友好;
产生软件缺陷的原因:
- 需求不清晰;
- 系统结构较为复杂;
- 对程序逻辑路径或者数据范围考虑不全面;
- 确保设计时间的精准同步;
- 存在系统性、可靠性的隐患问题;
- 系统运行环境的复杂;
- 通信端口较多时影响系统的安全性、适用性;
- 设计技术系统兼容的问题;
缺陷的属性:
- 缺陷标识:标识唯一;
- 缺陷类型:缺陷种类;
- 缺陷严重程度:指因缺陷引起的故障对软件产品的影响程度;
- 缺陷优先级:指缺陷必须被修复的紧急程度;
- 缺陷状态:通过一个跟踪修复过程的进展情况;
- 缺陷起源:缺陷引起的故障或事件第一次被检测到的阶段;
- 缺陷来源:引起缺陷的原因;
- 缺陷根源:反正错误的根本因素;
2、软件测试的定义及原则
定义:软件测试是为了发现错误而执行程序或系统的过程。
原则:
- 测试显示Bug的存在:
- 穷举测试不可能;
- 尽早地进行测试;
- 缺陷群:(二八定律:约80%的问题被发现在20%的模块中);
- 杀虫剂悖论;
- 测试是上下文相关的;
- 有无谬误;
- 软件测试是有风险的行为;
二、软件测试过程与策略
1、软件测试策略概述
软件测试策略是软件工程过程的一个软件测试的模板,也就是把特定的测试用例方法放置进去的一系列步骤:
软件测试包含的特征:
- 测试从模块层开始,然后扩大延伸到整个基于计算机的系统集合中;
- 不同的测试技术适用于不同的时间点;
- 测试由开发人员及独立的测试组来管理的;
- 测试和调试时不同的活动,但是调试必须能够适应任何测试策略;
软件测试充分性准则:
- 对任何软件都存在有限的充分测试集合;
- 若果一个软件系统在一个测试数据集合上的测试是充分的,那么再多测试一些数据也应该是充分的;
- 即使对软件所有成分都进行了充分测试,也并不表名整个软件的测试已经充分;
- 即使对软件系统整体的测试是充分的,也并不意味着软件系统中各个成分都已经充分的得到了测试;
- 软件测试的充分性与软件的需求和软件的实现都相关;
- 软件越复杂,需要的测试数据就越多;
- 测试的越多,进一步测试所能得到的充分性增长就越少;
2、软件测试的分类
软件开发阶段划分:
1)、单元测试:
指对软件中的最小可测试单元进行检查和验证,单元测试需要从软件的内部结构出发设计测试用例。多个模块可以独立地进行测试。
2)、集成测试:
组装测试/联合测试:将所有模块按照设计要求组装成子系统或者系统进行集成测试。
3)、系统测试:
将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试 和确认测试,系统测试是针对整个产品的测试。
4)、验收测试:
交付测试:确保软件准备就绪。
测试技术划分:
1)、白盒测试:
结构性测试/透明盒测试/逻辑驱动测试/基于代码的测试:
2)、黑盒测试:
功能测试:通过测试每个功能是否都能正常使用。(输入数据/输出数据)
3)、灰盒测试:
介于白盒测试和黑盒测试之间的一种测试方法:不仅关注输出、输入的正确性,同时也关注程序内部的情况。
被测试软件是否实际运行划分:
1)、静态测试:
指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。
- 对于代码测试:主要测试代码是否符合相应的标准和规范;
- 对于界面测试:主要测试软件的实际界面与需求中的说明是否相符;
- 对于文档测试:主要测试用户和需求说明是否符合用户的实际需求;
2)、动态方法:
指通