软件的概念:
由数据、文档、程序组成
软件生命周期:
定义——设计——实施——测试——部署——运行——维护
瀑布模型:
计划(定义阶段)——需求分析——设计——编码(开发阶段)——测试——运行维护(维护阶段)
优点:提供基本框架 提供阶段检查点 前面完成后只需关注后续
缺点:阶段之间缺少反馈,线性模型,错误不能及时发现,增加了开发风险,产生大量的文档,工作量加大
V模型:
需求分析——概要设计——详细设计——编码 ——单元测试——集成测试——系统测试——验收测试
软件测试(三个观点):
1、为了发现错误而执行程序的过程
2、一个好的用例能够发现至今尚未发现的错误的测试
3、一个成功的测试时发现至今上午发现的错误的测试。
软件测试的定义:
为了发现错误而执行程序的过程,是对软件需求、设计、编码的进一步复查,是软件质量保证的关键步骤
软件测试的目的:
Ø 发现缺陷,提高质量
Ø 验证是否满足需求
Ø 建立软件质量信心
软件测试的原则:
Ø 测试显示缺陷的存在
Ø 尽早介入的原则
Ø 穷尽测试时不可能的
Ø 测试依赖于测试背景
Ø 缺陷集群性
Ø 杀虫剂悖论
Ø 缺陷不存在的谬论
软件测试类型
手册语文当测试 一致性测试 功能测试 覆盖性测试 压力测试
软件测试的流程:
测试计划和控制——测试需求和测试用例——实行和执行测试用例——评估测试报告——测试活动结束
什么是生命周期测试
生命周期测试应该伴随整个软件开发周期,此时测试的对象不仅仅是程序,需求,功能和设计同样要测试。测试与开发同步进行,有利于尽早发现问题,同时缩短项目的开发建设周期。
缺陷报告编写
软件缺陷报告里边需要包含哪些知识点?
缺陷ID、缺陷标题、报告者、报告的日期、状态、优先级、严重级
运行环境、详细描述、问题重现步骤、结果对比
生命周期测试过程:
测试计划——测试方案——测试要点——开发用例——执行用例——测试报告评估
软件配置CSCI:
是为独立的配置管理而设计的且能满足最终用户要求的一组软件。软件开发过程中,产生的所有信息或构成软件设置,它们是:代码、文档、报告等,统称为配置项。
软件测试分类:
Ø 1 是否关心内部结构 白盒测试赛、黑盒测试、灰盒测试
Ø 2 开发过程级别 单元测试、集成测试、系统测试、验收测试
Ø 3 是否执行程序 静态测试、动态测试
Ø 4 执行是否人工干预 手工测试、自动化测试
Ø 5 测试实施组织 开发测试、用户测试、第三方测试
软件缺陷的定义:
Ø 1 软件未实现产品说明书要求的功能
Ø 2 软件出现了产品说明书指明不应该出现的错误
Ø 3 软件实现了产品说明书未提到的功能
Ø 4 软件未实现产品说明虽未明确提及但应该实现的目标
Ø 5 软件难以理解,不易使用,运行缓慢
软件缺陷基本信息:
缺陷ID、标题、报告人、报告日期、程序的名称、严重性、优先级、缺陷描述、重新步骤、结果对比
缺陷管理一般流程
Ø 主线: 发现一个新的缺陷——打开缺陷——经理分配给开发人员——开发人员修改——重新测试(没有问题)——关闭缺陷
Ø 支线1:发现一个缺陷,测试人员不确定是不是缺陷——管理委员会(是缺陷)——按照主线流程进行
Ø (不是缺陷)——关闭
Ø 支线2:发现一个相同类型的缺陷——关闭
Ø 支线3:发现一个一般性问题——到下一个版本再修改
软件测试过程模型
Ø V模型 特点:不同测试阶段和开发过程期间各阶段的对应关系,强调阶段性
Ø W模型 特点:增加了软件开发阶段中应同步进行的验证和确认活动,基于“尽早地和不断地进行软件测试”的原则
Ø H模型 特点:软件测试时一个独立的构成,贯穿整个生命周期。强调独立性
软件测试过程
提取测试需求——制定测试计划——制定测试策略和方案——开展测试设计——执行测试用例——分析测试结果
软件测试过程中的管理理念:
1、尽早测试
2、全面测试
3、全过程测试
4、独立的迭代测试