软件测试之功能测试详解

news2024/11/25 2:05:24

一、功能测试概述

1)功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。

2)功能测试,根据产品特性、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。本地化软件的功能测试,用于验证应用程序或网站对目标用户能正确工作。使用适当的平台、浏览器和测试脚本,以保证目标用户的体验将足够好,就像应用程序是专门为该市场开发的一样。功能测试是为了确保程序以期望的方式运行而按功能要求对软件进行的测试,通过对一个系统的所有的特性和功能都进行测试确保符合需求和规范。

3)Functional testing(功能测试),也称为behavioral testing(行为测试),根据产品特性、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。本地化软件的功能测试,用于验证应用程序或网站对目标用户能正确工作。使用适当的平台、浏览器和测试脚本,以保证目标用户的体验将足够好,就像应用程序是专门为该市场开发的一样。

4)功能测试是为了确保程序以期望的方式运行而按功能要求对软件进行的测试,通过对一个系统的所有的特性和功能都进行测试确保符合需求和规范。

5)功能测试也叫黑盒测试或数据驱动测试,只需考虑需要测试的各个功能,不需要考虑整个软件的内部结构及代码.一般从软件产品的界面、架构出发,按照需求编写出来的测试用例,输入数据在预期结果和实际结果之间进行评测,进而提出更加使产品达到用户使用的要求。

6)黑盒测试(Black-box Testing,又称为功能测试或数据驱动测试)是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。

同时,我也为大家准备了一份软件测试视频教程(含面试、接口、自动化、性能测试等),就在下方,需要的可以直接去观看,也可以直接点击文末小卡片免费领取资料文档

软件测试视频教程观看处:

B站封神的接口测试教程,30天练完70个项目实战(含自动化测试、性能测试),学完即就业,永久白嫖!

二、黑盒设计方法

黑盒测试用例设计方法,主要包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法等

1.等价类划分法

等价类划分法是把程序的输入域分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。

1)应用场景:

某程序规定:“输入三个整数a,b,c分别作为三边的边长构成三角形.通过程序判定所构成的三角形的类型,当此三角形为一般三角形\等腰三角形及等边三角形时,分别作计算...”.用等价类划分方法为该程序进行测试用例设计.

2)分析题目中给出和隐含的对输入条件的要求:

⑴整数  

⑵三个数  

⑶非零数  

⑷正数  

⑸两边之和大于第三边  

⑹等腰  

⑺等边

3)如果a、b、c满足条件1-4,则输入下列四种情况之一:

①如果不满足条件5,则呈现输出为“非三角形”

②如果三条边相等即满足条件7,则呈现输出为“等边三角形”

③如果只有两条边相等,即满足条件6,则呈现输出为“等腰三角形”

④如果三条边都不相等,则程序输出为“一般三角形”

4)覆盖有效等价类的测试用例:

  a      b      c               覆盖等价类号码

  3      4      5               1-7

  4      4      5               1-7,8

  4      4      5               1-7,9

  5      4      5               1-7,10

  4      4      4               1-7,11

5)覆盖无效等价类的测试用例:

2.边界值分析法

1)边界值分析法就是对输入火输出的边界值进行测试的一种黑盒测试方法.同城边界值分析法是作为对等价类划分法的补充。

2)使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或者刚刚小于边界的值作为测试数据。

3)通常情况下,软件测试所包含的边界检验有几种类型:数字,字符,位置,重量,大小,速度,方位,尺寸,空间等相应地,以上类型的边界值应该在:最大/最小,首位/末位,上/下,最快/最慢,最高/最低,最短/最长,空/满等情况下,利用边界值作为测试数据。

4)应用场景

NextDate函数的边界值分析测试用例 

在NextDate函数中,隐含规定了变量mouth和变量day的取值范围为1≤mouth≤12和1≤day≤31,并设定变量year的取值范围为1912≤year≤2050 

3.错误推断法

  基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法.

4.因果图法

 因果图法师一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法.

 采用因果图法设计测试用例的步骤:

  ① 分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符.

  ② 分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的关系,根据这些关系,画出因果图.

  ③ 由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现,为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件.

  ④ 把因果图转换为判定表

  ⑤ 把判定表的每一列拿出来作为依据,设计测试用例.

5.判定表驱动法

1)判定表通常由4个部分组成

  ① 条件桩:列出了问题得所有条件.通常认为列出的条件的次序无关紧要

  ② 动作桩:列出了问题规定可能采取的操作.这些操作的排列顺序没有约束

  ③ 条件项:列出针对它左列条件的取值.在所有可能情况下的真假值.

  ④ 动作项:列出在条件项的各种取值情况下应该采取的动作.

2)判定表的建立步骤

  ① 确定规则的个数.加入有n个条件.每个条件有两个取值(0,1),故有2n种规则.

  ② 列出所有的条件桩和动作桩

  ③ 填入条件项

  ④ 填入动作项.等到初始判定表

  ⑤ 简化.合并相似规则

3)应用场景:

问题要求:"....对功率大于50马力的机器、维修记录不全或已运行10年以上的机器,应给予优先的维修处理...",这里假定,"维修记录不全"和"优先维修处理"均已在别处有更严格的定义.请建立判定表

