软件测试之功能测试_软件功能测试-程序员宅基地

技术标签: 功能测试  

什么是功能测试

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

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

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

功能测试的方法

功能测试也叫黑盒测试,相当于把整个测试对象看作一个黑匣子,我们看不到黑匣子的内部结构和运行方式,但是却可以通过外部表现来对他进行功能方面的测试,这就是功能测试。

黑盒测试与之对应的有白盒测试,白盒测试主要是针对软件内部的代码逻辑进行测试,二者相辅相成,都是软件测试过程中的不同方法。

黑盒测试试图发现以下类型的错误:
(1)功能设计上的问题或者遗漏
(2)界面出现错误
(3)数据结构或外部数据库访问错误
(4)性能出现错误
(5)初始化和终止错误

黑盒测试设计测试用例的方法有:等价类划分法、边界值法、判定表法、因果图法、错误推断法、正交实验设计法。

一、等价类划分法

等价类划分法解决了不能穷举测试数据的问题,只要数据值是明确的,就可以使用等价类划分法。
等价类分为有效等价类和无效等价类

有效等价类 无效等价类
输入的正确且合理的数据以此验证该功能是否能够正确正常的运行,验证软件设计是否符合我们规格说明中的要求 通过输入对程序规格说明中不合理、不正确、无意义的数据来验证在异常输入数据的情况下程序是否也会出现异常
若输入条件规定了取值范围或者值的个数,以ATM机取款为例
取款条件
100<=单次取款额度<=10000

那么根据取款条件,我们就可以划分有效等价类和无效等价类

有效等价类 无效等价类
取款金额:500 取款金额:50、11000

这里有效等价类就1个、无效等价类有2个

若输入值是布尔类型

那么可以设置一真一假的有效等价类和无效等价类

若输入值是规定了必须要遵循的原则,可划分为一个有效等价类(符合规则)和若干个无效等价类,以保存联系人手机号为例
有效等价类 无效等价类
11位数字号码 输入字母
输入特殊字符
输入10位
输入12位
若输入值规定了符合好几个原则,则可划分为多个有效等价类和若干个无效等价类,以qq密码为例
有效等价类 无效等价类
输入数字 输入单引号或双引号
输入字母 输入空格
输入特殊符号 输入汉字
若规定了输入数据的一组值(假定n个),且程序对不同输入值做不同处理,则可划分为n个有效等价类(每个允许的输入值为一个有效等价类)和一个无效等价类(所有不允许的输入值的集合),以学历选择为例
有效等价类 无效等价类
专科 小学 初中 高中 职高
本科
硕士
博士

二、边界值法

边界值法是对等价类划分法的一个补充,边界值一般都是去等价类的边缘进行查找。一般大量的错误会出现在输入输出的边界上,因此使用各种边界值去设计测试用例能找出更多的BUG

边界值点分为上点、内点和离点

上点 内点 离点
区间的端点,如0<x<5或0<=x<5,那么上点都是0和5 上点之间的任意一点 最靠近上点的点,开内闭外,如0<x<5,那么离点就是1和4,如果 0<=x<=5,那么离点就是-1和6,如果0<x<=5,那么离点就是1和6

该图转自CSDN @小宝的宝呢

三 、判定表法

判定表法又称决策表,他是以表格的形式,在处理比较复杂的问题时,统计多条件下的各种情况出现的可能性,然后全部列举下来,利用判定表法能够写出更全面的测试用例

适用范围:相比于等价类划分法和边界值法,他们针对的是单个条件在输入输出时的取值问题,而判定表法更多的是考虑到各种条件的相互组合和输入输出的相互制约当中。

判定表的组成:
条件桩:列出问题的所有条件,列出条件的次序无关紧要
动作桩:列出问题中可能采取的操作,操作的排列顺序没有约束
条件项:列出条件对应的取值,所有可能情况下的真假值
动作项:列出条件项的各种取值情况下应该采取的动作结果

四、因果图法

因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,她适用于检查程序输入条件的各种组合情况,适合于描述多种输入条件的组合、相应产生多个动作的方法。

因果图的四个好处:

(1)考虑多个输入之间的相互组合、相互制约关系。

(2)指导测试用例的选择。能够指出需求规格说明书描述中存在的问题。

(3)能够帮助测试人员按照一定的步骤,高效率地开发测试用例。

(4)因果图法是将自然语言规格说明转化成形式语言规格说明的一种严格的方法,可以指出规格说明书存在的不完整性和二义性。

1、因果图的基本关系------因果符号(恒等、非、或、与)---------因果关系

(1)在这里插入图片描述

恒等:条件c1满足要求时,一定会输出结果e

若c1为1,则e1也为1,否则e1为0。

(2)在这里插入图片描述

非(-):条件c1满足要求时,一定不会输出结果e

若c1为1,则e1也为0,否则e1为1。

(3)在这里插入图片描述
或(^):条件c1、c2、c3任何一项满足要求时,就会输出结果e

 若c1或c2或c3为1,则e1也为1,否则e1为0。

(4)在这里插入图片描述
与:条件c1、c2、c3同时满足要求时,才会输出结果e

