高手过招的乐趣---测试用例预演

2024-03-08 04:18

本文主要是介绍高手过招的乐趣---测试用例预演,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摘要:高手过招,手中无需用剑,只要轻描淡写地以口代手,三两句话便高下立判,胜者胜得痛快,输者也输得潇洒。然而,除了在武侠小说之内,恐怕很难有地方让你感受到这种“会当凌绝顶”的痛快。本文根据作者在 测试 工作中的体会,提出了一种被称为“ 测试用例预演”的方法,用模拟的测试用例执行发现程序中潜在的问题,这种方法究竟有何神奇呢?请见内文。
    武侠小说中的高手大抵有三个层次,第一个级别是“静若处子,动如脱兔,身负成名绝技”的高手,印象中这一个级别的基本是杀手或是性情豪爽的江湖侠客,这种人一旦遇到,打杀的场面最为宏伟,刀枪之声不绝,各出奇招,直到一方倒地或是被制;第二个级别是“落叶飞花,片叶支花均可伤人”的高手,这个级别的高手相遇,少了宏伟的场面,却在看似不经意的凝重中展开残酷的厮杀,胜负只在一念之间;第三个级别的高手寥寥无几,多是成名已久、文武双修的名宿,已至“手中无刀,心中无刀”的最高境界,这种高手若是过招,全不闻金戈之声,全无杀伐之意,轻描淡写的以口代手,三两句话便高下立判,赢的赢得痛快,输的输得潇洒,在武侠中看到此,常不免心潮澎湃,艳羡不已,巴不得自己也能有这个机会一尝绝顶高手之间的这种至高默契。可惜身为开发或是测试工程师,又出生在这个真实的世界,恐怕实在是不太会有机会领会这种至高的境界。
    所幸,我们虽不能飞进武侠小说尝试这种 生活,却能在我们的测试工作中体会到这种乐趣。真耶?假耶?且与我一起,探究个究竟。
    回到我们的题目“高手过招的乐趣 —— 测试用例预演”,这里我要提出的是一种可以让你体会到高手过招乐趣的方法:“测试用例预演”。且慢试图在头脑中搜索你对这种方法的印象,因为这是我自创的名词(申明:如果很不幸你通过 其他途径确实听到或是见过这种描述,请一定告知本人,本人会慎重考虑,至少到目前为止,我还能有把握地说这是我首先命名和以正式文档描述的一种方法)。之所以把这种算不上十分复杂的方法写下来,是因为本人在实际的工作中发现该方法确实能起到比较大的作用,而且更重要的是,那种高手过招的感觉,很希望能和更多有高手梦的朋友能够感受得到。
    测试用例预演是一种非正式的测试用例执行方法,概括说来,这种方法是无需通过测试用例的真正执行(静态或是动态执行),而只需要开发人员和测试人员之间的口头交流,就能发现被测系统中存在的问题。设想一下,无需动手(测试执行),通过以口代手(开发和测试人员之间的口头交流),就能实现我们的目标(发现缺陷),这不是高手过招是什么?
