测试流程
什么是软件产品
- 软件的定义:软件是计算机程序、方法、规则、相关的文档、以及在计算机上运行时所必须的数据的总和。
- 狭义:软件=程序+数据+文档
软件的生命周期
- 需求-设计-编码-测试-维护-升级-废弃
开发过程中常见的模型
- 瀑布模型:
特点:线性化模型结构
各阶段具有里程碑特征
基于文档的驱动
严格的阶段评审机制
缺点:增加了工作量
增加了开发风险
增加了修复成本
- V模型
单元测试:是基于代码的测试,以验证其可执行程序代码的各个部分是否已达到了预期的功能要求。
集成测试:验证了2个或多个单元之间的集成是否正确,并有针对性地对详细设计中所定义的各单元之间的接口进行检查。
系统测试:在模拟客户环境系统的运行系统,以验证系统是否达到了在概要设计中所定义的功能和性能。
验收测试:由业务专家或者最终用户来确认系统是否符合设计规格或契约之需求内容的测试,也称交付测试。常用冒烟测试办法进行。
缺点:忽视了测试对需求分析、系统测试的检查,需求的满足情况一直到后期的验收测试才被验证。
优点:通过开发和测试同时进行的方式来缩短开发周期,提高开发效率。
- W模型
需求阶段结束:需求规格说明书定稿(基线化,放到svn上去)
概要设计阶段结束:概要设计文档(主要是数据库设计和系统采用什么框架之类的)定稿(基线化,放到svn上去)
详细设计阶段结束:详细设计文档定稿(基线化,放到svn上去)
编码阶段结束:开发人员的代码合并(基线化,放到svn上去)
系统测试阶段结束:测试报告定稿(基线化,放到svn上去)
验收测试阶段结束:验收报告通过
优点:有利于尽早的全面的发现问题,加快项目进度
缺点:各个阶段依然保持线性的前后关系,不利于问题的及时解决
测试基础
软件测试的目的
- 测试的目的:发现bug、提高质量。降低成本
软件测试的原则
- 所有的软件测试都应追溯到用户的需求
- 应当把“尽早的和不断地进行软件测试”作为测试者的座右铭
- 完全测试是不可能的,测试需要终止
- 测试无法显示软件潜在的缺陷
- 充分注意测试中的集群现象
- 测试工程师应当避免执行自己写的测试用例
- 尽量避险测试的随意性
测试的分类
- 按阶段划分:单元测试、集成测试、系统测试、验收测试
测试策略
- 功能测试
- 性能测试
- 安全性测试
- 兼容性测试
- 可靠性测试
- 易用性测试
- 安装卸载测试
测试设计
黑盒测试的实施过程
- 测试计划阶段
- 测试设计阶段
- 测试执行阶段
- 测试总结阶段
测试用例的基本原则
- 用于简洁清晰,但不能过于简单、
- 用于无歧义,尽量少用过长的句子
- 用例的各个基本要素要备齐,不能缺少
- 用例的步骤应该足够详细,操作应该明确
- 容易被其他测试工程师读懂,并能顺利执行
黑盒用例设计技术
- 等价划分类 (有效等价类和无效等价类) (会举例子):是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法.
- 边界值分析法:取边界值
- 错误推测法
- 场景发
- 正交试验发