软件测试中的测试用例Test Case原来是这么回事!
如果你去找一份功能测试的工作,在软件测试工程师面试过程中,有一些面试官会来一两个非常简单的问题
什么是Test Case?
你是如何去写Test Case的?
我们先来看一下测试用例的介绍
什么是测试用例?
测试用例(Test Case)是为项目需求而编制的一组测试输入、执行条件以及预期结果,以便测试某一个程序是否满足客户需求。
其实测试用例它就是一个文档,或者说是一个说明性的文档。
文档中间包括了一些关键性的内容比如它要有输入、要有条件,要有预期结果,通过你的条件、输入以及预期结果,我就可以去执行的时候来判断这个程序是不是满足客户(用户)的需求。我们把这一类型的文档就叫做测试用例。(测试人员的依据内容)
当然说,对于一些不规范的或者说一些小公司。本来就我一个软件测试工程师,然后我也没有时间去写测试用例,那我拿着这个软件就直接开测了呗,那么在这种情况下,它也是没有测试用例的。
但是在没有测试用例的情况下,极有可能导致非常多的问题,比如说漏测,比如说测试重复、无法去衡量软件测试完成的工作量。没有依据等等之类的。
所以说稍微规范的公司,咱们都要去写测试用例,我们也会花很多的时间用在编写测试用例上面。
为什么要写测试用例?
- 1.熟悉被测软件的业务
- 2.明确测试的思维和方式
- 3.保证测试的时候不遗漏测试功能点
- 4.测试工作的一个输出
就是为了避免前面说的一些问题。
第一个,我们在写测试用例的时候,其实也是熟悉软件测试业务的一个过程,其实这个是非常有必要的,包括咱们在测试这个项目之前,比如说你去一个新公司,你前一周或者前一个月,你都是在做同一件事情——看文档。
通过看文档尽快的去熟悉被测试软件的业务。
你对这个被测试的软件的业务越熟悉,那么你在测试的过程中你才能测试得越准确。可以避免一些不必要的错误。
第二个,我们可以明确在软件测试中的思维和方式。
第三个,这是你在软件测试工作的一个输出。也就是说我早上九点钟去晚上六点钟下班,当老大问你说你今天做了什么事情的时候,结果你这也没有那也没有。我把测试用例写好了,一天写了三五百条测试用例,这也是工作的一种衡量。(当然多少条是没有硬性规定的)
能够发现bug的测试用例就是好的用例?这个是错误的!
什么是好的测试用例?
能够全部覆盖需求的测试用例就是好的测试用例
测试用例的使用范围
- 1.手工测试用例(功能测试)
- 2.自动化测试(接口自动化、UI自动化)
- 3.性能测试用例
不论是在手工测试还是自动化测试、性能测试我们都是需要去写测试用例的。
测试用例的四要素
- 上下文--前置条件,进入条件
比如说我们要对知乎进行登录的一个测试那么他的条件是什么,我们是不是先得把知乎这个APP安装,这个就是他的上下文。再比如我们要在知乎发文章,他的前提条件也是必须要登录,这个登录的操作就是他的上下文或者说前置条件) - 测试数据
测试数据是非常关键的,比如说我们知乎的登录,登录的数据要准备的就是用户名与密码,准备好了,才能对这个功能去进行测试。这个数据是非常多的,在这里我们要想到的一个点,是无法进行穷举测试的。我们在讲测试原则的时候会讲到这个。因为第一个咱们的项目时间有限,第二个我们的人力成本也是有限,第三个实在这个数据量十分庞大,我们根本无法对它去进行一个穷举测试。因为我们就要对这些数据去进行一些分类、筛选。选一些有代表性的数据来进行测试。
对于测试数据的话,肯定要用一些方法对它进行分类,选取一些具有代表性的数据。这一个其实就是咱们测试用例非常重要的一个环节,就是设计用例的方法。包括等价类、边界值、判定表等等这一些,都是帮助你去筛选数据的。 - 测试步骤
第一步做什么第二步做什么第三步做什么,这个好理解吧。因为咱们去写测试用例不仅是给自己看的,首先你自己写的测试用例,你自己肯定要看得明白,除了当时能看明白,可能我隔两个月隔一年以后我再来看这个测试用例我也要能看得明白。同时也是给别人看的,因为我们自己写的测试用例并不一定是我们自己执行,这也是咱们测试的原则之一。因为容易形成思维定式(交叉测试) - 断言--预期结果
我们要去设置一个预期结果,来判断咱们的这个测试用例以一个什么样的标准来判断它是正确的还是错误的,从而来验证这个功能是否OK
测试用例必须要包含这四个要素,缺一不可!
文章首发于公众号:程序员一凡,转载请注明出处!
软件测试中的测试用例Test Case原来是这么回事!的更多相关文章
- 软件测试中Bug的生命周期以及Bug的严重等级
软件测试中Bug的生命周期以及Bug的严重等级 我猜你们都会,但能说专业且全面不? 1.首先当测试人员接到一个项目或产品准备测试的时候,测试人员会根据测试用例一步步的来执行用例进行简单的功能测试.当测 ...
- sql 语句中使用条件判断case then else end
sql 语句中使用条件判断case then else end范例: SELECT les.[nLessonNo] FROM BS_Lesson AS les WHERE les.[sClassCod ...
- 使用反射+策略模式代替项目中大量的switch case判断
我这里的业务场景是根据消息类型将离线消息存入mongoDB不同的collection中.其中就涉及到大量的分支判断,为了增强代码的可读性和可维护性,对之前的代码进行了重构. 先对比一下使用反射+策略模 ...
- 软件测试中LoadRunner函数中的几个陷阱
软件测试 中 LoadRunner 函数中的几个陷阱 1.atof 在 loadrunner 中如果直接用 float f; f=atof("123.00"); lr _outpu ...
- mysql 中sum (if())与case
先来一个简单的sum select sum(qty) as total_qty from inventory_product group by product_id 这样就会统计出所有product的 ...
- 图文详解Unity3D中Material的Tiling和Offset是怎么回事
图文详解Unity3D中Material的Tiling和Offset是怎么回事 Tiling和Offset概述 Tiling表示UV坐标的缩放倍数,Offset表示UV坐标的起始位置. 这样说当然是隔 ...
- Testing - 软件测试知识梳理 - 测试用例
测试用例 是指对一项特定的软件产品进行测试任务的描述,体现测试方案.方法.技术和策略. 内容包括测试目标.测试环境.输入数据.测试步骤.预期结果.测试脚本等,并形成文档. 每个具体测试用例都将包括下列 ...
- 如何在solution中添加一个test case
在solution Explorer中右键点击需要添加的folder,选择Add-New Item.也可以选择使用相应Unit Test之类的.Generic Test一般用于创建manual cas ...
- Solution中的auto test case组织方式
在一个solution中所有的auto test case都需要写在一个类中,即*.cs文件中.实现某一个case 我们可以写一个方法.一个方法实现一个test case.这个方法前面要用[TestM ...
随机推荐
- android分析之Binder 02
分析Java层的ServiceManager,看看Binder在Java层是如何实现的. public final class ServiceManager { private static fina ...
- Docker SDK api操作Docker
下载包 go get "github.com/docker/docker/api/types" go get "github.com/docker/docker/clie ...
- 数位dp 模板加例题
概念:所谓数位"dp",是指对数字的"位"进行的与计数有关的DP.一个数一个位,十位,百位,千位等,数的每一位就是数位.数位DP用来解决与数字操作有关的问题.例 ...
- 官方正式发布 Java 16
前言 就在2021/03/16,官方正式发布了Java 16.我们可以下载使用Java 16了. 特性 向量API(孵化) 在运行期,Vector 表示向量计算可以可靠地编译成支持CPU架构上的最佳矢 ...
- 【博弈论】组合游戏及SG函数浅析
目录 预备知识 普通的Nim游戏 SG函数 预备知识 公平组合游戏(ICG) 若一个游戏满足: 由两名玩家交替行动: 游戏中任意时刻,合法操作集合只取决于这个局面本身: 若轮到某位选手时,若该选手无合 ...
- x86汇编 条件跳转
条件跳转表 汇编语言-条件跳转指令 直接转移指令 指令格式 机器码 测试标志 条件说明 符号 JO OPR 70 OF=1 结果有溢出 JNO OPR 71 OF= ...
- Ubuntu20.04linux内核(5.4.0版本)编译准备与实现过程-编译前准备(1)
最近项目也和linux kernel技术有关,调试内核和内核模块.修改内核源码,是学习内核的重要技术手段之一.应用这些技术时,都有一本基本的要求,那就是编译内核.因此,在分析内核调试技术之前,本随笔给 ...
- 隐藏页面元素 css
一.前言 在平常的样式排版中,我们经常遇到将某个模块隐藏的场景 通过css隐藏元素的方法有很多种,它们看起来实现的效果是一致的 但实际上每一种方法都有一丝轻微的不同,这些不同决定了在一些特定场合下使用 ...
- 如何快速编写一个微信Api?
概述 Magicodes.Wx.Sdk致力于打造最简洁最易于使用的微信Sdk,逐步包括公众号Sdk.小程序Sdk.企业微信Sdk等,以及Abp VNext集成. 本篇将侧重于讲述如何向Magicode ...
- Python简单实现杨辉三角
n=input("请输入要打印的行数")n=int(n)for x in range(0,n+1): p=1 print(''.rjust(n-x),end="" ...