4)解答:

  ① 确定规则的个数:这里有3个条件,每个条件有两个取值,故应有2*2*2=8种规则

  ②列出所有的条件桩和动作桩

  ③ 填入条件项.可从最后1行条件项开始,逐行向上填满.如第三行是:Y N Y N Y N Y N,第二行是:Y Y N N Y Y N N 等等

  ④ 填入动作桩和动作项.这样便得到形如图的初始判定表

  ⑤ 化简,合并相似规则后得到图

 6.正交试验法

依据Galois理论,从大量的(实验)数据(测试例)中挑选适量的,有代表性的点(例),从而合理地安排实验(测试)的一种科学实验设计方法.

 7.功能图法

功能图由状态迁移图和布尔函数组成.状态迁移图用状态和迁移来描述.一个状态指出数据输入的位置(或时间),而迁移则指明状态的改变.同事要依靠判定表或因果图表示的逻辑功能。

8.场景法

1)事件触发时的情景便形成了场景,二同一事件不同的触发顺序和处理结果就形成事件流。

2)应用场景

ATM例子的流程示意图

3)场景设计:

 4)用例设计:

 5)数据设计:

9.测试用例设计综合策略

1)Myers提出了使用各种测试方法的综合策略

  ① 在任何情况下都必须使用边界值分析方法,经验表明用这种方法设计出测试用例发现程序错误的能力最强

  ② 必要时用等价类划分方法补充一些测试用例

  ③ 用错误推测法再追加一些测试用例

  ④ 对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度,如果没有达到要求的覆盖标准,应当再补充足够的测试用例

  ⑤ 如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用因果图法

2)测试用例的设计步骤

  ① 构造更加设计规格得出的基本功能测试用例

  ② 边界值测试用例

  ③ 状态转换测试用例

  ④ 错误猜测测试用例

  ⑤ 异常测试用例

  ⑥ 性能测试用例

  ⑦ 压力测试用例

3)优化测试用例的方法

  ① 利用设计测试用例的8中方法不断的对测试用例进行分解与合并

  ② 采用遗传算法理论进化测试用例

  ③ 在测试时利用发散思维构造测试用例

三、黑盒测试发现的错误类型

(1)功能错误或遗漏
(2)界面错误
(3)数据结构或外部数据库访问错误
(4)性能错误
(5)初始化和终止错误

四、测试用例设计方法

(1)等价类划分方法
(2)边界值分析方法
(3)错误推测方法
(4)因果图方法
(5)判定表驱动分析方法
(6)正交实验设计方法
(7)功能图分析方法

五、总结

PS:这里分享一套软件测试的自学教程合集。对于在测试行业发展的小伙伴们来说应该会很有帮助。除了基础入门的资源,博主也收集不少进阶自动化的资源,从理论到实战,知行合一才能真正的掌握。全套内容已经打包到网盘,内容总量接近500个G。

☑ 240集-零基础到精通全套视频课程
☑ [课件+源码]-完整配套的教程
☑ 18套-测试实战项目源码
☑ 37套-测试工具软件包
☑ 268道-真实面试题
☑ 200个模板-面试简历模板、测试方案模板、软件测试报告模板、测试分析模版、测试计划模板、性能测试报告、性能测试报告、性能测试脚本用例模板(信息完整)

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1024268.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qt5开发及实例V2.0-第六章Qt图形与图片

Qt5开发及实例V2.0-第六章Qt图形与图片 第6章 Qt5图形与图片6.1 Qt 5位置相关函数6.1.1 区别概述6.1.2 【实例】 6.2 Qt 5基础图形的绘制6.2.1 绘图框架设计6.2.2 绘图区的实现6.2.3 主窗口的实现 6.3 Qt 5双缓冲机制6.3.1 原理与设计6.3.2 绘图区的实现6.3.3 主窗口的实现 6.4…

Docker搭建DNS服务器--use

前言 DNS服务器是(Domain Name System或者Domain Name Service)域名系统或者域名服务,域名系统为Internet上的主机分配域名地址和IP地址。 安装 2.1 实验环境 IP 系统版本 角色 192.168.40.121 Ubuntu 22.10 DNS服务器 192.168.40.122 Ubuntu 22.10 测试机器 2.2 …

使用正确的命令重启WSL子系统

问题: 大家都知道一般Linux系统重启非常简单,但是在WSL子系统中执行以下两个重启命令是完全无效的。 $ reboot $ shutdown -r # 执行命令后提示如下: System has not been booted with systemd as init system (PID 1). Cant operate. Fail…

C# OpenCvSharp 图片模糊检测(拉普拉斯算子)

效果 项目 代码 using OpenCvSharp; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Windows.Forms.VisualStyl…

电脑屏幕实时监控软件有哪些(监控电脑操作的软件叫什么?)

随着科技的不断发展,人们对于电脑使用的需求也越来越高。无论是工作还是娱乐,我们都希望能够更加高效地利用电脑。为了满足这一需求,实时监控电脑屏幕软件应运而生。本文将为大家介绍几款实用的实时监控电脑屏幕软件,帮助大家更好…

