认识软件测试
- 软件:控制计算机硬件工作的工具,程序、数据和相关文档的集合。
- 软件测试:通过手工或自动化的方式验证被测软件是否满足需求(看预期结果和实际结果是否一致);
- 测试目的:减少软件缺陷,保障软件的质量(尽可能多的发现系统中的错误,证明软件存在问题) ;
- 测试人员:(521)
- 责任心、细心、耐心、专心、自信心;
- 沟通能力、表达能力;
- 团队协作精神;
测试技能
- 功能测试:验证程序功能是否满足需求;
- 自动化测试:使用代码或工具代替手工测试;
- 接口测试:使用代码或工具验证程序中的接口是否访问正常;
- 性能测试:模拟多人使用,查找服务器缺陷。
测试分类
1. 按测试阶段
- 单元测试:针对程序源码;
- 集成测试:接口测试,针对模块间访问地址进行测试;
- 系统测试:对整个系统进行测试,包括功能、兼容、文档等;
- 验收测试:公测、内测,不同人群来发现缺陷。
2. 按代码可见
- 黑盒测试:源码不可见,UI功能可见,系统测试;
- 灰盒测试:部分源码可见,UI功能不可见,集成测试;
- 白盒测试:源码可见,UI功能不可见,单元测试。
测试流程
- 需求评审:确保产品精力、开发、测试对需求理解一致;
- 计划编写:测什么、谁来测、怎么测;
- 用例设计:验证项目是否符合需求的操作文档;
- 用例执行:项目模块开发完成后执行用例文档实施测试;
- 缺陷管理:提交缺陷, 验证缺陷,关闭缺陷;
- 测试报告:生成测试报告。
软件质量
1. 定义
软件与明确或隐含需求的一致程度。
2. 软件质量模型
八大特性:
- 功能性:满足某种需求的属性或能力;
- 性能性:规定条件下,对应资源使用数量,时间/空间占用;
- 兼容性:浏览器、操作系统、手机兼容问题;
- 易用性:用户使用流畅,界面美观,操作友好等;
- 安全性:软件使用过程中数据传输和存储是否安全;
- 可靠性:软件是否具备持续无故障运行的能力,无响应、卡顿、死机等情况;
- 可维护性:软件出现故障后,自我修复能力;
- 可移植性:软件能否从一个环境移植到另一个环境中正常运行。
软件生命周期
1. 定义
软件从无到有,再消亡的过程,也叫软件开发过程模型。
2. 瀑布模型
实际工作中已不再使用,是其他模型的原型。
- 优点:各阶段分工明确,都有对应文档产生;前一阶段完成后才开始下一阶段。
- 缺点:发现问题时机较晚,无法提前纠错;测试介入较晚。
- 适用场景:需求不易发生变化的项目。
- 【扩展】:敏捷开发模型:能够适应需求变化,实时给予相应。敏捷过程模型”是指基于迭代的软件开发方法。将任务分解为较小的迭代, 或者部分不直接涉及长期计划。在开发过程的开始就确定了项目范围和要求,事先明确定义了有关迭代次数, 每次迭代的持续时间和范围的计划。将整个项目分成较小的部分有助于最大程度地降低项目风险, 并减少总体项目交付时间要求。每次迭代都涉及整个团队,在整个软件开发生命周期中进行工作, 包括计划, 需求分析, 设计, 编码和测试, 然后再向客户展示有效产品。
软件测试模型
1. V模型
描述测试与开发间的对应关系。
- 优点:每个阶段比较清楚,测试过程由底层(代码)测试到高层(应用)测试过程。
- 缺点:不适用于需求的变更,发现问题的时机比较晚。
2. M模型
将测试过程更加细化说明,对应测试、开发之间的关系更加清楚。
- 优点:测试介入时间早,能够及时发现问题,降低修复成本;测试伴随整个软件生产周期,除了测试软件之外,还需要验证文档。
- 缺点:该模型应用起来复杂度高(具备计算机技能、业务能力、管理能力、测试素质)。
⭐测试用例
1. 目的
- 方便测试验证(将需求拆分为小的测试点);
- 体现测试人员思路,测试设计的全面性;
- 测试的量化体现,反应测试进度。
2. 定义
TestCase,为特定目的设计的一组测试输入、执行条件和预期结果等的文档。
3. 用例的核心八要素
- 用例编号:用例唯一性,项目_模块_编号;
- 用例标题:测试或验证的目的,预期结果(测试点);
- 项目/模块:所属项目/模块;
- 优先级:用例重要程度或影响力P0-P4;
- 前置条件:执行用例的前置操作;
- 测试步骤:描述操作步骤;
- 测试数据:操作的数据,没有可以为空;
- 预期结果:期望达到的结果,结论+现象。