l     测试用例预演的一般步骤是:
    测试工程师与开发工程师以某种方式坐在一起,进入交流状态,这个过程中需要尽可能避免干扰,比较好的时机是坐在一起进餐的时候;
    测试工程师根据测试用例进行提问,甚至可以临时扩展测试用例,但要注意三点:
        1). 不要偏离测试用例太远,以免偏离实际的业务;
        2).可以考虑一些在测试用例中没有明确写明的异常情况处理;
        3).提问的方式是“如果我这么操作,你的系统会如何反应?”;
    开发工程师根据测试工程师的问题,做出应答,对每个问题都只需要回答系统的响应即可,不需要描述具体的实现方法;
    测试工程师仔细聆听开发工程师的回答,需要对开发工程师的答复敏锐反应,不放过任何一个开发人员的迟疑,对拿不准的问题应该记录并需要马上验证;
    双方继续预演直到预期的预演时间结束或是有一方感到疲倦;
    记录预演过程中发现的问题到缺陷跟踪库。
    当然,要说明的是,参与交流的开发和测试工程师不是比武双方,真正的敌人只有一个:系统的缺陷,这点务必要牢记,以免弄错了对手,伤了和气。
    测试用例预演不是一种复杂的方法,但根据我的经验,要想在实际工作中应用这种方法并取得较好的效果,必须了解这种方法的适用范围,遵循一定的使用方法,并需要注意一定的技巧。这里我以FAQ的方式提供秘笈一部,各位请留意:
    Q :测试用例预演可以取代测试执行吗?
    A:这个问题是我捏造出来的,我想大概不会有人真的这么认为:),不过在这个问题的回答中,我希望能尽可能准确地描述测试用例预演方法的适用范围:如前面所提到的,测试用例预演是一种“虚拟”的测试用例执行方法,因为主要是通过口头交互的形式,也就限制了该方法适用的深度,一般来说,针对业务逻辑的较为直观的用例可以采用这样的方法,尤其是那些涉及大量用户复杂交互的用例,采用这种方法非常有效,测试工程师模拟用户或是设备提出各种可能的正常异常情况,很容易发现程序处理中的漏洞。但是,对于那些需要涉及大量地层处理的用例,测试工程师一般不太可能对其机制了解得十分清晰,因此采用这种方式也很难发现问题。
    Q :测试用例预演可以在哪些场合下使用?
    A:测试用例预演的应用场合没有特殊要求,但至少要保证是一个适合双人沟通的场合,没有过多的被打扰,双方都处在能积极思考的状态,这样就可以了。根据我的经验,一起就餐、双方暂时没有明确的工作内容,或是在对设计进行非正式评审的时候是一个比较好的时机,但还要充分考虑双方的喜好,譬如,有人不喜欢在吃饭的时候展开讨论。总之,一个适合双人沟通的场合是最低要求。
    Q :测试用例预演方法可以用在其他地方吗?
    A:中子炮刚发明的时候,科学家们狂热地将中子炮对准任何可以找到的东西;按照这种趋势,测试用例预演方法也必须要考虑是否可以应用在其他地方:)实际上,预演这种方法在评审或是思维游戏的过程中一直都是被广泛应用的,测试用例预演只不过将预演这种方法用到了以往需要真正执行的领域中,除了在测试执行环节,设计评审过程中我们也可以采用这种方法针对设计进行审查,关键在于提问的技巧:“如果我们这么做,你的设计将会怎样反应?”。
    Q :好像我用测试用例预演方法很难达到预期的目标?
    A:测试用例预演方法并非不需要前提条件,至少要保证以下条件才能使测试用例预演发挥较大的作用:
    开发工程师具有良好的配合意识;
    测试工程师对产品具有良好的熟悉程度;
    提问者的提问必须从“如果我这样做,程序会怎样反应”开始;
    参与预演的开发工程师对用于预演的用例涉及的模块要非常熟悉;
    其中,测试工程师对产品具有良好的熟悉程度是非常必要的,测试用例预演的主要对象是针对业务逻辑的用例,这就要求测试工程师熟悉产品,熟悉业务。所谓“棋逢对手”,至少要能和开发工程师是一个级别上的。另外,参与预演的开发工程师必须对用于预演的用例涉及的模块很熟悉,如果参与预演的开发工程师是模块的开发者自然没有问题,如果不是,就要求开发工程师必须能够准确了解模块的行为和实现。
    Q :测试用例预演发现的问题需要记入缺陷库吗?
    A:答案是肯定的,测试用例预演是一种“虚拟”的测试执行,预演过程中发现的问题同样要被记录、跟踪。当然,为了标识测试用例的发现阶段,可以专门在缺陷管理系统中增设一个“预演”阶段,统计预演在缺陷发现方面提供的效果。
    Q :如果开发人员不配合,怎么办?
    A:这个问题……我只能说具体问题具体分析了。关键是弄清楚开发人员为什么不配合,可能是开发人员个性羞涩,不喜欢这样面对面的交流方式;也可能是开发人员觉得这种方式浪费时间;又或者是开发人员对测试人员抱有不信任的态度。不管怎样,发挥你的个人所长,让开发人员放下顾虑和成见,认识到这种做法能给他和项目带来的好处,自然可以解决这个问题。
    Q :还有哪些在测试用例预演过程中应该主要的问题?
    A:当然还有一些需要注意的问题,沟通的技巧、对对方反馈的及时分析等等,这些都可以在实际运用测试用例预演方法的过程中逐渐体会。我总结的几点需要注意的问题包括:
    对每一个开发人员的犹豫都不能放过,一个犹豫很可能就是一个缺陷隐藏的地方;
    如果可能,最好能和开发人员一起,确定那些不确定的问题,以防开发人员一时马虎放过了本来存在的问题;
    预演的方式不适合在正式评审会议上应用,因为预演主要是两个人之间的协同思考,在正式评审会议上容易浪费其他人的时间;
    预演时要注意记录,头脑风暴产生的火花如果不及时记录的话,很可能会在短时间后被遗忘。
    【作者简介】
    姓名:关河,真名:段念,测试时代成员;有数年 软件测试经验,先后历任软件测试工程师、软件测试组长、软件测试经理等职。对软件测试技术、软件测试管理,以及相关的质量体系和流程都有较为深入的了解和认识,除测试管理外,目前专注于软件 性能测试、白盒测试、开源测试软件方向。

 

 

 

更多精彩内容请访问     www.17testing.com 

