软件测试理论
一、软件生命周期一般分为六个阶段:
- 项目计划:确定软件开发的总体目标
- 需求分析:软件的主体,需要编写软件需求说明书(Software Requirement Specification,简称SRS)
- 软件设计:软件的核心,由系统分析组(架构师和系统分析人员)编写概要设计说明书(High Level Design,简称HLD),然后由数据库设计员和开发人员编写详细设计说明书(Low Level Design,简称LLD)
- 软件编码:把软件设计的结果转换为计算机可运行的程序代码
- 软件测试:由测试人员检测软件是否符合客户的需求,是否达到质量的要求。整个测试过程大致分为:单元测试、集成测试、系统测试、验收测试
- 运行与维护:软件生命周期中最长的阶段
二、软件测试结构:
- C/S(Client/Server)结构:客户端/服务器结构,C/S模式是基于企业内部网络的应用系统,不依赖企业外网环境
- B/S(Browser/Server)结构:浏览器/服务器结构,B/S是目前互联网中应用最广发的系统结构,例如基于Web的MIS(Management Information System)系统
- A/S(Application Serving)结构:利用ICA协议,将应用程序的逻辑从用户界面中分离开来,使得网络传输数据量很小,对网络带宽要求低
三、软件测试原则:
- 所有的测试都要追溯到用户的需求
- 测试应尽早地介入
- 测试无法穷尽
- 避免开发者自测
- 群集现象:帕累托法则(二八定律)表明:80%的错误集中在20%的程序模块中
- 杀虫剂悖论
- 不存在缺陷的谬论:测试只能证明软件存在缺陷,不能证明软件不存在缺陷
- 测试活动依赖于测试环境
四、软件测试模型:
- V模型:适用于项目比较小、周期比较短的项目,模型逐渐被淘汰
- W模型:由2个V组成,分别代表开发和测试过程,表明开发和测试的并行关系。V&V理论,即验证(Verification)和确认(Vilidation)
- H模型:将测试准备和测试执行分离开
- X模型:
- 敏捷测试:
五、缺陷种类:遗漏、错误、冗余、不满意
六、测试用例:指对一项特定的软件产品测试任务的描述,体现测试方案、测试方法、测试策略和技术。
软件测试的核心,也是软件测试质量稳定的根本保障。测试用例需要遵守5C原则(Correct准确,Clear清晰,Concise简洁,Complete完整,Consistent一致)
七、软件测试风险
1.需求风险
a. 需求变更:需求变更导致开发、测试部分工作失效,维护成本增加
b. 需求人员,测试人员,开发人员对需求的理解不一致
2. 缺陷风险
a.偶现缺陷,较难重现,容易被遗漏;
b.缺陷跟踪不够积极主动,没有做好缺陷记录和跟踪,导致上线遗漏
3. 代码质量风险
a.人员经验不够丰富
b. 人员对业务理解不够
c.系统架构设计不足,导致扩展性不足,性能兼容差等问题
4. 测试环境风险
测试环境与线上环境配置差异较大,产生上线后的环境问题
5. 测试技术风险
a. 测试用例设计考虑不全
b. 测试人员技术的能力差,效率低
6. 研发流程风险
a.开发质量差,导致某些模块的问题过多,遗漏的缺陷数也会增多
b.开发修复bug考虑不周全,带入新的缺陷
软件测试风险的参考链接:https://blog.csdn.net/hou_angela/article/details/82429335
一行代码一行诗