一、软件测试:使用技术手段验证软件是否满足需求
目的:用最少的人力、物力、财力,找到软件中的问题并修复,从而降低商业风险。
二、主流技术
- 功能测试:用户账号、密码、验证号登录。
- 自动化测试:使用代码或者工具代替人工验证项目功能
- 接口测试:针对模块与模块或系统与系统之间数据请求地址进行测试
- 性能测试:模拟多人使用软件,查找服务器缺陷
三、测试分类
1、按阶段划分:
单元测试:针对程序源代码进行测试(开发)
集成测试:接口测试,针对模块(单元)之间访问地址进行测试
系统测试:对整个系统进行测试包括功能、兼容、文档等测试
验收测试:主要分为内测、公测,使用不同人群来发掘项目缺陷
2、按代码可见度划分:
黑盒测试:又称功能测试,看不见源代码,主要对程序功能进行测试==》系统测试
灰盒测试:又称接口测试,看见部分代码,主要对程序接口进行测试==》集成测试
白盒测试:又称单元测试,看见全部代码,主要对源代码进行测试==》单元测试
总结:系统测试和黑盒测试重点核心是功能测试;
集成测试和灰盒测试又称接口测试;
单元测试和白盒测试是对代码进行测试;
自动化测试属于功能测试;性能测试、安全测试属于专项测试。
3、测试策略:
冒烟测试:批量执行测试之前针对程序主功能进行验证,保证程序具备可测性。
面试题:提测标准是什么?—冒烟测试通过
测试之前主要怎么做?—冒烟测试
四、模型
质量模型、开发模型
1、质量模型:针对任何软件或硬件,测试要覆盖的方面
概念:提供测试设计的不同角度视野和验证方向。
ISO/IEC 25010:功能性、性能效率、兼容性、易用性、可靠性、可维护性、信息安全、可移植性
2、测试模型:软件开发流程、软件测试在开发流程中的作用
W模型:简称“双V”模型,即开发主导的“V”+测试主导的“V”.
开发流程:需求分析、概要设计、详细设计、编码、集成、实施、交付。
测试流程:单元测试、集成测试、系统测试、验收测试
优点:伴随整个产品的开发周期,测试对象不仅是程序还有需求、设计文档;测试介入较早,及早发现问题,降低修复成本。
缺点:实施起来较为复杂,难度大,对于需求阶段和设计阶段的测试设计要求较高。
五、软件测试流程
1、需求分析:确保各部门需求理解一致(产品主导):
前置:阅读需求分析文档,记录不明确之处
确保各部门对需求理解一致;查漏补缺
2、计划编写:测什么、谁来测、怎么测
分别对应:测试目标及范围;人员进度安排;测试策略、测试工具
3、用例设计:设计执行测试的文档
4、用例执行:项目模块开发完成开始执行用例文档实施测试
按着文档内容执行测试步骤
5、缺陷管理:对缺陷进行管理的过程
闭环操作:提交-修复-验证-关闭
6、测试报告:实施测试结果文档
包含测试目标、测试过程、缺陷统计、缺陷分析、测试总结
六、测试用例
1、用例:用户案例
测试用例:是为测试项目而设计的执行文档;
考虑点:质量模型(功能、性能、兼容、易用、安全)
手机实例:是否能开机-验证内存-验证屏幕-检查运行速度
2、作用:防止漏测;实施测试的标准
3、用例设计编写格式(八大要素):
用例编号:项目+模块+编号
标题:预期结果+操作步骤
模块/项目:所属项目或模块
优先级:表示用例的重要程度或者影响力P0-P4(P0最高)
前置条件:要执行此条用例,有哪些前置操作
测试步骤:描述操作步骤
测试数据:操作的数据,没有的话可以为空
预期结果:期望达到的结果
4、如何设计:不同的场景和需求,有不同的用例设计方法,需要学习用例的设计方法。