这篇关于高手过招的乐趣---测试用例预演的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/785948

相关文章

秒变高手:玩转CentOS 7软件更换的方法大全

在 CentOS 7 中更换软件源可以通过以下步骤完成。更换源可以加快软件包的下载速度,特别是当默认源速度较慢时。以下是详细步骤: 前言 为了帮助您解决在使用CentOS 7安装不了软件速度慢的问题,我们推出了这份由浪浪云赞助的教程——“CentOS7如何更换软件源加快下载速度”。 浪浪云,以他们卓越的弹性计算、云存储和网络服务受到广泛好评,他们的支持和帮助使得我们可以将最前沿的技术知识分

【Spring boot】编写代码及测试用例入门之 Hello Spring boot _踩坑记

先贴下目录: 这是我从 start.spring.io 里下载的依赖Web的模板 // DemoApplication.javapackage com.abloume.springboot.blog.demo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autocon

python+selenium2学习笔记unittest-05测试用例实例

看一下非常简单的目录结构 test_baidu from selenium import webdriverimport unittestimport timeclass MyTest(unittest.TestCase):def setUp(self):self.driver = webdriver.Firefox()self.driver.maximize_window()self

【软件测试】设计测试用例

📕引言 本文章重点目标: 测试用例的概念 设计测试用例的万能思路 设计测试用例的方法 ◦ 基于需求的设计方法◦ 具体的设计方法 ▪ 等价类 ▪ 边界值 ▪ 判定表法 ▪ 正交法 ▪ 场景法 ▪ 错误猜测法 🍀测试用例 🚩概念 什么是测试用例? 测试用例(TestCase)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要

8年白帽黑客的暑假学习经验及资料分享:迈向网络安全高手之路

给大家的福利 🤟 基于入门网络安全/黑客打造的:👉黑客&网络安全入门&进阶学习资源包 首先介绍一下我自己,我大学读的一所普通的本科学校,毕业顺利通过校招实习面试进入大厂,现就职于某大厂安全联合实验室。是一名拥有8年白帽黑客经验的安全研究员。我很高兴能在这个暑假与大家分享我的***学习经验和一些宝贵的资料,包含我入职一些大厂的面试题及经验*。**暑假是提升技能、充实自己的绝佳时期,如果

软件测试技术之登录页面测试用例的设计方法

相信大家都有过写登录测试用例的经验,相较于开发人员编写代码而言,测试人员编写用例同样重要。本文作者总结了一些关于登录用例的经验。   一、功能测试用例设计:   1、正常登录场景   测试用例1:输入正确的用户名和密码,验证用户能否成功登录并跳转到主页面。   测试用例2:输入已注册但未激活的用户账号,验证系统是否显示相应的提示信息,如“您的账号尚未激活,请检查邮箱进行激活”。   2、

Postman2testlink 通过Postman调用Testlink API编写测试用例

Postman2Testlink recommend: China-Gitee,Other-Github 名称版本nodejs大于8.17.0testlink大于1.9.17   API 说明文档   FAQ 常见问题   一、安装 npm install 二、启动服务 node test/server.js 三、示例 工程目录下有postman客户端脚本示例,可以直接导

浮点数精度不再是困扰:Python高手的精准编程秘籍!解决Python浮点数精度问题!

本专栏主要是自己在实际使用Python和工作中遇到的一些问题以及解决方法,还有一些是在网上搜集到的一些频繁出现和比较复杂的疑难杂症,目的就是希望帮助到使用Python的小伙伴们,无论是刚入门的新手,还是已经精通的Python高手,希望大家一起加油 🧑‍💻博客主页:长风清留扬-CSDN博客📚系列专栏:Python疑难杂症百科-BUG编年史🤝每天更新大数据相关方面的技术,分享

Spring高手之路

成为一名Spring框架的高手是一个涉及广泛知识面和深入实践的过程。Spring框架是Java EE领域的一个开源的、轻量级的、控制反转(IoC)的、面向切面(AOP)的容器框架,它提供了展示层和业务层的框架功能。以下是一些关键步骤和资源,可以帮助你走上成为Spring高手之路: 1. 掌握核心概念 IoC容器:理解控制反转的概念和如何通过Spring容器管理对象的生命周期。依赖注入:学习如何

怎样做好测试用例的评审

大家都知道,软件测试过程中,最重要的就是测试用例的设计。首先说说测试用例的重要性。 一、编写用例的重要性 1.深入了解需求的过程,一个项目立项开始,测试就开始介入,我们从产品的PRD文档、用户交互图,视觉图等相关文档去熟悉产品的各个模块,各个业务流程。或者在产品规划和设计阶段,测试开始熟悉产品。而编写用例的过程中,会充分的思考产品需求的细枝末节,需求的不合理、有矛盾、不明确的地方,还能对