软件测试中的测试用例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 ...
随机推荐
- HiveHA机制源码分析
hive让大数据飞了起来,不再需要专人写MR.平常我们都可以用基于thrift的任意语言来调用hive. 不过爱恨各半,hive的thrift不稳定也是出了名的.很容易就出问题,让人无计可施.唯一的办 ...
- 剪切DOM节点中断transition执行【问题】
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- [Design Pattern With Go]设计模式-工厂模式
这次介绍的设计模式是工厂模式,这是一个比较常见的创建型模式.一般情况下,工厂模式分为三种:简单工厂.工厂方法和抽象工厂,下面慢慢举例介绍下. 简单工厂 考虑一个加密程序的应用场景,一个加密程序可能提供 ...
- 你要 if 还是 case 呢?-- Shell十三问<第十二问>
你要 if 还是 case 呢?-- Shell十三问<第十二问> 还记得我们在第 10 章所介绍的 return value 吗? 是的,接下来介绍的内容与之有关,若你的记忆也被假期的欢 ...
- [Fundamental of Power Electronics]-PART II-8. 变换器传递函数-8.2 变换器传递函数分析
8.2 变换器传递函数分析 接下来,让我们推导基本变换器传递函数中的极点,零点和渐近线增益的解析表达式. 8.2.1 示例:Buck-boost变换器的传递函数 Buck-boost变换器的小信号等效 ...
- 【Linux】关于Linux的系统编程总结
作者:李春港 出处:https://www.cnblogs.com/lcgbk/p/14673383.html 目录 系统编程 (一)进程 1.进程的概念 2.进程函数接口 (1)fork()在进程内 ...
- 哈工大LTP进阶使用-三元组事件抽取
哈工大LTP基本使用-分词.词性标注.依存句法分析.命名实体识别.角色标注 上一节我们讲了LTP的基本使用,接下来我们使用其进行事件抽取. 参考代码:https://github.com/liuhua ...
- Spring Cloud Alibaba(3)---Nacos概述
Spring Cloud Alibaba(3)---nacos概述 上一篇博客讲了有关 SpringCloudAlibaba的概述,这篇开始讲SpringCloudAlibaba组件之一---Naco ...
- java 读取ini文件
1.情景:需要将硬代码写到文件中,这样以后改动只需改动灵活 1)txt文件,需要将这code字符串读到代码中,保存成数组 2)导包:pom.xml添加依赖: <dependency> &l ...
- 100多个很有用的JavaScript函数以及基础写法大集合
100多个很有用的JavaScript函数以及基础写法大集合 1.document.write("");为 输出语句2.JS中的注释为//3.传统的HTML文档顺序是:docume ...