测试的概念_测试的定义_ccc今天学习打代码了吗的博客-程序员宝宝

技术标签: 功能测试  

一、软件测试的定义

什么是软件测试?

找BUG,发现缺陷 ,通俗来讲就是在软件中找问题。

官方定义:

  1. 检查软件产品的是否符合设计的要求
  2. 确认软件产品是否符合用户的实际需求
  3. 提供软件产品的质量信息
  4. 投入较低的成本保障极大的降低劣质产品
  5. 验证软件产品的需求设计和实现的一致性
  6. 对软件质量的全面评估
  7. 揭示软件产品的质量风险
  8. 验证和确认

软件测试归根结底就是检查我们的产品是否符合我们实际的设计的一个要求,整个软件测试的过程就是属于验证和确认的过程。

测试的定义:

  • 使用人工或者自动的手段或者测试某个系统的过程
  • 目的在于检验它是否满足规定的需求
  • 弄清预期结果实际结果的差别

二、测试的目的和原则

目的:以最小的人力、物力和时间找出软件中潜在的错误和缺陷

原则:

  1. 证明软件中存在缺陷
  2. 不能穷尽测试
  3. 测试应该尽早介入
  4. 28原则
    (80%的bug多发生在软件20%的模块;80%的用户只用到我们软件的20%的功能)
  5. 不存在缺陷谬论(所有的程序都有缺陷,你没测出来,或者这个缺陷不影响使用)
  6. 妥善保管一切文档(工作依据;回归测试)

三、测试的基本要求和方向

测试的标准

国际标准:ISO25010
国内标准:GBT20438;GBT18905

测试的基本要求:

  1. 外观界面测试

  2. 易用测试

  3. 兼容性测试
    (eg:如果做的是一个网站,那么要看在各个不同的浏览器上运行看有没有问题;若做了一个IOS版app,那要看在IOS14,13,12等;应用程序:win10,win8,win7;Android:安卓7,8,9,10)

  4. 安全性测试
    (不想让其他用户看到or个人隐私的一些东西;银行)

  5. 性能测试

  6. 功能测试(比如弱网之类的能不能正常运行)

四、bug的由来

Bug:小虫子,小臭虫,现在指代程序中的错误
(小虫子卡住了机器的运行)

五、测试的流程

1、测试的工作流程

  1. 需求分析
    (阅读需求文档/产品文档,分析需求的点,参与需求评审)
  2. 测试计划和测试方案
    (测试计划:测试整个项目的总体的规划,测试的范围,进度的安排,人力物力的安排,整体的测试策略,风险的评估,风险的规避
    5w :why,when,who,what,where
    为什么去做,何时去做,做哪里,如何去做
    测试方案:how,怎么去做
    被测试的目标,选取什么样的测试工具,测试的方法,测试的重点)
    3. 设计测试用例
    边界值、等价类…(后面有节笔记会说)
    4. 执行测试用例
  3. 评估阶段、测试报告

六、测试用例

1、测试用例的概念

测试用例又叫做test case,是为某个特殊目标而编制的一组测试输入、执行条件以及测试结果,以便测试某个程序路径或核实是否满足某个特定需求。

测试用例的特性

  1. 有效性
  2. 可复用性
  3. 易组织性
  4. 可评估性
  5. 可管理型

2、测试用例的要素

  1. 测试用例编号
  2. 测试项目
  3. 预置(前提)条件
  4. 测试输入
  5. 预期输入
  6. 操作步骤
  7. 测试用例标题
  8. 级别

在这里插入图片描述
·其他要素
用例的设计者
用例设计日期
对应的开发人员
测试结果
测试类型

3、测试用例的设计原则

  • 明确性
  • 代表性
  • 简洁性

4、测试用例的设计方法

(1)等价类划分法

等价类:等价类是指某个输入域的子集合,在子集合中,各个输入数据对于揭露程序中的错误都是等效的,具有等价特性。

类型划分为有效等价类无效等价类

  • 有效等价类
    指对于程序的规格来说是合理的、有意义的输入数据构成的集合,利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
  • 无效等价类
    指对程序的规格说明是不合理的、无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能有多个。利用无效等价类可校验程序对于无效数据的处理能力,检测程序的健壮性、容错能力。

注意:设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。

·设计测试用例步骤

  1. 确定需求
  2. 确有效等价类和无效等价类
  3. 对每条等价类设计测试用例

案例:QQ登录
1、qq登录 6-10位的QQ号(闭区间:包括6和10位)

隐藏条件:qq号码必须是整数数字,不能以0开头

有效等价类:6位数字,7位,8位,9位,10位(不以0开头)
无效等价类:6位数字,7位,8位,9位,10位(以0开头)
小数,字母,特殊字符,汉字,组合
在这里插入图片描述

(2)边界值法

