一、软件生命周期一般分为六个阶段:
- 项目计划:确定软件开发的总体目标
- 需求分析:软件的主体,需要编写软件需求说明书(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一致)