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

技术标签: 功能测试  

什么是功能测试

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

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

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

功能测试的方法

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

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

黑盒测试试图发现以下类型的错误:
(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

智能推荐

http隧道 java_使用java语言实现http隧道技术-程序员宅基地

文章浏览阅读119次。该楼层疑似违规已被系统折叠隐藏此楼查看此楼/***Getaparametervalue**@paramkeyString*@paramdefString*@returnString*/publicStringgetParameter(Stringkey,Stringdef){returnisStandalone?System.getProperty(ke..._java http隧道

Keepalived高可用+邮件告警_keepalived sendmail-程序员宅基地

文章浏览阅读913次。IP主机名备注192.168.117.14keepalived-master主节点192.168.117.15keepalived-slaver备节点192.168.117.100VIP1.主备节点均安装keepalived# yum install -y keepalived httpd2.主备节点均修改keepalived日志存放路径..._keepalived sendmail

SPFILE 错误导致数据库无法启动(ORA-01565)_ora01565 ora27046-程序员宅基地

文章浏览阅读469次。--==========================================--SPFILE错误导致数据库无法启动(ORA-01565)--========================================== SPFILE错误导致数据库无法启动 SQL> startup ORA-01078: failurein proce_ora01565 ora27046

功能测试基础知识(1)-程序员宅基地

文章浏览阅读6.1k次,点赞2次,收藏54次。功能测试基础知识总结_功能测试

postgresql 中文排序_pg中文排序-程序员宅基地

文章浏览阅读3.2k次,点赞3次,收藏2次。pg 中文首字母排序_pg中文排序

[Mysql] CONVERT函数_mysql convert-程序员宅基地

文章浏览阅读3.1w次,点赞23次,收藏109次。本文主要讲解CONVERT函数_mysql convert

随便推点

HTML5与微信开发(2)-视频播放事件及API属性_微信开发者工具视频快进-程序员宅基地

文章浏览阅读8.6k次,点赞2次,收藏2次。HTML5 的视频播放事件想必大家已经期待很久了吧,在HTML4.1、4.0之前我们如果在网页上播放视频无外乎两种方法: 第一种:安装FLASH插件或者微软发布的插件 第二种:在本地安装播放器,在线播放组件之类的 因为并不是所有的浏览器都安装了FLASH插件,就算安装也不一定所有的都能安装成功。像苹果系统就是默认禁用FLASH的,安卓虽然一开始的时候支持FLASH,但是在安卓4.0以后也开始不_微信开发者工具视频快进

JedisConnectionException Connection Reset_jedisconnectionexception: java.net.socketexception-程序员宅基地

文章浏览阅读5.4k次,点赞3次,收藏4次。在使用redis的过程常见错误总结1.JedisConnectionException Connection Reset参考这边文章:Connection reset原因分析和解决方案https://blog.csdn.net/cwclw/article/details/527971311.1问题描述Exception in thread "main" redis.clients...._jedisconnectionexception: java.net.socketexception: connection reset

Lua5.3版GC机制理解_lua5.3 gc-程序员宅基地

文章浏览阅读8.3k次,点赞8次,收藏42次。目录1.Lua垃圾回收算法原理简述2.Lua垃圾回收中的三种颜色3.Lua垃圾回收详细过程4.步骤源码详解4.1新建对象阶段4.2触发条件4.3 GC函数状态机4.4标记阶段4.5清除阶段5.总结参考资料lua垃圾回收(Garbage Collect)是lua中一个比较重要的部分。由于lua源码版本变迁,目前大多数有关这个方面的文章都还是基于lua5.1版本,有一定的滞后性。因此本文通过参考当前..._lua5.3 gc

手机能打开的表白代码_能远程打开,各种手机电脑进行监控操作,最新黑科技...-程序员宅基地

文章浏览阅读511次。最近家中的潮人,老妈闲着没事干,开始学玩电脑,引起他的各种好奇心。如看看新闻,上上微信或做做其他的事情。但意料之中的是电脑上会莫名出现各种问题?不翼而飞的图标?照片又不见了?文件被删了,卡机或者黑屏,无声音了,等等问题。常常让她束手无策,求助于我,可惜在电话中说不清,往往只能苦等我回家后才能解决,那种开心乐趣一下子消失了。想想,这样也不是办法啊, 于是,我潜心寻找了两款优秀的远程控制软件。两款软件...

成功Ubuntu18.04 ROS melodic安装Cartograhper+Ceres1.13.0,以及错误总结_ros18.04 安装ca-程序员宅基地

文章浏览阅读1.8k次。二.初始化工作空间三.设置下载地址四.下载功能包此处可能会报错,请看:rosdep update遇到ERROR: error loading sources list: The read operation timed out问题_DD᭄ꦿng的博客-程序员宅基地接下来一次安装所有功能包,注意对应ROS版本 五.编译功能包isolated:单独编译各个功能包,每个功能包之间不产生依赖。编译过程时间比较长,可能需要几分钟时间。此处可能会报错:缺少absl依赖包_ros18.04 安装ca

Harbor2.2.1配置(trivy扫描器、镜像签名)_init error: db error: failed to download vulnerabi-程序员宅基地

文章浏览阅读4.1k次,点赞3次,收藏7次。Haobor2.2.1配置(trivy扫描器、镜像签名)docker-compose下载https://github.com/docker/compose/releases安装cp docker-compose /usr/local/binchmod +x /usr/local/bin/docker-composeharbor下载https://github.com/goharbor/harbor/releases解压tar xf xxx.tgx配置harbor根下建立:mkd_init error: db error: failed to download vulnerability db: database download

推荐文章

热门文章

相关标签