边界值分析法就是对输入或输出边界值进行测试的 ,也是一种黑盒测试。边界值分析法通常作为等价类划分法的补充,其测试用例来自等价类的边界。
长期的经验得知,大量的错误是发现在输入或输出范围的边界上,因此针对各种边界情况设计测试用例,可以查出更多错误。

等价类划分法的区别:

  • 等价类划分法可以挑选等价范围内任意一个数据作为代表;边界值分析法要求每个边界值都要作为测试条件
  • 边界值分析法不仅考虑输入条件,同样考虑输出产生的测试情况。

常见的边界值

在这里插入图片描述

  • 边界点(上点):输入范围内的边界点
  • 离点:离边界点最近的点
  • 内点:输入范围内的任意一个点

(3)因果图法

因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况

因果图法比较适合输入条件比较多的情况,测试所有的输入条件的排列组合,因=输入条件,果=输出结果。

·因果图法基本步骤

  1. 找出所有的原因,原因即输入条件或输入条件的等价类。
  2. 找出所有的结果,结果即输出条件。
  3. 明确所有输入条件之间的制约关系以及组合关系,哪些输出结果不能组合到一起,哪些输出结果可以组合到一起。
  4. 明确所有输入条件之间的制约关系以及组合关系,哪些输出结果不能同时输出,哪些输出结果可以同时输出。
  5. 找出什么样的输入条件组合会产生哪种输出结果。

1、案例:交通一卡通自动充值软件
系统需求

  • 系统只接收50或100元纸币,一次只能使用一张纸币,一次充值金额只能为50元或100元;
  • 若只输入50元纸币,并选择充值50元,完成充值后退卡,提示充值成功;
  • 若只输入50元纸币,并选择充值100元,提示输入金额不足,并退回50元;
  • 若输入100元纸币,并选择充值50元,完成充值后退卡,提示充值成功,找零50元;
  • 若输入100元纸币,并选择充值100元,完成充值后退卡,提示充值成功;
  • 若输入纸币后在规定时间内不选择充值按钮,退回输入的纸币,并提示错误;
  • 若选择充值按钮后不输入纸币,提示错误。

第一步:列出所有的输入与输出以及他们的组合
在这里插入图片描述
第二步:找出输入对应的输出
在这里插入图片描述
第三步:测试用例
在这里插入图片描述

(4)判定表法

(5)正交表法

正交法,也叫正交实验法或者正交排列法,就是使用最小的测试过程集合获得最大的测试覆盖率。

(6)场景法

从起点,通过一系列操作步骤(事件),达成某一结果,到终点的测试过程。场景法主要用于冒烟测试。在通过了场景测试后,再通过其他方法进行更为细腻的测试。

(7)流程分析法

(8)错误推断法

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

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

智能推荐

windowsXP+cygwin+NS2.34安装方法_yyx724916的博客-程序员宝宝

之前在cygwin上安装过NS2.28,方法如我的另一篇博客http://blog.csdn.net/yyx724916/article/details/8613527。后来在使用的过程中又分别安装过NS2.30和NS2.34的版本。NS2.30安装方法和NS2.28相同;NS2.34的安装与前两种有所不同,因此在这儿介绍一下我安装成功的方法。    cygwin的安装和前面讲的安装方法相同:

PHP和JAVA的区别_java和php的区别是什么_善知小姐姐的学习笔记的博客-程序员宝宝

个人认为PHP和JAVA有以下几点的区别:1、PHP多用去中小型企业而java更加安全和稳定,有很多成型的框架,多用于中大型企业银行、政府机关、科研机构,这些几乎都是用java,当然薪酬自然也比PHP要高;2、PHP只能用来做网站,而且是小网站。java可以用来写中大型企业应用、网站、游戏服务器、大数据应用、android手机、APP等等,是目前应用最广泛的语言;3、很多编程语言效仿java的语言风格,比如:c#、javascript等,学会了java,对于学习其他语言,很有帮助;4、无论是一线城.

springclound_冷冷清清中的风风火火的博客-程序员宝宝

服务注册和发现是什么意思?Spring Cloud如何实现?当我们开始一个项目时,我们通常在属性文件中进行所有的配置。随着越来越多的服务开发和部署,添加和修改这些属性变得更加复杂。有些服务可能会下降,而某些位置可能会发生变化。手动更改属性可能会产生问题。Eureka服务注册和发现可以再这种情况下提供帮助。由于所有服务都在Eureka服务器上注册并通过调用Eureka服务器完成查找,因此无需处理服务地点的任何更改和处理。什么是Netflix Feign ?它的优点是什么?大面积并发,在不增加服务器的情况

Failure [INSTALL_FAILED_INSUFFICIENT_STORAGE]_Data-Mining的博客-程序员宝宝

