软件测试中的测试用例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 ...
随机推荐
- Banner信息扫描
Banner信息扫描 Banner一般用于表示对用户的欢迎,但其中可能包含敏感信息.获取Banner也属于信息搜索的范畴.在渗透测试中,典型的4xx.5xx信息泄露就属于Banner泄露的一种.在Ba ...
- 设置beeline连接hive的数据展示格式
问题描述:beeline -u 方式导出数据,结果文件中含有"|"(竖杠). 执行的sql为:beeline -u jdbc:hive2://hadoop1:10000/defau ...
- 攻防世界 reverse 进阶 1-4
1.dmd-50 suctf-2016 md5后比较,在线解md5得到: md5(md5($pass)),所以将grape再进行MD5 b781cbb29054db12f88f08c6e161c199 ...
- JAVA题目:正整数n若是其平方数的尾部,则称n为同构数 如:5*5=25, 25*25=625 问: 求1~99中的所有同构数
1 /*题目:正整数n若是其平方数的尾部,则称n为同构数 2 如:5*5=25, 25*25=625 3 问: 求1~99中的所有同构数 4 */ 5 //分析:将1-99分为1-9和10-99,用取 ...
- java例题_35 找到最大值和最小值并交换位置
1 /*35 [程序 35 最大最小交换] 2 题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组. 3 */ 4 5 /*分析 6 * 1.先初始化一个数组,然后从键盘获得值 ...
- 阳明-K8S训练营全部文档-2020年08月11日14:59:02更新
阳明-K8S训练营全部文档 Docker 基础 简介 安装 基本操作 Dockerfile Dockerfile最佳实践 Kubernetes 基础 简介 安装 资源清单 Pod 原理 Pod 生命周 ...
- 第28 章 : 理解容器运行时接口 CRI
理解容器运行时接口 CRI CRI 是 Kubernetes 体系中跟容器打交道的一个非常重要的部分.本文将主要分享以下三方面的内容: CRI 介绍 CRI 实现 相关工具 CRI 介绍 在 CRI ...
- hello world!goodbye world~
我有个朋友,做ios开发做了5年,年前回家转行赚大钱去了,这个标题,其实就是因他而生. 我本人做的.net开发,也差不多快5年时间了,在这个时候暂借博客园这个平台说几句心里话,骚了勿喷:) 其实我是个 ...
- JavaWeb 补充(Filter&Listener)
目录 Filter:过滤器 Listener:监听器 Filter:过滤器 1. 概念: * 生活中的过滤器:净水器,空气净化器,土匪. * web中的过滤器:当访问服务器的资源时,过 ...
- 【CTF】Pwn入门 XCTF 部分writeup
碎碎念 咕咕咕了好久的Pwn,临时抱佛脚入门一下. 先安利之前看的一个 Reverse+Pwn 讲解视频 讲的还是很不错的,建议耐心看完 另外感觉Reverse和Pwn都好难!! 不,CTF好难!! ...