该文章主要阐述软件测试定义、测试用例以及测试方法,测试缺陷、禅道,测试文档。
软件测试是使用人工或者是自动的手段 来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。(IEEE协会定义)
计划
- 确定开发目标
- 完成项目可行性研究
- 项目进度预估安排
- 制定实施计划
需求分析
- 分析整理项目需求项
- 依据需求项编写需求规格说明书(SRS)
- 制作产品原型
设计
- 完成项目概要设计
- 完成项目详细设计
编码
- 依据设计说明书完成代码编写
测试
- 单元测试:对程序的最小单元或者是一个类进行测试的过程。
- 集成测试:对模块与模块之间调用接口进行测试的过程
- 系统测试:对完成编译的系统整体进行测试的过程
- 验收测试:交付给客户或者最终客户时,和客户一起完成的测试
运维
- 产品部署
- 运行维护
- 功能升级
- 性能提升
1.传统瀑布模型
特点:过程串行 工作测试后置,修改成本巨大
2.V模型
特点:测试过程细化,但是测试仍然后置,没有解决风险问题
3.W模型
特点:测试开发分离,对过程中的需求文档等文档进行测试,测试工作前置,大大降低项目质量风险。
4.敏捷模型
特点:适应现在互联网企业的“短频快”开发节奏设计的模型
迭代:每个迭代叫做一个sprint ,周期一般是一个月
八大质量属性
外部质量:功能性、可靠性、易用性、性能效率、兼容性、安全性
内部质量:可移植性、维护性
- 实例:如何测试一个水杯质量?
功能性:是否漏水、水容量、水杯保温性、水杯刻度是否和国标一致等
可靠性:易坏、保温时长、杯子的耐热性和耐寒性等
易用性:外观完整美观、喝水是否漏水、方便携带、防滑
安全性:材质无毒、高温无毒、与其他物质是否会产生毒性
可移植性:多处可使用
兼容性:果汁、白酒
效能:倒水时长
可维护测试:是否容易分解、是否容易修复
测试阶段划分:单元测试、集成测试、系统测试、验收测试
是否查看源代码:黑盒测试、灰盒测试、白盒测试
是否运行划分:静态测试、动态测试
是否自动化:手工测试、自动化测试
其他测试:冒烟测试、验收测试、回归测试、探索测试
附:验收测试:α测试(内测版本)β测试(公测版本,对所有用户开放)
开发环境:开发人员为联调程序而搭建的环境
测试环境:测试人员为测试程序而搭建的环境
准生产环境(预发布环境/灰度):测试人员为模拟生产环境而搭建的环境
生产环境(线上环境):用户访问的系统所部署的环境
需求评审-需求分析-编写测试计划-提取功能点-编写测试用例-进行用例评审-冒烟测试-执行测试用例-BUG提交管理-编写测试报告
目的:保证需求说明书的完整准确 保证项目团队对需求理解一致
会议地址及时间安排:项目经理PMO(产品人员)提前协助安排好,然后邮件通知
参会人员:相关开发、测试、产品、项目经理
会议进度把控:项目经理或者产品把控
会议前测试准备工作:提前了解需求,标明不理解、有歧义的地方、待会议提出
会议中:提出疑问,做好笔记
继续熟悉产品需求规格说明书,了解业务背景以及同行的参考
作用:有效的测试计划会驱动测试工作的完成,使测试执行、测试分析、以及测试报告工作开展的更加顺利
目的:明确工作内容,工作周期、工作风险等,保障测试工作有序进行,提高测试的工作效率,保证测试任务高质量完成
测试工作安排:资源分配、人员分配
测试范围:测试点优先级 重点关注
测试策略:测试技术和方法
测试开始/测试完成/测试上线指标:冒烟通过/测试报告发布/BUG修复率达到90以上
项目延期风险预防:人员风险、测试环境风险、测试广度、测试深度、回归测试、需求变更、测试时间压缩(开发占用测试时间)
如何提取:
功能性需求
1、根据需求说明书梳理功能点(琢磨每句话)
2、根据业务流程,梳理功能点
3、需求中明确规定不可用的功能
非功能需求
性能要求:响应时间、兼容性、用户体验、UI界面等
正向主流程走一遍
原则:前紧后松
时间充足的情况下:所有用例都执行
时间不足的情况下:按照优先级从高到低执行
测试结束的标志
主要内容:测试工作过程和结果、风险说明、缺陷汇总和分析、测试工作总结和改进
重点:软件生命周期、软件质量模型、缺陷管理、禅道使用