2019独角兽企业重金招聘Python工程师标准>>>
1、测试阶段划分(按测试执行顺序)
- 1.1、单元测试(Unit Testing)
定义:针对软件基本组成单元(软件设计的最小单位)来进行正确性检验的工作;
测试目的:检测软件模块对《详细设计说明书》的符合程度。
- 1.2、集成测试(Integration Testing)
定义:在单元测试的基础上,将所有模块按照概要设计要求组装成为子系统或系统,验证组装后功能以及模块间接口是否正确的测试工作;
测试目的:检测软件模块对《概要设计说明书》的符合程度。
- 1.3、系统测试(System Testing)
定义:将已经集成好的的软件系统,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他元素组合在一起,在实际运行(使用)环境下,对计算机系统进行的一系列的测试工作。
测试目的:与《需求规格说明书》做比较,发现软件与系统需求定义不符合或与之矛盾的地方。
- 1.4、回归测试(Regression Testing)
定义:软件在测试或其他活动中发现的缺陷经过修改后,进行的测试;
测试目的:验证缺陷得到了正确的修复,同时对系统的变更没有影响以前的功能;
特点:回归测试可以发生在任何一个阶段,包括单元测试、集成测试和系统测试;
策略:
- 完全重复测试:重新执行前期建立的所有测试用例,并确认确认缺陷解决和修改的扩散影响性;
- 选择性重复测试:
- 覆盖修改法:选择直接影响的用例;
- 周边影响法:选择间接影响的用例;
- 指标达成方法:达到指标的覆盖率等。
流程:
- 制定回归测试策略
- 确定测试的版本
- 按照回归测试策略执行回归测试
- 回归测试通过,关闭缺陷跟踪单(问题单)
- 回归测试不通过,缺陷跟踪单返回开发人员,经开发人员修改后再次进行回归测试
回归测试自动化:(需考虑的问题如下)
- 回归测试是一个重复的以前测试的测试,所以自动化是回归测试的追求;
- 自动化法包括:程序的自动运行、自动配置,用例的管理、自动输入,测试自动执行,测试结果自动采集、比较及结论的自动输出;
- 对比较稳定的可采用QTP、Robot、SilkTest等工具的“捕捉回放”工具;
- 为了能实现自动化需要用到脚本语言,如:TCL、Python、Perl等;
- 对比较复杂的过程,无法借助工具的需要自己开发专用工具;
- 尽早考虑回归测试的自动化,形成工具化、可继承和推广的。
回归测试是测试阶段中的重点。
- 1.5、其他测试阶段
- α测试:用户在开发环境下进行的测试,评价软件FLURPS
- β测试:多用户在实际使用环境下进行的测试
- 验收测试:用户根据合同、《需求规格说明书》或《验收测试计划》对产品进行的验收测试
注:FLURPS即:功能、局域化、可用性、可靠性、性能、技术支持
2、单元测试、集成测试、系统测试的比较:
- 测试方法:
单元测试属于白盒测试范畴;
集成测试属于灰盒测试范畴;
系统测试属于黑盒测试范畴;
- 考察范围:
单元测试主要测试内部数据结构、逻辑控制、异常处理等;
集成测试主要测试模块间的接口与接口数据传递关系,以及模块组合后的整体功能;
系统测试主要测试整个系统相对于需求的符合度;
- 评估基准:
单元测试主要通过逻辑覆盖率来评估;
集成测试主要通过接口覆盖率来评估;
系统测试主要通过测试用例对需求规格的覆盖率来评估;
- 主要的测试文档:
测试计划:测试范围、方法、资源,以及相应测试活动的时间进度安排表的文档;
测试方案:为完成软件集成特性的测试而进行的设计测试方法的细节文档;
测试用例:为完成一个测试项的测试输入、预期结果、测试执行条件等因素的文档;
测试规程:执行测试时测试活动序列的文档;
测试报告:执行测试结果的文档;
测试日报:每天测试执行情况的记录和总结。
3、软件测试过程规范
首先来看看软件最权威的规范CMM(capability maturity model 能力成熟度模型)关于过程的要素的描述有哪些?
- 角色(rolse):执行者、工作者
- 入口准则(entry criteria):过程执行的前提条件
- 输入(input):过程所需资源
- 活动(activities):过程执行
- 输出(output):过程执行结果
- 出口准则(exit criteria):过程结束的条件
- 评审和审核(reviews and audits):监督活动
- 可管理和受控的工作产品(work products managed controlled):标准性的东西
- 测量(measurements):可以度量的
- 书面规程(documented procedures):计划文档类
- 培训(training):业务培训等
- 工具(tools):过程执行采用的工具
这些要素已经全面囊括了一个过程的方方面面,如果在软件流程中的每一个过程都按照这样的规范执行,那么软件质量就能得到一定的保证!
那么作为软件测试工作,在整个软件开发流程中的每一个过程中有哪些工作要做的呢?下面我将分角色、分阶段的来学习。
4、系统测试过程
在这里主要研究软件系统测试过程中的输入和输出,了解我们应该根据什么来做、要做什么以及我们做的先后顺序是怎么安排的过程。
系统测试计划阶段:
输入:软件开发计划、软件测试计划、需求规格说明书
输出:系统测试计划
系统测试设计阶段:
输入:需求规格说明书、系统测试计划
输出:系统测试方案
系统测试实现阶段:
输入:需求规格说明书、系统测试计划、系统测试方案
输出:系统测试用例、系统测试规程、系统测试预测试项
系统测试执行阶段:
输入:系统测试计划、系统测试方案、系统测试用例、系统测试预测试项、系统测试规程
输出:系统预测试报告、系统测试报告、缺陷报告
5、集成测试过程
集成测试计划阶段:
输入:软件测试计划、概要设计说明书
输出:集成测试计划
集成测试设计阶段:
输入:概要设计说明书、集成测试计划
输出:集成测试方案
集成测试实现阶段:
输入:概要设计说明书、集成测试计划、集成测试方案
输出:集成测试用例、集成测试规程
集成测试执行阶段:
输入:集成测试计划、集成测试方案、集成测试用例、集成测试规程
输出:集成测试报告、缺陷报告
6、单元测试过程
单元测试计划阶段:
输入:详细设计说明书、软件测试计划
输出:单元测试计划
单元测试设计阶段:
输入:详细设计说明书、单元测试计划
输出:单元测试方案
单元测试实现阶段:
输入:详细设计说明书、单元测试计划、单元测试方案
输出:单元测试用例、单元测试规程
单元测试执行阶段:
输入:单元测试计划、单元测试方案、单元测试用例、单元测试规程
输出:单元测试报告、缺陷报告
7、需求分析阶段
每个阶段有每个阶段的任务,这里将了解需求分析阶段的任务,及其软件项目各工作人员的任务所在。
- 需求分析,完成SRS
- 软件需求规格说明书的评审:检查遗漏和存在问题
- 进行需求跟踪
- 系统测试计划
- 系统测试计划的评审
8、概要设计阶段
- 软件系统各层设计,完成HLD
- HLD的评审
- 更新需求跟踪
- 系统测试方案、用例的设计
- 系统测试方案、用例的评审
- 集成测试计划
- 集成测试计划的评审
9 、详细设计阶段
- 软件详细模块的设计,完成LLD
- 详细设计的评审
- 更新需求跟踪
- 集成测试方案、用例的设计
- 集成测试方案、用例的评审
- 单元测试计划
- 单元测试计划的评审
10、编码阶段
- 软件编码
- 对代码进行静态质量检查
- 代码评审
- 单元测试方案、用例的设计
- 单元测试方案、用例的评审
11、测试阶段
- 系统预测试项执行
- 系统预测试报告工作
- 执行各阶段测试用例
- 各阶段的缺陷记录、修复
- 各阶段日志报告
- 各阶段缺陷的回归测试
- 各阶段测试报告
- 测试报告的评审
12、软件生命周期
问题定义——可行性分析——蓝图——系统设计——编码、调试和测试——验收与运行——维护升级到废弃
13、测试团队的职责
- 需求评审
- 测试计划
- 测试用例
- 测试用例评审
- 测试执行
- 缺陷报告
- 缺陷跟踪
- 测试报告
14、测试团队需要交付的文档
- 测试计划
- 测试用例
- 缺陷报告
- 测试报告
15、总体测试计划要素(总体测试计划后还有针对各个模块详细测试计划)
- 测试目标
- 测试范围
- 测试依据
- 测试类型
- 资源计划
- 测试要求
- 测试方法
- 测试工作流程
- 测试通过标准
16、测试用例要素
- 用例摘要
- 优先级
- 前置条件
- 输入数据
- 步骤
- 预期结果
- 实际结果
测试结果一般为这几种:通过、失败、阻塞、不适配、未执行
17、测试报告
--项目概述
--测试工作说明
--测试结果
--缺陷分析
--过程改进总结
--附录
18、其他
- 三大方法:白盒、黑盒、灰盒
- 测试阶段:α/β测试、系统测试、冒烟测试、回归测试、验收测试
- 软件测试类型:功能测试、接口测试、性能测试(基准测试, 负载测试,峰谷测试,参入测试)自动化测试、安全性测试
- Web测试方法:链接测试 、表单测试、数据效验 、Cookies测试、数据库测试、应用程序特定的功能需求 、导航测试 、图形测试 、内容测试 、表格测试 、整体界面测试 、兼容性测试
- 软件测试用到的工具:QTP、LoadRunner、fidder、httpdebug、FTP、SecureCRT、MySQL、SVN、bugzilla、QC、Mantis、Jira、adb……