技术标签: 功能测试
功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。
功能测试也称为行为测试,根据产品特性、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。本地化软件的功能测试,用于验证应用程序或网站对目标用户能正确工作。使用适当的平台、浏览器和测试脚本,以保证目标用户的体验将足够好,就像应用程序是专门为该市场开发的一样。功能测试是为了确保程序以期望的方式运行而按功能要求对软件进行的测试,通过对一个系统的所有的特性和功能都进行测试确保符合需求和规范。
功能测试也叫黑盒测试或数据驱动测试,只需考虑需要测试的各个功能,不需要考虑整个软件的内部结构及代码。一般从软件产品的界面、架构出发,按照需求编写出来的测试用例,输入数据在预期结果和实际结果之间进行评测,进而提出更加使产品达到用户使用的要求。
功能测试也叫黑盒测试,相当于把整个测试对象看作一个黑匣子,我们看不到黑匣子的内部结构和运行方式,但是却可以通过外部表现来对他进行功能方面的测试,这就是功能测试。
黑盒测试与之对应的有白盒测试,白盒测试主要是针对软件内部的代码逻辑进行测试,二者相辅相成,都是软件测试过程中的不同方法。
黑盒测试试图发现以下类型的错误:
(1)功能设计上的问题或者遗漏
(2)界面出现错误
(3)数据结构或外部数据库访问错误
(4)性能出现错误
(5)初始化和终止错误
黑盒测试设计测试用例的方法有:等价类划分法、边界值法、判定表法、因果图法、错误推断法、正交实验设计法。
等价类划分法解决了不能穷举测试数据的问题,只要数据值是明确的,就可以使用等价类划分法。
等价类分为有效等价类和无效等价类
有效等价类 | 无效等价类 |
---|---|
输入的正确且合理的数据以此验证该功能是否能够正确正常的运行,验证软件设计是否符合我们规格说明中的要求 | 通过输入对程序规格说明中不合理、不正确、无意义的数据来验证在异常输入数据的情况下程序是否也会出现异常 |
取款条件 |
---|
100<=单次取款额度<=10000 |
那么根据取款条件,我们就可以划分有效等价类和无效等价类
有效等价类 | 无效等价类 |
---|---|
取款金额:500 | 取款金额:50、11000 |
这里有效等价类就1个、无效等价类有2个
那么可以设置一真一假的有效等价类和无效等价类
有效等价类 | 无效等价类 |
---|---|
11位数字号码 | 输入字母 |
输入特殊字符 | |
输入10位 | |
输入12位 | |
… |
有效等价类 | 无效等价类 |
---|---|
输入数字 | 输入单引号或双引号 |
输入字母 | 输入空格 |
输入特殊符号 | 输入汉字 |
… |
有效等价类 | 无效等价类 |
---|---|
专科 | 小学 初中 高中 职高 |
本科 | |
硕士 | |
博士 |
边界值法是对等价类划分法的一个补充,边界值一般都是去等价类的边缘进行查找。一般大量的错误会出现在输入输出的边界上,因此使用各种边界值去设计测试用例能找出更多的BUG
边界值点分为上点、内点和离点
上点 | 内点 | 离点 |
---|---|---|
区间的端点,如0<x<5或0<=x<5,那么上点都是0和5 | 上点之间的任意一点 | 最靠近上点的点,开内闭外,如0<x<5,那么离点就是1和4,如果 0<=x<=5,那么离点就是-1和6,如果0<x<=5,那么离点就是1和6 |
判定表法又称决策表,他是以表格的形式,在处理比较复杂的问题时,统计多条件下的各种情况出现的可能性,然后全部列举下来,利用判定表法能够写出更全面的测试用例
适用范围:相比于等价类划分法和边界值法,他们针对的是单个条件在输入输出时的取值问题,而判定表法更多的是考虑到各种条件的相互组合和输入输出的相互制约当中。
判定表的组成:
条件桩:列出问题的所有条件,列出条件的次序无关紧要
动作桩:列出问题中可能采取的操作,操作的排列顺序没有约束
条件项:列出条件对应的取值,所有可能情况下的真假值
动作项:列出条件项的各种取值情况下应该采取的动作结果
因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,她适用于检查程序输入条件的各种组合情况,适合于描述多种输入条件的组合、相应产生多个动作的方法。
因果图的四个好处:
(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证书,软硬件检测环境达标,可出具公正权威的软件测试报告。
文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib
文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang
文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些
文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器
文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距
文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器
文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn
文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios
文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql
文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...
文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120
文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数