若c1和c2和c3都是1,则e1也为1,否则e1为0。

2、因果图的基本关系------原因符号( 异、或、唯一、要求)--------原因与原因之间的关系

(1)
在这里插入图片描述

异(E约束,Exclusive):原因a、b中只能有一个为真(只有2个条件)

 a和b中至多有一个可能为1,即a和b不能同时为1。(不可能同时为1,但可以同时为0)

(2)
在这里插入图片描述

或(I约束,Inclusive):原因a、b中至少有一个为真(a为真,b也可以为真)

   a和b中至少有一个必须是1,即a和b不能同时为0。(可以同时为1)

(3)
在这里插入图片描述

唯一(O约束,One and Only):在多组判定条件中,有且只有一个为真(多个条件)

  a和b中必须有一个是1,且有且仅有1个为0。(有a无b,有b无a)

(4)
在这里插入图片描述
要求(R约束,Request):原因a满足条件时,原因b一定满足条件

 a是1时,b必须是1,即不可能a是1时b是0。

五、场景设计法

现在的软件几乎都是用事件触发控制流程的。测试时,可以生动地描绘出时间触发时的情景,有利于设计测试用例,同时使测试用例更容易理解和执行

场景业务分为基本流、备选流和异常流
在这里插入图片描述
基本流:基本流表示业务流程输入都正确,能达到业务目标
(插卡—>输入正确密码—>输入金额—>取款—>取卡)

备选流:备选流表示通过业务流程时输入错误(或者操作错误)导致流程存在反复,但是经过纠正过后任然能达到目的的流程
(插卡—>输入错误密码—>输入正确密码—>输入金额—>取款—>取卡)

异常流:异常流表示通过业务流程时输入错误(或者操作错误)产生异常终止的流程
(插卡—>输入3次错误密码—>吞卡)

基本流:只有一种情形,中间的所有业务都是正确的,最后达到的结果也是正确的,这个场景就是基线
备选流:
1、业务流程开始—>业务流程反复—>业务流程介绍
2、业务流程开始—>业务流程反复—>业务流程中断—>未结束
异常流:
业务流程开始—>业务流程中断—>未结束(在这种情况下业务流程还没有走完)

六、错误推断法

凭着直觉和经验来设计测试用例,它是根据之前项目相关的bug数据总结来的

第三方软件测试

如果一个公司没有专业的软件测试人员或者需要CNAS或CMA认证的软件测试报告,就可以选择第三方软件测试机构。选择第三方软件测试机构首先要考虑的是公司的资质问题,正规的软件测试机构必须要有CMA、CNAS证书,其次要拥有强大的软件测试团队,最后要有专业的软件测试环境。这里推荐成都精正检测技术有限公司,拥有CMA、CNAS证书,软硬件检测环境达标,可出具公正权威的软件测试报告。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/skyskr/article/details/131429773

智能推荐

【兴趣书签】SOHO生活——理想的生活方式_soho一族的生活方式-程序员宅基地

文章浏览阅读1.3k次。什么是SOHO生活SOHO,是英文small office home office的头一个字母的拼写,就是在家里办公、小型办公的意思。 对既定生活模式的背叛,也是对未来生活的一种变通,使得越来越多的高级管理人员、白领和IT人士正在加入SOHO一族。近年来,在北京、上海、广州等大城市,“soho”成为追求自由创业者的想往。例如,最新公布的社会调查显示,广州目前符合SOHO定义的年青人约有20万。 不_soho一族的生活方式

深度学习基础--上采样(upsample)的方法_深度学习自适应上采样-程序员宅基地

文章浏览阅读1.9w次。上采样(upsample)的方法  在神经网络中,扩大特征图的方法,即upsample/上采样的方法  1)unpooling:恢复max的位置,其余部分补零  2)deconvolution(反卷积):先对input补零,再conv  3)插值方法,双线性插值等;  4)扩张卷积,dilated conv;..._深度学习自适应上采样

基于STM32串口通信的ESP8266WiFi模块使用_cipmux and cipserver must be 0-程序员宅基地

文章浏览阅读8.8w次,点赞196次,收藏1.9k次。掌握esp8266的使用可以实现真正的万物物联。esp8266wifi通信对于MCU而言归结到底还是串口或spi通信。因此,掌握RS232通信协议、SPI通信协议以及esp8266的配置就可以基本搞定WiFi模块的使用。参考文章:[1] ESP8266WiFi模块AT指令入门指南[2] ESP8266 WIFI串口通信模块使用详解(实例:附STM32详细代码)[3] STM32串口接收..._cipmux and cipserver must be 0

win7系统远程桌面 无法连接到服务器,win7系统远程连接提示“由于以下原因无法连接”的解决方法...-程序员宅基地

文章浏览阅读1.4k次。很多小伙伴都遇到过win7系统远程连接提示“由于以下原因无法连接”的困惑吧,一些朋友看过网上零散的win7系统远程连接提示“由于以下原因无法连接”的处理方法,并没有完完全全明白win7系统远程连接提示“由于以下原因无法连接”是如何解决的,今天小编准备了简单的解决办法,只需要按照 1)未启用对服务器的远程访问 2)远程计算机已关闭的顺序即可轻松解决,具体的win7系统远程连接提示“由于以下原因无法连..._win7 无法远程 到服务器

