一、软件的特性
软件包括程序、数据及文档
1、形态特性
2、智能特性
3、开发特性
4、质量特性
5、生产特性
6、管理特性
7、环境特性
8、维护特性
9、废弃特性
10、应用特性
二、软件的分类
1、系统软件:负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。
2、应用软件
三、软件的生命周期
问题定义---可行性研究---需求分析---概要设计---详细设计---编码和单元测试---综合测试---软件维护
四、软件开发模型
1、瀑布模型:计划--需求分析--设计--编码--测试--运行维护
特点:
线性方式
当前活动接收上一项活动的工作结果
当前阶段需要测试。
增加了风险
早期错误可能到后期阶段才发现
2、原型模型
客户与开发公司紧密联系
特点:实现客户与系统的交互
进一步细化待开发软件需求
开发人员可以确定客户真正的需求是什么
3、螺旋模式(瀑布、原型结合)
制定计划--风险分析--实施工程(需求确认、软件需求、软件产品设计、设计确认与认证、详细设计、开发、测试)--客户评估
特点:
瀑布、原型两者结合
强调风险分析
每一步都包含:制定计划--风险分析--实施工程--客户评估
过于强调风险
4、敏捷模型
以人为核心、迭代、循序渐进的开发方法
特点:
短周期开发
增量开发
程序员和测试人员编写自动化测试来监控开发进度
通过口头沟通、测试和源代码来交流系统的结构和意图
编写代码之前先写测试代码,也叫测试先行
人员素质要求比较高
要求掌握脚本语言编程
五、软件开发文档
需求分析文档
概要设计文档
详细设计文档
测试设计文档
测试用例
测试报告
六、软件测试概念
1、定义
经典定义:在规定的条件下对程序进行操作,以发现程序的错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程、
标准定义:是否满足规定的需求或弄清预期结果与实际结果的差异
测试目的:在于发现问题,检查系统是否满足要求
2、软件测试的方法和分类
按声明周期划分:
单元测试:编码过程中,用于自测
冒烟测试:一般测试最主要的功能
集成测试:模块与模块间的测试
系统测试:
验收测试:
按测试方法分类:
白盒测试:静态分析 动态分析
黑盒测试:功能测试 自动化测试 性能测试 安全测试
灰盒测试
其他·:
随机测试
探索式测试
阿尔法测试
贝塔测试
七、生命周期测试方法对比
单元测试 | 集成测试 | 冒烟测试 | 系统测试 | 验收测试 | |
测试阶段 | 模块后 | 单元测试完成后 | 提测后 | 冒烟测试通过后 | 发布前 |
测试对象 | 最小模块 | 模块间的接口 | 整个系统 | 整个系统 | 整个系统 |
测试人员 | 白盒测试或开发 | 白盒测试或开发 | 黑盒测试 | 黑盒测试 | 最终用户或需求方 |
测试依据 | 代码、注释、详细设计文档 | 单元测试模块、概要设计文档 | 冒烟测试用例 | 需求说明文档、测试方案、测试用例 | 用户需求、验收标准 |
测试方法 | 白盒测试 | 黑盒与白盒相间 | 黑盒测试 | 黑盒测试 | 黑盒测试 |
八、软件测试常用术语
1、C/S
客户端/服务端
2、B/S
浏览器/服务器
3、缺陷bug
软件中不符合用户需求的问题
4、环境
测试环境=软件+硬件+网络环境
5、测试用例
在测试执行前设计的一套详细的测试方案,包括测试环境、测试步骤、测试数据和预期结果
测试用例=输入+输出+测试环境
6、冒烟测试:
先验证一下软件的基本功能是否实现,是否具备可测性
7、阿尔法测试:
验收测试的一种:内部测试 用户、测试人员、开发人员共同参与
8、贝塔测试:
验收测试的一种:内侧后的公测、完全交给最终用户测试
九、软件测试的常见模型
1、V模型
计划、分析、设计、编码、测试和维护
早起错误可能等到后期才发现
2、W模型
强调迭代的开发模型或敏捷开发模型
特点:【活动串行】测试与开发同时进行,在V模型的基础上,增加了在开发阶段的同步测试
局限:仍然不支持迭代,减少了一定错误发生率,但是需按照流水线进行设计、编码和测试
3、H模型
特点:【活动并行】过程活动完全独立,贯穿于整个产品的周期,与其他流程并发地进行,某个测试点准备就绪时,就可以从测试准备阶段进行到测试执行阶段;软件测试可以进行尽早的进行;软件测试可以根据被测物的不同而分层次进行。
结论:软件测试应该尽早准备、尽早执行
4、X模型
十一、软件测试覆盖率
覆盖率是用来测试完整性的一个手段
特点:
可以检测测试是否充分
分析测试弱点在哪方面
指导我们设计增加覆盖率的测试用例
需求覆盖:被验证到的需求数量/总的需求总数
用例覆盖:验证过的用例数量/总的用例总数
十二、测试团队则指架构:
金字塔管理模式
矩阵式管理模式
十三、软件测试原则
1、所有测试都应追溯到用户需求
2、尽早启动测试工作
3、二八原则应用于软件测试
4、穷尽测试是不可能的
5、杀虫剂怪事 不断编写新的测试程序
6、前进两步、后退一步
每次修复之后,必须重新运行先前的所有测试用例,从而确保系统不会以隐蔽的方式被破坏
7、三心二意
细心、信心、耐心
沟通意识、预防意识
十四、软件测试规范
ISO9000
CMM