架构问题:技术选型

1. 几款数据库特性及如何选型 1.MySQL:一种常用的开源关系型数据库管理系统,可以快速访问大量数据,并支持多用户同时访问。其最大的优点在于成本低,易于安装和配置,因此被广泛应用于各种中小型企业和网站。支持读写分离…

React 全栈体系(九)

第五章 React 路由 一、相关理解 1. SPA 的理解 单页 Web 应用(single page web application,SPA)。整个应用只有一个完整的页面。点击页面中的链接不会刷新页面,只会做页面的局部更新。数据都需要通过 ajax 请求获取, 并在前端…

软考 -- 计算机学习(2)

文章目录 一、安全性知识1.1 信息安全和信息系统安全1.2 信息安全技术1.3 网络安全技术 二、多媒体技术三、软件工程基础知识3.1 信息系统生命周期3.2 软件过程模型3.3 信息系统开发方法3.4 系统分析和设计概述3.5 结构化开发方法3.6 系统运行与维护 四、项目管理4.1 进度管理4…

(避开网上复制操作)最详细的树莓派刷机配置(含IP固定、更改国内源的避坑操作、SSH网络登录、VNC远程桌面登录)

一、准备工作 SD卡格式化 二、 树莓派系统环境搭建(官方) 官方镜像 1.1、 必备的配件 读卡器, 内存卡(强烈推荐 32GB 内存卡, #lite 命令行界面版本至少需要 8G, 图形化带桌面版镜像需要 16GB&#xf…

Java之异常的详细解析

1. 异常 1.1 异常概念 异常,就是不正常的意思。在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将受影响.在程序中的意思就是: 异常 :指的是程序在执行过程中,出现的非正常的情况,最…

web自动化jenkins+git+allure

jenkins -- 持续集成平台 -- 持续集成的场景 -- 【持续】【集成】自动执行你的任务 --- 定时任务 -- 结果通知 -- 报告展示安装jenkins --- http://testingpai.com/article/16092251322041、工作空间 - jenkins的工作空间job任务的工作空间 -- 给任务存放数据/资料 -- 生成的…

闭着眼睛安装Neoj4版本(5.12.0 Community windows)

1.安装 Java SE 17.0.5 (及以上,建议和我一样),安装完配置环境变量,成功标志(cmd输出java -version的内容) 1.上Neo4j Download Center - Graph Database & Analytics 3. 4.进入cmd &#…

tcpdump常用命令

需要安装 tcpdump wireshark ifconfig找到网卡名称 eth0, ens192... tcpdump需要root权限 网卡eth0 经过221.231.92.240:80的流量写入到http.cap tcpdump -i eth0 host 221.231.92.240 and port 80 -vvv -w http.cap ssh登录到主机查看排除ssh 22端口的报文 tcpdump -i …

Java拓展——常见数据结构(数组,栈,链表,树,图)

Java基础11——数据结构 文章目录 Java基础11——数据结构数据结构常见的数据结构数组栈栈简介如何创建一个类实现栈的功能?**栈使用场景**队列队列简介如何实现?**队列分类**链表**单链表****循环链表****双向链表****双向循环链表****链表使用场景****数组** **vs** **链表…

听GPT 讲Istio源代码--cni

在 Istio 项目中, cni: CNI 目录包含了 Istio CNI 插件的相关代码和配置文件。CNI(Container Network Interface)是一个用于配置容器网络的接口规范。Istio CNI 插件用于将 Istio 的网络功能集成到容器运行时环境中,以便实现对微服…

Nvidia计算卡扫盲

title: Nvidia计算卡扫盲 sidebarDepth: 4 layout: AtmLayout GPU 大的方面来讲, 由显存计算单元组成; 显存 GPU板卡上的DRAM容量大,速度慢,CPU和GPU都可以访问 计算单元 Streaming Multiprocessor,执行计算, 每个…

【FAQ】安防监控系统/视频云存储/监控平台EasyCVR服务器解释器出现变更该如何修改?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

开发高性能知识付费平台:关键技术策略

引言 在构建知识付费平台时,高性能是确保用户满意度和平台成功的关键因素之一。本文将探讨一些关键的技术策略,帮助开发者打造高性能的知识付费平台。 1. 前端性能优化 使用CDN加速资源加载 使用内容分发网络(CDN)来托管和加…

解决Office Word另存为PDF卡死的问题

今天突然间遇到这个问题,在网上找了好久都没有想要的答案。后来一步一步摸索终于找到了问题所在,希望这篇文章能帮助有同样问题的各位! 1.问题 当word文件点击另存为PDF格式时,下一刻光标变为加载状态,并且一直在转圈…

数据结构----链式栈

目录 前言 链式栈 操作方式 1.存储结构 2.初始化 3.创建节点 4.判断是否满栈 5.判断是否空栈 6.入栈 7.出栈 8.获取栈顶元素 9.遍历栈 10.清空栈 完整代码 前言 前面我们学习过了数组栈的相关方法,(链接:线性表-----栈(栈…