vue_element-admin整合SpringBoot实现登录_vue-element-admin 整合springboot登录-程序员宅基地

文章浏览阅读3.4k次。SpringBoot实现vue-admin-template登录接口vue-admin-templatevue-admin-template是一个简化版的vue-element-admin的模板,适合vue用来做项目的搭建,虽然官方文档以及花裤衩前端大佬在博客中已经将大部分的疑难杂症解决了,但当完全自己搭建的时候才发现多折腾vue-admin-template登录接口请求详解要想搞懂一个接口,最好的方式就是1.去看接口的定义声明的参数2.发送请求查看返回的数据格式开始1.先配置跨域等基_vue-element-admin 整合springboot登录

百度离线地图瓦片下载_百度瓦片地图下载-程序员宅基地

文章浏览阅读2.2k次。瓦片简介百度离线地图是由多层级的多张瓦片组成的,存放在titles文件夹下,层级越高,瓦片越多,显示的地图越详细下载的瓦片有png和jpg等格式,我下载的png格式没法用,后面全改成jpg格式就可以了将下载的瓦片按照下载级别放到对应的文件夹下瓦片获取从别的博主那找了两种获取方式1、链接: http://www.xiaoguo123.com/p/baidumap_offline_v2/.从这个链接里边的网盘下载,按照博主的介绍一步步做,一定要看使用前必读,需要按照用前必读改一下百度的密钥这个瓦_百度瓦片地图下载

随便推点

Android错误日记(一)_错误日记在哪儿手机板-程序员宅基地

文章浏览阅读234次。导入jar包后运行报出ClassNotFoundException异常:导入jar包时吧Android Private Libraries remove掉了,导致异常出现Android Private Libraries:表示放在libs里面的jar包引用,视为私有引用。存放的是android私有的库(libs目录下的)。添加jar包到libs里面,系统自动把jar加载到andr_错误日记在哪儿手机板

5G NR—— RRC_INACTIVE状态-程序员宅基地

文章浏览阅读4.6w次,点赞12次,收藏167次。RRC_INACTIVE是这样一种状态,UE仍然保持在CM-CONNECTED状态、且UE可以在RNA区域内移动而不用通知NG-RAN。UE处于RRC_INACTIVE状态时,最后一个服务gNB保留UE的上下文和UE相关联的与服务AMF和UPF的NG连接。从核心网看终端,其就和UE处于连接态一样。当UE处于RRC_INACTIVE时,如果最后一个服务gNB收到来自UPF的下行数据或者来自AMF..._rrc_inactive

C语言,快速隐藏/显示桌面图标和任务栏_脚本打开关闭,任务栏,显示隐藏的图标-程序员宅基地

文章浏览阅读3.3k次,点赞4次,收藏24次。一般隐藏/显示桌面图标的方法大多数人都知道了,只需要 “桌面右键→查看→显示桌面图标” 即可。如果这样已经满足你的要求,就不需要往下看了;如果你觉得多次点击麻烦,可以接着往下看先说一下我写这个程序的目的本人本就是一个追求简洁干净的男子,桌面只有几个常用软件和几个常用文件夹,大多数图标都放在“开始”屏幕,和同事相比我的桌面真是清清爽爽,可谓是一股清流;可是公司竟要把我逼上绝路,要求桌面软件只能..._脚本打开关闭,任务栏,显示隐藏的图标

用户画像入门(转)_常见用户画像的基本人口属性不包括以下哪一因素-程序员宅基地

文章浏览阅读2k次。这篇文章在宏观上很好地描述了用户画像的主要内容。(文章内的图片来源于不同帖子,侵删)一、 什么是用户画像 用户画像是指根据用户的属性、偏好、生活习惯、行为等信息,抽象出来的标签化用户模型。通俗说就是给用户打标签,而标签是通过对用户信息分析而来的高度精炼的特征标识。通过打标签可以利用一些高度概括、容易理解的特征来描述用户,可以让人更容易理解用户,并且可以方便计算机处理。..._常见用户画像的基本人口属性不包括以下哪一因素

springMVC中前台封装的数据无法传到后台的解决_springmvc 多级封装的参数无法传递到后台-程序员宅基地

文章浏览阅读1.9k次。前台与后台数据交互_springmvc 多级封装的参数无法传递到后台

在anaconda环境下,安装tensorflow_file "/home/snake/anaconda3/envs/tf12/lib/python3.-程序员宅基地

文章浏览阅读5.3w次,点赞16次,收藏92次。转载地址:https://www.cnblogs.com/tiansheng/p/7281290.html,http://wiki.jikexueyuan.com/project/tensorflow-zh/get_started/os_setup.html,安装环境:Centos7,anaconda3,python3.6(1) 建立一个 conda 计算环境名字叫tensorflow:conda..._file "/home/snake/anaconda3/envs/tf12/lib/python3.6/site-packages/tensorflow