测试基础
1、测试定义:
• 梅尔斯的观点:1、程序测试是为了发现错误而执行程序的过程 2、好的测试方案是能帮助发现新错误的方案 3、成功的测试是发现了新的错误的测试
• IEEE826的定义:人工或自动的,运行或检查,目的是为了检测产品是否满足用户的需求
2、软件测试的目的:
• 60年代:证明,证明产品没有问题
现在,证明,证明产品在受控使用方式下可用,在异常使用时问题表现,产品完整
• 70年代:检测,检测产品中的错误
现在,检测,检测产品中的缺陷,检查产品的质量范围
• 80年代,预防
尽早测试,预防问题在后续阶段的扩大话
尽早提出改进方案,避免同类问题的再次发生
3、缺陷的分类
错误、遗漏(注意隐形需求的遗漏)、多余(必须是用户不能接受的)、改进
4、软件的生命周期:
计划阶段
指定总体目标,基本标准
可行性分析
分解任务、规划资源、安排进度、制定计划
需求分析阶段
沟通需求
分析、调整需求
编写《软件需求说明书》Software Requirement Specification,SRS
设计阶段
概要设计阶段
将产品按照结构划分,分解到最细小不可再分解的单元,设计各子系统、模块、单元的整体规格、以及互相之间如何衔接
编写《概要设计》High Level Design,HLD
详细设计阶段
对单元内部进行设计
编写《详细设计》Low Level Design,LLD
编码阶段
按照LLD编写代码
测试阶段
单元测试阶段
集成测试阶段
系统测试阶段
验收测试阶段
运行维护阶段
5、缺陷
Defect,Bug
静态的,指产品内部存在的问题
动态的,指因为产品内部的问题,产品在运行时所表现出的和预期的不一致现象
产生的根源:缺乏有效的沟通、编码的错误、软件的复杂程度、时间的压力、不断变更的需求、人员的自大、缺乏文档的代码、软件开发工具
测试过程:
计划、方案→需求分析→测试用例→环境准备→执行→缺陷报告→总结报告