【学习笔记】软件测试-基础理论知识

1、测试阶段划分(按测试执行顺序)

  • 1.1、单元测试(Unit Testing)

定义:针对软件基本组成单元(软件设计的最小单位)来进行正确性检验的工作;
测试目的:检测软件模块对《详细设计说明书》的符合程度。

  • 1.2、集成测试(Integration Testing)

定义:在单元测试的基础上,将所有模块按照概要设计要求组装成为子系统或系统,验证组装后功能以及模块间接口是否正确的测试工作;
测试目的:检测软件模块对《概要设计说明书》的符合程度。

  • 1.3、系统测试(System Testing)

定义:将已经集成好的的软件系统,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他元素组合在一起,在实际运行(使用)环境下,对计算机系统进行的一系列的测试工作。
测试目的:与《需求规格说明书》做比较,发现软件与系统需求定义不符合或与之矛盾的地方。

  • 1.4、回归测试(Regression Testing)

定义:软件在测试或其他活动中发现的缺陷经过修改后,进行的测试;
测试目的:验证缺陷得到了正确的修复,同时对系统的变更没有影响以前的功能;
特点:回归测试可以发生在任何一个阶段,包括单元测试、集成测试和系统测试;
策略:

  1. 完全重复测试:重新执行前期建立的所有测试用例,并确认确认缺陷解决和修改的扩散影响性;
  2. 选择性重复测试:
  • 覆盖修改法:选择直接影响的用例;
  • 周边影响法:选择间接影响的用例;
  • 指标达成方法:达到指标的覆盖率等。

流程:

  1. 制定回归测试策略
  2. 确定测试的版本
  3. 按照回归测试策略执行回归测试
  4. 回归测试通过,关闭缺陷跟踪单(问题单)
  5. 回归测试不通过,缺陷跟踪单返回开发人员,经开发人员修改后再次进行回归测试

回归测试自动化:(需考虑的问题如下)

  1. 回归测试是一个重复的以前测试的测试,所以自动化是回归测试的追求;
  2. 自动化法包括:程序的自动运行、自动配置,用例的管理、自动输入,测试自动执行,测试结果自动采集、比较及结论的自动输出;
  3. 对比较稳定的可采用QTP、Robot、SilkTest等工具的“捕捉回放”工具;
  4. 为了能实现自动化需要用到脚本语言,如:TCL、Python、Perl等;
  5. 对比较复杂的过程,无法借助工具的需要自己开发专用工具;
  6. 尽早考虑回归测试的自动化,形成工具化、可继承和推广的。

回归测试是测试阶段中的重点。

  • 1.5、其他测试阶段
  1. α测试:用户在开发环境下进行的测试,评价软件FLURPS
  2. β测试:多用户在实际使用环境下进行的测试
  3. 验收测试:用户根据合同、《需求规格说明书》或《验收测试计划》对产品进行的验收测试

注:FLURPS即:功能、局域化、可用性、可靠性、性能、技术支持

2、单元测试、集成测试、系统测试的比较:

  • 测试方法:

单元测试属于白盒测试范畴;
集成测试属于灰盒测试范畴;
系统测试属于黑盒测试范畴;

  • 考察范围:

单元测试主要测试内部数据结构、逻辑控制、异常处理等;
集成测试主要测试模块间的接口与接口数据传递关系,以及模块组合后的整体功能;
系统测试主要测试整个系统相对于需求的符合度;

  • 评估基准:

单元测试主要通过逻辑覆盖率来评估;
集成测试主要通过接口覆盖率来评估;
系统测试主要通过测试用例对需求规格的覆盖率来评估;

  • 主要的测试文档:

测试计划:测试范围、方法、资源,以及相应测试活动的时间进度安排表的文档;
测试方案:为完成软件集成特性的测试而进行的设计测试方法的细节文档;
测试用例:为完成一个测试项的测试输入、预期结果、测试执行条件等因素的文档;
测试规程:执行测试时测试活动序列的文档;
测试报告:执行测试结果的文档;
测试日报:每天测试执行情况的记录和总结。

3、软件测试过程规范

首先来看看软件最权威的规范CMM(capability maturity model 能力成熟度模型)关于过程的要素的描述有哪些?

  1. 角色(rolse):执行者、工作者
  2. 入口准则(entry criteria):过程执行的前提条件
  3. 输入(input):过程所需资源
  4. 活动(activities):过程执行
  5. 输出(output):过程执行结果
  6. 出口准则(exit criteria):过程结束的条件
  7. 评审和审核(reviews and audits):监督活动
  8. 可管理和受控的工作产品(work products managed controlled):标准性的东西
  9. 测量(measurements):可以度量的
  10. 书面规程(documented procedures):计划文档类
  11. 培训(training):业务培训等
  12. 工具(tools):过程执行采用的工具

这些要素已经全面囊括了一个过程的方方面面,如果在软件流程中的每一个过程都按照这样的规范执行,那么软件质量就能得到一定的保证!
那么作为软件测试工作,在整个软件开发流程中的每一个过程中有哪些工作要做的呢?下面我将分角色、分阶段的来学习。

