软件测试复习笔记
Posted dxj1016
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试复习笔记相关的知识,希望对你有一定的参考价值。
一、软件测试概述
1、为什么要进行软件测试?
在软件开发中,软件设计方案、需求说明书一样和编码过程中,都会存在片面、多变、理解与沟通不足的情况,导致软件“变样”。
2、软件测试的概念?
在软件产品开发的每一个环节都加入验证,保证每个环节的输出结果不出现偏差,从而保证产品的质量满足用户需求。这就是软件测试。
3、软件测试的定义的正反两面性?
①正向思维-验证软件正常工作
评价一个程序或系统的特性或能力并确定是否达到预期的结果–>在设计规定的环境下运行软件的所有功能,直至全部通过。
②逆向思维-假定软件有错误
测试是为发现错误而针对某个程序或系统的执行过程–>寻找容易犯错误的地方和系统的薄弱环节,试图破坏系统,直至找不出问题。
4、软件测试的目的?
软件测试的目的是以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险。
5、软件测试的原则?
①所有的软件测试都应追溯到用户需求
②尽早开展测试
③测试需要终止准则
④充分注意测试中的群集现象
⑤程序员应避免检查自己的程序
群集现象:程序在测试中发现的错误数目越多,则残留的错误数目也相应越多。
其它原则
- 设计测试用例时,应考虑各种情况
- pareto原则
- 对测试错误结果一定要有一个确认的过程
- 制定严格的测试计划
- 注意回归测试的关联性
- 妥善保存一切测试过程文档
“二八”原则:
6、应用软件常见的两种体系结构
①C/S结构:客户/服务器模式,通过特定的客户端程序访问服务器。移动App和微信下程序都属于C/S结构的应用软件
②B/S结构:浏览器/服务器模式,从C/S结构改进而来。
有些应用软件,是B/S和C/S的组合,从实现上分为两部分:前端和后端
前端:接收用户信息,传递给后端,显示数据
后端:对数据进行一系列操作处理(如增删改查)后,将结果保存到存储平台,从而满足用户的功能需求
7、常见软件系统的基本特征:
其中业务流程由若干个功能有序连接组成
8、为什么需要测试用例
①设计测试用例是为了更有效、更快地发现软件缺陷
②测试用例具有很高的有效性和可重复性,依据测试用例进行测试可以节约测试时间,提升测试效率
③测试用例具有良好的组织性和可跟踪性,有利于测试的管理
9、什么是测试用例?
测试用例就是为特定目标而设计的测试条件、测试数据及与之相关的测试规程的一个特定的使用实例或场景。
①其目标可以是测试某个程序路径或核实是否满足某个特定的需求。
②测试用例是有效地发现软件缺陷的最小测试执行单元
③包括:手工执行的测试用例和测试工具执行的测试用例
10、软件缺陷分类
软件错误(software error)
软件缺陷(software defect)
软件故障(software fault)
软件失效(software failure)
二、软件测试技术体系和流程
1、软件测试的分类
最常见的三种测试类型:
接口测试:就是集成测试,完成系统内单元之间接口的测试。
功能测试:开发完成后,直接运行软件,对前端的输入和输出功能进行测试,检验软件能否正常使用各项功能、业务逻辑是否清楚、是否满足用户需求。
性能测试:模拟场景测试性能,具体性能指标:请求响应事件,事务响应事件,数据吞吐量,每秒连接数等。
2、软件测试的级别
单元测试:对已实现的软件的最小单元进行测试,以保证构成软件的各个单元的质量。
集成测试:对模块(单元)之间的接口进行测试。
确认测试
系统测试:针对软件整体进行的测试,功能测试和非功能测试(易用性,性能,安全性,兼容性)
验收测试:验收测试按照项目任务书或合同、供需双方约定的验收依据文档对整个系统进行测试与评审,验收测试决定用户是否接收系统。
3、集成测试的基本模式
①非渐增式测试模式:先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序,也常被称为大棒模式。
②渐增式模式(持续集成):把下一个要测试的模块同已经测试好的模块结合起来进行测试,测试完成再把下一个应该测试的模块结合进来测试。
4、集成测试的实施方式
①自顶向下集成:从主控模式开始,沿着软件的控制层向下移动
②自底向上集成:从底层模块开始,逐步向上不断集成
③混合策略:先自底向上,再自顶向下;或者自顶向下和自底向上一起开始
5、软件测试的方法
黑盒测试:黑盒测试通过软件的外部表现来发现缺陷和错误。黑盒测试方法把测试对象看成一个黑盒子,完全不考虑程序内部结构和处理过程,仅针对程序是否能适当地接收输入数据、是否能产生正确的输出信息等进行测试。
白盒测试:通过对程序内部结构的分析与检测来寻找软件问题的方法称为白盒测试,又称结构测试或逻辑驱动测试。白盒测试可以把程序看成是一个装在透明的白盒子里的代码,通过检查程序的内部结构及逻辑路径是否正确、检查软件内部动作是否符合软件设计说明书的规定来发现程序中的缺陷
灰盒测试: 介于白盒测试与黑盒测试之间的测试。灰盒测试关注输出对于输入的正确性,同时也关注程序内部表现,但只是通过一些表面的现象、事件和标志来判断程序内部的运行状态。灰盒测试是基于程序运行时的外部表现同时又结合程序内部逻辑结构来设计用例、执行程序并采集程序路径执行信息和外部用户接口结果的测试技术。
6、软件测试的手段
手工测试
自动化测试:UI自动化测试、接口自动化测试、单元自动化测试
7、软件测试的流程
8、软件测试的模型
①V模型
②W模型
③Tmap Next模型
④敏捷模型
三、白盒测试用例设计
1、白盒测试技术概述
①白盒测试定义:根据模块内部结构,基于程序内部逻辑结构,针对程序语句、运行路径、变量状态等来检测程序内部动作或者运行是否符合设计规格要求,所有的内部成分是否按规定正常进行。又称为逻辑驱动测试,结构测试。
②分类:
静态白盒测试:源代码
人工检查:代码评审
静态分析:使用工具对程序的结构进行分析
动态白盒测试:程序结构
逻辑覆盖:对程序逻辑结构的遍历
路径覆盖:对程序的逻辑路径进行覆盖
2、控制流分析技术–通常使用控制流图对程序的结构进行分析
①控制流图:描述程序控制流的一种图示方法,由节点和控制流线组成。是对程序流程图的一种简化。
②节点:带标号的圆圈表示,可代表一个或多个语句、一个处理框序列和一个条件判定框(假设不包含复合条件)
③控制流线:带箭头的弧或线表示,可称为边。它代表节点之间的控制走向,即语句的执行。
④基本图形
⑤线性结构(顺序结构)
⑥条件判定结构
⑦while循环
⑧关注的内容
3、逻辑覆盖法
①原理:通过对程序逻辑结构的遍历,来实现测试对程序的覆盖 。
②概述:是白盒测试中动态测试技术主要方法之一,是以程序内部的逻辑结构为基础的测试技术。
③程序逻辑结构的复杂性:由判定节点的个数决定。
④关注点:判定表达式本身的复杂度
⑤原则:对程序代码中所有的逻辑值,都需要测试真值(True)和假值(False)的情况
1.语句覆盖:每条可执行语句至少应执行一次
语句覆盖是最弱的覆盖准则
2.判定覆盖:分支覆盖。每个判定节点取得每种可能(真或者假)的结果至少一次。
3.条件覆盖:每个简单判定条件的取真和取假情况至少执行一次。
4.条件/判定组合覆盖:判定节点里面每个简单条件的取真、取假情况至少执行一次,并且每个判定节点的取真和取假情况也至少执行一次。
5.条件组合覆盖:所有简单条件的所有可能的取值组合情况至少执行一次 。
条件组合覆盖是最强的覆盖准则
6.修改条件判定覆盖:判定覆盖+条件覆盖+独立影响性(每个判定节点中简单条件都应独立影响到整个判定节点的取值)
4、基本路径覆盖法
1.基本路径测试法(结构化测试):
是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中程序的每一条可执行语句至少执行一次。
2.基本步骤:
①根据源程序导出流图
②计算环路复杂性度量,确定基本路径集中独立路径的条数
③找到基本路径集中的独立路径
④推导出可以确保基本路径集中每条独立路径都被执行的测试用例
3.控制流图
4.控制流图相关概念:
①节点:带标号的圆圈表示,可代表一个或多个语句、一个处理框序列和一个条件判定框(假设不包含复合条件)。
②控制流线:带箭头的弧或线表示,可称为边。它代表节点之间的控制走向,即语句的执行。
③区域:边和结点圈定的区域叫做区域,当对区域计数时,图形外的区域也应记为一个区域。
④基本图形:
5、复合条件的控制流图
6.环路复杂性
由控制流图的环路数决定,在进行程序的基本路径测试时,从程序的环路复杂性可导出程序基本路径集合中的独立路径条数。
7.导出基本独立路径集
8、导出测试用例
9.示例
四、黑盒测试用例设计
1、黑盒测试概述
在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,直接进行测试。又称为数据驱动测试。
关注输入和输出;关注用户的需求;从用户的角度验证功能;
2、边界值测试
1.原理:在某个输入输出变量范围的边界上,验证系统功能是否正常运行。
2.示例
3.边界
4.边界的领域和测试数据
5.边界值测试流程总结
3、等价类划分法
1.等价类概念:
是某个输入域的子集,在该子集中每个输入数据的作用是等效的。
2.等价类划分:
将输入数据分成若干个子集(即等价类),从每个等价类选取少量代表性的数据作为测试用例。
3.等价类划分法基本原理
4.等价类划分的原则
5.覆盖指标
6.等价类组合的原则
7.等价类测试用例的设计
4、决策表
五、接口测试及工具
1、接口测试概述
2、接口测试基础
3、接口测试实例分析
4、接口测试工具
5、接口自动化测试
六、单元测试和集成测试
1、单元测试
1.定义:单元测试是对软件基本的组成单元进行独立的测试。
2.测试目标:单元模块被正确编码。验证代码和软件设计的一致性。
3.测试依据:详细设计描述
4.单元测试手段:静态测试和动态测试
5.单元测试工具
2、集成测试
1.定义:对模块(单元)之间的接口进行测试。
2.基本模式:非渐增式测试模式,渐增式测试模式(持续集成)
3.实施方式:自顶向下,自底向上,混合策略
4、持续集成
5、集成测试工具
以上是关于软件测试复习笔记的主要内容,如果未能解决你的问题,请参考以下文章