软件测试中的测试用例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 ...
随机推荐
- Python内置函数作用及解析
Python内置的函数及其用法.为了方便记忆,已经有很多开发者将这些内置函数进行了如下分类: 数学运算(7个) 类型转换(24个) 序列操作(8个) 对象操作(7个) 反射操作 ...
- jQuery学习笔记(2) jQuery选择器
jQuery的选择器完全继承了CSS的风格,利用jQuery选择器,可以非常便捷和快速地找出特定的DOM元素,然后为它们添加相应的行为. 目录 目录 CSS选择器 jQuery选择器 jQuery选 ...
- 19. 一文搞懂 Go Modules 前世今生及入门使用
Hi,大家好. 我是明哥,在自己学习 Golang 的这段时间里,我写了详细的学习笔记放在我的个人微信公众号 <Go编程时光>,对于 Go 语言,我也算是个初学者,因此写的东西应该会比较适 ...
- IPFS挖矿必须要托管吗?
IPFS 本质上只是一个人人使用的协议,而 Filecoin 是 IPFS 的激励层,大家平时说的 IPFS 挖矿,其实就是挖 Filecoin.而提到IPFS 就不得不说到矿机托管的问题. 点击了解 ...
- The League of Sequence Designers Gym - 102460E
题目链接:https://vjudge.net/problem/Gym-102460E 思路:求: 题目当中给了一段伪代码算法,仔细一看发现它是不会记录负数情况,所以与正确答案会有误差,现在题目给定K ...
- [组合][DP]luogu P3643 [APIO2016]划艇
题面 https://www.luogu.com.cn/problem/P3643 对于一个序列,第i项可取的值在{0}∪[ai,bi]之间,求使序列非零部分单调递增的方案数 分析 设 $f[i][j ...
- springboot+druid报错log4j:WARN No appenders could be found for logger (druid.sql.Connection). log4j:WARN Please initialize the log4j system properly.
解决方案:新建文件log4j.properties log4j.rootLogger=DEBUG, stdout log4j.appender.stdout=org.apache.log4j.Con ...
- 最小生成树,Prim和Kruskal的原理与实现
文章首先于微信公众号:小K算法,关注第一时间获取更新信息 1 新农村建设 大清都亡了,我们村还没有通网.为了响应国家的新农村建设的号召,村里也开始了网络工程的建设. 穷乡僻壤,人烟稀少,如何布局网线, ...
- IIS误删了默认网站,恢复方法
有时候安装好IIS后,会不小心把IIS的默认网站删除.重新去新建可能会出现一些错误例如"提示文件已存在无法执行"等奇怪的错误,下面是具体的默认网站的恢复方法 找到目录C:\wind ...
- Centos6无法使用yum解决办法
12月后Centos 6 系统无法使用yum出现错误(文章底部看) 相信已经有一部分朋友今天连接到CentOS 6的服务器后执行yum后发现报错,那么发生了什么? CentOS 6已经随着2020年1 ...