4、系统测试过程

在这里主要研究软件系统测试过程中的输入和输出,了解我们应该根据什么来做、要做什么以及我们做的先后顺序是怎么安排的过程。
系统测试计划阶段:
  输入:软件开发计划、软件测试计划、需求规格说明书
  输出:系统测试计划
系统测试设计阶段:
  输入:需求规格说明书、系统测试计划
  输出:系统测试方案
系统测试实现阶段:
  输入:需求规格说明书、系统测试计划、系统测试方案
  输出:系统测试用例、系统测试规程、系统测试预测试项
系统测试执行阶段:
  输入:系统测试计划、系统测试方案、系统测试用例、系统测试预测试项、系统测试规程
  输出:系统预测试报告、系统测试报告、缺陷报告

5、集成测试过程

集成测试计划阶段:
  输入:软件测试计划、概要设计说明书
  输出:集成测试计划
集成测试设计阶段:
  输入:概要设计说明书、集成测试计划
  输出:集成测试方案
集成测试实现阶段:
  输入:概要设计说明书、集成测试计划、集成测试方案
  输出:集成测试用例、集成测试规程
集成测试执行阶段:
  输入:集成测试计划、集成测试方案、集成测试用例、集成测试规程
  输出:集成测试报告、缺陷报告

6、单元测试过程

单元测试计划阶段:
  输入:详细设计说明书、软件测试计划
  输出:单元测试计划
单元测试设计阶段:
  输入:详细设计说明书、单元测试计划
  输出:单元测试方案
单元测试实现阶段:
  输入:详细设计说明书、单元测试计划、单元测试方案
  输出:单元测试用例、单元测试规程
单元测试执行阶段:
  输入:单元测试计划、单元测试方案、单元测试用例、单元测试规程
  输出:单元测试报告、缺陷报告

7、需求分析阶段

每个阶段有每个阶段的任务,这里将了解需求分析阶段的任务,及其软件项目各工作人员的任务所在。

  • 需求分析,完成SRS
  • 软件需求规格说明书的评审:检查遗漏和存在问题
  • 进行需求跟踪
  • 系统测试计划
  • 系统测试计划的评审

8、概要设计阶段

  • 软件系统各层设计,完成HLD
  • HLD的评审
  • 更新需求跟踪
  • 系统测试方案、用例的设计
  • 系统测试方案、用例的评审
  • 集成测试计划
  • 集成测试计划的评审

9 、详细设计阶段

  • 软件详细模块的设计,完成LLD
  • 详细设计的评审
  • 更新需求跟踪
  • 集成测试方案、用例的设计
  • 集成测试方案、用例的评审
  • 单元测试计划
  • 单元测试计划的评审

10、编码阶段

  • 软件编码
  • 对代码进行静态质量检查
  • 代码评审
  • 单元测试方案、用例的设计
  • 单元测试方案、用例的评审

11、测试阶段

  • 系统预测试项执行
  • 系统预测试报告工作
  • 执行各阶段测试用例
  • 各阶段的缺陷记录、修复
  • 各阶段日志报告
  • 各阶段缺陷的回归测试
  • 各阶段测试报告
  • 测试报告的评审

12、软件生命周期

问题定义——可行性分析——蓝图——系统设计——编码、调试和测试——验收与运行——维护升级到废弃

13、测试团队的职责

  1. 需求评审
  2. 测试计划
  3. 测试用例
  4. 测试用例评审
  5. 测试执行
  6. 缺陷报告
  7. 缺陷跟踪
  8. 测试报告

14、测试团队需要交付的文档

  1. 测试计划
  2. 测试用例
  3. 缺陷报告
  4. 测试报告

15、总体测试计划要素(总体测试计划后还有针对各个模块详细测试计划)

  1. 测试目标
  2. 测试范围
  3. 测试依据
  4. 测试类型
  5. 资源计划
  6. 测试要求
  7. 测试方法
  8. 测试工作流程
  9. 测试通过标准

16、测试用例要素

  1. 用例摘要
  2. 优先级
  3. 前置条件
  4. 输入数据
  5. 步骤
  6. 预期结果
  7. 实际结果

测试结果一般为这几种:通过、失败、阻塞、不适配、未执行

17、测试报告

--项目概述

--测试工作说明

--测试结果

--缺陷分析

--过程改进总结

--附录

18、其他

  • 三大方法:白盒、黑盒、灰盒
  • 测试阶段:α/β测试、系统测试、冒烟测试、回归测试、验收测试
  • 软件测试类型:功能测试、接口测试、性能测试(基准测试,   负载测试,峰谷测试,参入测试)自动化测试、安全性测试
  • Web测试方法:链接测试 、表单测试、数据效验 、Cookies测试、数据库测试、应用程序特定的功能需求 、导航测试 、图形测试 、内容测试 、表格测试 、整体界面测试 、兼容性测试
  • 软件测试用到的工具:QTP、LoadRunner、fidder、httpdebug、FTP、SecureCRT、MySQL、SVN、bugzilla、QC、Mantis、Jira、adb……

转载于:https://my.oschina.net/niepanLs/blog/2251754

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值