软件测试(持续更新)

软件测试概念

什么是软件测试?

软件测试就是使用人工或者自动手段来运行测试系统,并发现问题,解决问题的过程,其目的在于检 验他是否满足规定的需求或弄清预期结果与实际结果之间的差别。

测试法则

功能 、可靠性(安全方向) 、易用性(弱势群体)、效率 、可维护性 、可移植性(兼容性)

测试的目的

测试是为了发现系统中的错误而执行程序的过程。

测试对象

软件测试对象:程序、数据、文档、过程、硬件、网络

测试阶段

单元测试->集成(接口)测试->系统测试(可视化阶段)->验收测试(内测Alpha、公测Beta)

软件测试的分类

按 开发阶段来说,分为单元,集成,系统,验收。

按 测试技术来说,分为黑盒(功能和数据),白盒(结构和逻辑),灰盒(输入和输出的正确性,通过一些特征性现象,事件,标志来判断内部的运行状态)。

按 实际运行来说,分为静态和动态测试。

按 实施组织来说,分为开发测试(验收测试,α测试),客户测试(β测试),第三方测试(独立测试)。

测试原则

不可能进行完全测试

软件测试是有风险的行为

测试无法显示潜在的测试缺陷

充分注意软件缺陷的群集现象

要避免软件测试的杀虫剂现象

并非所有bug都是需要修复的

尽早和不断进行软件测试

测试模型

V模型
在这里插入图片描述
W模型
在这里插入图片描述

H模型
在H模型中,测试是一个独立的流程。贯穿于整个产品周期中,可以与其他的流程同步进行,当某个测试时间点就绪时,软件测试就从准备阶段进入执行阶段。
在这里插入图片描述

X模型
X模型左侧显示的是针对单独程序片段所进行的相分离的编码和测试,进行频繁交接后,集成成一个最终可执行的程序在对这些可执行程序进行测试。
在这里插入图片描述

测试用例

测试用例定义

测试用例是一组测试输入、执行条件和预期结果的集合,目的是满足一个特定的目标,比如执行一条特定的程序路径和检验是否符合一个特定的数据。

测试用例特点

一、测试用例具有代表性
二、测试结果是可判定
三、测试结果可以再现

测试用例设计的原则

一、使用成熟的测试方法来设计测试用例
二、保证测试用例数据的正确性和操作的正确性
三、确保测试用例具有一定的代表性
四、每个测试用例都应针对单一的测试项
五、保证测试结果是可以判定的和复现的
六、保证测试用例描述的清晰、准确、具体
七、测试用例应满足项目的时间、人员和资金要求

黑盒测试测试方法

常见的错误类型

一、检查程序功能能否按需求说明书的规定正常使用,测试各个功能是都有遗漏,检测性能等特性要求是否满足。
二、检测人机交互是否错误,检测数据结构或外部数据库访问是否错,程序是否能适当接收输入数据而产生正确的输出结果,并保持外部信息(数据库或者文件)完整性;
三、检测程序初始化和终止方面的错误。

测试方法

一、等价类划分法

标准等价类(只考虑有效数据,不考虑无效数据)
健壮等价类(考虑无效等价类,有效等价类只取一个值)
原则:按区间划分、按数值划分、按数值集合划分、按限制条件或规则划分、细分等价类

二、边界值分析法

原则:

(1)输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及超越这个范围边界的值作为测试数据。

(2)输入条件规定了值的个数,则用最大个数,最小个数,比最小个数-1,比最大个数+1的个数作为测试数据。

(3)将规则(1)(2)应用于输出条件,即设计测试用例使输出值达到边界值左右的值。

(4)如果程序的规格说明给出的输入域和输出域是有序集合,则应取集合中的第一个元素和最后一个元素作为测试数据。

(5)如果程序中使用了一个内部数据结构,应当选择这个数据结构中的边界上的值作为测试数据。

(6)分析规格说明书,找出其他可能的边界条件。

三、决策表法

优点:

能够将复杂的问题按照各种可能的情况全部列出来避免遗漏。利用决策表能够设计出完整的测试用例集合。运用决策表设计测试用例可以将条件理解为输入,动作为输出。

适用范围:

(1)规格说明以决策表的形式给出,或较容易转换为决策表;
(2)条件的排列排序顺序不会也不应影响执行操作;
(3)规则的排列排序顺序不会也不应影响执行操作;
(4)当某一个规则的条件已经满足,并确定要执行的操作,不必校验别的规则;
(5)当某一规则的条件要执行多个操作任务,这些操作的执行顺序无关紧要;
(6)if-else逻辑:恒等 if a then b ;非 if (not a)then b;或 if(a or b )then c ; 与if(a and b)then c
(7)输入变量之间存在逻辑关系
(8)涉及输入变量子集的计算
(9)输入与输出之间存在因果关系

四、因果图法

因果图适合解决输入条件组合复杂的情况。通常Ci表示原因,Ei表示结果。

因果图的主要关系:
恒等: 若C1 = 1 ,则E1 =1 ,否则E1 =0;

非:若 C1 =1 ,则E1 = 0,否则 E1 = 1;

或:若C1或C2或C3=1,则E1=1,否则E1 =0 或者是其他任意个输入;

与:C1和C2 =1,则E1=1,否则E1=0与也有可能是任意个输入 。

输入状态相互之间存在的某些依赖关系叫“约束”,存在以下几种约束:

(1)E约束(异):A和B中最多有一个可能为1,即A和B不能同时为1;

(2)I约束(或):A,B,C至少有一个必须是1,即A,B,C不能同时为0;

(3)O约束(唯一):A,B必须有一个且仅有一个1;

(4)R约束(要求):当A为1时,B必须为1;

输出条件的约束只有一个:

(1)M约束(强制):若结果A为1时,则结果B 强制为0。

五、场景法

白盒测试

白盒测试(逻辑驱动测试)主要是内部逻辑测试为主。
白盒测试可分为静态测试(不执行程序情况下,软件系统的描述、表示和规格上的错误)和动态测试(执行程序,主要包括逻辑覆盖、基本路径法等)。

白盒测试方法

一、静态测试法(代码审查、代码走查、桌面检查)
二、逻辑覆盖法(语句覆盖法、判定覆盖法、条件覆盖法、判定-条件覆盖法、组合-条件覆盖法、路径覆盖法)
三、基本路径法(控制流图、环形复杂度、独立路径)
四、循环测试法
五、程序插桩技术
六、最少测试用例数计算(控制结构简化、估算方法)

单元测试

所谓的“单元”的意思:具有明确的功能、具有明确的规格定义、具有与其他部分明确的接口定义、能够与程序的其他部分清晰的区分。

单元测试定义

单元测试又称为模块测试,是最小单位的测试,其依据是详细设计规格说明书,对模块内所有重要的控制路径设计测试用例。单元测试多采用白盒测试技术,系统内多个模块可以并行地进行单元测试。

单元测试对象

单元测试所说的单元是指函数,在面向对象编程中,单元测试的单元是指类。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值