IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 软件工程(五):软件测试 -> 正文阅读

[开发测试]软件工程(五):软件测试

五、软件测试

(一)术语解释:

错误(Error):在软件生存期内的不希望或不可接受的人为错误,其结果是导致软件缺陷的产生。

缺陷(Defect):软件缺陷是存在于软件产品之中的那些不希望或不可接受的偏差,其结果是软件运行于某一特定条件时出现故障。

故障(Fault):软件运行过程中出现的一种不希望或不可接受的内部状态,若无适当措施(容错加以及时处理,便产生软件失效。

失效(Failure):软件运行时产生的一种不希望或不可接受的外部行为结果

(二)软件测试策略:

1、对象:

需求规格说明、设计规格说明、源程序

2、测试流程

在这里插入图片描述

3、测试类型:

在这里插入图片描述

(三)软件测试分类

1、单元测试

也称组件测试,验证开发人员所书写的单元模块的代码是否符合预期结果

由驱动模块和桩模块组成,驱动模块模拟被测模块的上级,将测试数据传入测试模块;桩模块模拟被测单元的下级,模拟实现子函数的功能

2、集成测试

在单元测试的基础上将所有模块按照总体设计的要求组装成系统进行测试

一次性集成:在完成单元测试之后一次性将所有单元组装在一起,难以定位错误,错误很多

增量式集成:分为自顶向下和自底向上,逐步把各模块集成在一起。自顶向下可以尽早测试程序的主要控制但是需要设计很多的桩模块;自底向上需要加入最后一个模块才有整体形象,设计相对简单

3、系统测试

在实际运行环境中进行非功能性测试,包括负载测试、性能测试、压力测试、恢复测试、安全测试和可靠性测试等

恢复测试是检验系统从软件或者硬件失败中恢复的能力,即采用各种人工干预方式使软件出错,而不能正常工作,从而检验系统的恢复能力(断电、恢复日志)

安全性测试是检查系统对非法入侵的防范能力

压力测试是检查系统在资源超负荷的情况下的表现(高并发,高数据输入)

性能测试常与压力测试一起进行,测试系统性能

4、验收测试

在系统发布之前的测试,验证软件的功能和性能是否满足用户所期望的要求

5、回归测试

在软件生命周期中任何一个阶段只要软件发生了改变就需要回归测试

6、静态测试与动态测试

静态测试:通过人工分析或程序正确性证明的方式来确认程序正确性

动态测试:通过动态分析和程序测试等方法来检查程序执行状态,以确认程序是否有问题

7、手工测试与自动化测试

手工测试:测试人员根据测试大纲中所描述的测试步骤和方法,手工地输入测试数据并记录测试结果

自动化测试:相对于手工测试而言,主要是通过所开发的软件测试工具、脚本等手段,按照测试工程师的预定计划对软件产品进行的自动测试

手工测试是不可替代的,自动化测试的工具并不灵活,也不具想象力,一般只能发现15%-30%的缺陷,手工测试能发现70%-85%

8、白盒测试和黑盒测试

(四)白盒测试

把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试

测试用例尽可能覆盖程序实现,范围越大越优良

1、语句覆盖

被测试程序中的每条可执行语句至少被执行一次

2、判定覆盖

每个判定的分支至少执行一次

3、条件覆盖

判定中的每个条件,真假至少各执行一次,要注意与或的短路功能,(&&语句中前面不成立,后面的判断不会执行),

4、判定/条件覆盖

满足判定和条件覆盖,和条件覆盖是等价的

5、条件组合覆盖

每个判定中的每个条件组合至少执行一次

6、基本路径测试

1.以设计或源代码为基础,画出相应的流图,每个节点只能有一个条件的判断,如果有如and这种逻辑运算符要分两个节点

在这里插入图片描述

2.确定所得流图的环复杂度

环复杂度=封闭区域数量+1

=边数-节点数+2

=判定节点数+1

3.确定独立路径的基本集合

独立路径:一条至少包含一条之前未经过的边的路径

所有独立路径的集合就相当于遍历执行了所有语句

独立路径条数<=环复杂度

4.准备测试用例,执行基本集合中每条路径

根据每条路径设计测试用例,有些独立路径可能不能独立被测试,只能作为另一个路径测试的一部分

7、循环测试

也是一种白盒测试技术,循环运行程序来发现错误,分为四种,无结构循环不能测试。

在这里插入图片描述

(五)黑盒测试

又称“功能测试” 、 “数据驱动测试”或“基于规格说明书的测试”,是一种从用户观点出发的测试。

将测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明

黑盒测试要求覆盖需求和风险,因为无法观测到内部构造所以应该穷举所有输入得到所有输出,并验证这些输出

1、等价类测试

穷举所有数据显然是不现实的,所以将无穷多数据缩减到有限个等价区域中,在每个等价类中选取少量具有代表性的数据作为测试数据,这样就可以通过测试等价区域完成穷尽测试

每一个输入一定且唯一属于一个等价类

等价类可以划分成有效等价类和无效等价类,有效等价类是一组有意义的数据集合用来检验系统指定功能和性能的;无效等价类是一组无意义的数据的集合,用来检验系统的容错性(边界值)

有效等价类的测试用例要包含尽可能多的有效等价类,这样方便测试

无效等价类只能包含一个,因为包含多个的话出错了你不知道是哪个类的原因

步骤:先划分等价类,再设计测试用例

在这里插入图片描述
在这里插入图片描述

2、边界值测试

是对输入或输出的边界值进行测试的一种方法, 它通常作为等价类划分法的补充,这种情况下的测试用例来自等价类的边界

3、场景法测试

系统运行存在一个基本流(主线任务)和多个备选流(支线任务)

设计场景来运行这些流线,每一个场景就相当于跑一个支线(主线是前提)

在这里插入图片描述

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-01-01 14:14:47  更:2022-01-01 14:17:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 5:54:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码