问题描述:adb: failed to install app-debug.apk: Failure [INSTALL_FAILED_INSUFFICIENT_STORAGE]使用adb install命令在手机上安装app时,遇到这个报错。原因是手机的内存不够。解决方法:1.清理手机内存;2.删除一两个不用的app应用。and so on,这些方法都可以解决这个问题。...

(原創) 如何讓Nios II一Power On就執行? (SOC) (Nios II) (SOPC Builder) (DE2) (DE2-70)_weixin_33779515的博客-程序员宝宝

Abstract目前為止,我們若要執行Nios II的C程式,都必須透過Nios II EDS的Run As Hardware執行,但一個嵌入式產品,總不能要求客戶也安裝Nios II EDS吧,所以希望能一Power On就能執行Nios II程式。Introduction使用環境:Quartus II 7.2 SP3 / Quartus II 8.0 + Nios II EDS 7...

python 队列 锁_python语法基础-并发编程-线程-各种锁以及队列_weixin_39622084的博客-程序员宝宝

############### 守护线程 ##############from threading importThreadimporttimedeffunc1(name):whileTrue:print(11111111)time.sleep(1)deffunc2(name):print(2222222)time.sleep(5)if __name__ == '__main__':t...

随便推点

[STC89C52RC]LCD1602液晶屏显示_TX564的博客-程序员宝宝

假如我们选择数据寄存器,RS一开始为高电平经过一段时间后变为低电平,R/W可以看作先为高电平然后变为低电平或者一直为低电平,E使能位则是一开始为低电平,经过一段时间后变为高电平维持一段时间后再变为低电平,DB0---DB7是数据位,在E使能位变为高电平前的tsp2时间开始写入数据。假如我们选择数据寄存器,那么RS一开始为高电平,R/W可看作一直为高电平,E使能位刚开始为低电平,经过一段时间变为高电平维持一段时间后变为低电平,DB0 ----DB7是数据位 当E使能位变为高电平后tD时间后开始读取数据。

VMware虚拟机黑屏解决_vmw 黑屏 光标_NiuBenn的博客-程序员宝宝

相信VM( VMware Workstation)虚拟机很多人都在用,不知道有没有人跟我一样也遇到过VM虚拟机黑屏现象具体表现为:虚拟机可以正常开机,但是屏幕不显示,处于黑屏状态。之前有一次好像是因为win10更新,然后更新以后发现虚拟机开机以后能听见开机以后的开机音效,但是屏幕始终处于黑屏昨天,因为一次电脑重启,虚拟机又出现了相同的问题 所以,VM虚拟机可以正常开机,但是黑屏...

导出时报java.util.zip.ZipException: invalid stored block lengths_潘小菲就是我昂的博客-程序员宝宝

由于公司项目转微服务架构,所以在往微服务上迁移时遇到了这个问题在方法执行到416的位置时workbook为null,导出的文件打不开,后台报错空异常以及java.util.zip.ZipException: invalid stored block lengths参考资料,应该是编译代码时,把excel模板文件也重新编码了,导致excem模板文件格式损坏说一下解决方法,添加maven-resources-plugin插件,指定excel文件不编码 <plugin

google map 地理编码API的两种方式_谷歌地图获取地址编码_Sean_徐的博客-程序员宝宝

google 地图在 2018 年7月16之后,开始收费,所以当你需要用到google地图的服务的时候需要开通结算服务,获取到key,具体资费和服务内容 ,请参考google map官网google map用户指南当我们有了地图的key之后,其实,获取响应的地图google提供了两种方法,一种是js,我们只需要在js里边请求,就可以将地图渲染到页面上,获取响应的参数;另一种则是server方法,...

技嘉b365m小雕驱动工具_【黑苹果】技嘉B365M小雕+i5 9400F+RX590EFI分享_weixin_39646412的博客-程序员宝宝

【黑苹果】技嘉B365M小雕+i5 9400F+RX590EFI分享是一款黑苹果b365m_i5 9400F_CLOVER的EFI文件下载,对黑苹果系统安装感兴趣,其实现在很苹果安装已经变得很容易了,就跟安装windows系统一样简单了(包括AMD的CPU以及N卡基本上很多都支持了)当然要是能找到属于自己机型的efi那就更好,省去了安装好mac系统之后的efi调解。安装说明新手建议你们可以使用黑果...

ckeditor4.3工具栏自定义配置_ckeditor4 设置工具栏_itzgs的博客-程序员宝宝

CKEditor中的工具栏默认显示所有功能按钮。出于安全的原因、或者是简化的原因,需要对这个工具栏进行自定义设置。CKEditor工具栏自定义配置非常简单。  编辑ckeditor目录下的的config.js文件,默认的是下面的工具栏代码,注意工具按钮是分组的,一个name内的大括号就是一个工具按钮分组,items后边是具体的按钮,“/”表示工具栏换行,“-”表示工具图标之间的中隔线“

推荐文章

热门文章

相关标签