• 14
  • 13
分享
  • 技术学习:软件测试如何做到充分性测试?——软件测试圈
  • 曼倩诙谐 2021-08-19 09:47:23 字数 2858 阅读 1885 收藏 13

  做软件测试要想保质保量,就要做到测试充分,什么是测试充分,就是把所需要覆盖的场景都要覆盖到。

  如何做到场景全面覆盖,特别是在时间紧任务重的时候?

  我把我这些年来工作的一点经验总结一下分享给大家,希望对大家有点帮助:

  No.1 提前介入测试

  那么什么时候测试介入比较好?在需求明确下来进入开发之前,测试就可以介入了解需求的相关内容了。

  这块一般有两个阶段:

  第一个阶段是需求澄清阶段,这个阶段就是需求接口人向开发讲解需求的详细要求及实现功能,这个时候测试就可以参与进来一起听,听过之后我们就对这个需求有了一个大概的了解,知道了这个功能的是要做什么,输入输出是什么,为后期了解详细的实现方案做准备。

  第二个阶段是开发实现方案澄清阶段,这个阶段一般是相关的开发人员把需求的功能实现方案和详细逻辑跟需求提出人和接口人确认,我们这个时候参与进来,就可以根据开发讲的实现方案和逻辑了解相关的的内容:比如算法判断逻辑是啥,取值是啥,输入值的类型是啥,取的哪个表哪个字段的值,或者调取那个接口服务,异常输入又是如何处理的,结果体现在哪里等等。

  当然有些小公司是没有给这些阶段的时间的,拿到需求就可能是口头说一下开发就直接实现,不会再次的澄清,这个时候我们怎么办,只有自己主动找开发沟通,遇到与开发理解不一致的时候,还要找产品经理或需求拉口人再次确认,来避免需求不清晰导致的一些不必要的问题,也为我们后期的测试用例编写找到明确的答案。

  No.2 测试分析,测试用例设计

  根据前期的了解,接下来我们就是要把这些存在于我们脑海中的信息转化为文字形式列出来,并分析出我们的测试场景。

  为啥要把这些信息转化文字,不根据所想直接列测试场景,因为这些信息存在我们脑海中的很容易忘记,而且不是很清晰,只有通过有章法的梳理信息后,才能形成对我们有用的信息。

  不知道大家有没有这样的情景,一个需求你看文档或者听需求接口人和开发都讲过了,你也知道是啥了,感觉没啥问题了,可是当你下去写测试用例的时候,你还是会有些地方模糊不清楚。

  那么把我们了解的信息形成文字,就能很好的帮助我们解决这个问题。

  如何梳理这些信息呢,我一般是按照这样的顺序来的:

  1)先分析需求的背景,业务要求。

  把之前了解的需求背景都写出来,遇到不明确的及时询问相关人员,直到明确。

  比如一个需求的背景是这样的:业务人员在一线作业的时候发现某个模块在一些国家是需要特殊型号的,而在系统订单中默认配置的是另外一个型号,他们希望配置这个国家订单的时候,系统能自动识别出来并把这个模块替换成指定的型号。

  那我们在写需求背景的时候不仅仅是写上面那段话了,就要把“一些国家”中的国家给明确写出来,就是这些国家是哪几个国家,国家名称是啥,代码是啥,同时模块型号也要明确写出来,替换前的模块是哪个?型号是啥?替换后的模块是啥,型号又是啥?

  2)分析需求实现方案和逻辑

  这里就是把我们前期了解到的开发实现方案和逻辑一一罗列出来,有必要的可以用图画出来如开发的实现流程,逻辑判断流程,数据走向等等。

  就比如上面那个需求,开发的实现方案是应该包括这个国家是从订单哪个信息里面取出来的,需要更换模块型号的国家又是放在哪里的,是怎么取模块型号的,更换后的结果在哪里体现等等

  那我们在这个分析模块就要把这些都列出来,并一一明确。

  3)分析测试要点,测试要素

  根据前面两项的分析,我们应该很快的就理出我们的测试要点,重点关注项等内容

  就说上面这个模块型号更换吧,我们知道了:国家,指定模块型号,更换后的模块型号体现在哪里,都是我们的关注对象,同时我们还应知道这个更换型号对于没有不在指定国家的范围内的,型号是不受影响的。那么这些就是我们的测试要点和要素了。

  4)列出测试场景

  根据上面的分析,我们可以把我们所需要测试的场景以表格的形式写出来了

  5)把测试场景转化为测试用例

  到此,我们就可以输出测试用例了,那我们这个用例到底充分与否,结果输出是否正确,我们的理解是否到位呢?

  接下来我们就要请相关的人员对我们的文档和用例进行一个评审了。

  No.3 测试用例评审

  测试用例评审不仅仅评审的是测试用例,还有我们对这个需求的理解和我们的思路,所以在评审的时候我们应该先把我们的测试分析文档讲一下,然后再把我们的测试用例拿出来给大家讲一下,重点讲测试的输入和输出结果。

  这样下来在开发和系统设计人员的帮助下,我们就可以及早发现用例的不足以及我们忽略的测试点,及时补充测试用例,完善测试用例。

  这个在以前的公司测试用例评审是要求很严的,每个参于评审的人都必须要提出问题点,就是为了避免有些参于评审的人员只参于不评审,导致一些问题遗留到最后。

  No.4 严格按照测试用例执行测试

  这一点很重要,为什么这么说呢?因为你测试用例设计的再好,你不按照它来执行,你的测试就不可能做到充分。

  还记得有一次我做好了一个需求的测试用例,评审完去测试的时候,我觉得自己记得差不多了就按自己记的开始测试没有按测试用例一个个的执行,前面测试的很快,问题也不多。

  等后面回归测试的时候,我就突然发现多出好几个问题,原因就是我没按测试好的测试用例全面覆盖漏测了两个关联点,打此以后,我再也不敢脱离测试用例,自己凭记忆测试了。

  No.5 分解需求

  有些需求接到的晚或着手测试的晚,功能又复杂,又要求按时上线,这个时候怎么办?

  把需求测试用例完成后,按功能分成几个小功能点,分配给多个组员测试(当然这个在给参与测试的人员之前要把需求功能详细的讲解一下),在测试的过程中要保持经常沟通,做到宁可交叉重复测试也不脱节测试。

  我记得当时有一个web系统的功能,前期的时候因为忙着应对其他紧急的需求,就把它放在一边了,后面提上日程的时候发现留给我的时间不多了,我一个人测试肯定测试不全,这时我就主动找主管沟通,多调两个同事来和我一起测试,然后在两个同事的协助下,才顺利完成了这个功能的测试。

  No.6 交叉测试

  对于大的需求或都功能复杂的需求要做到多人交叉测试,这种测试在系统测试的时候就可以进行,以前我所在公司的项目每到系统测试都会进行这样的安排,这样就可以避免到后期回归测试出现更多的问题。

  No.7 重点功能要及时跟踪进行测试充分性分析

  对于那些功能复杂,风险性高的项目,我们要在每进行完一轮测试,进行一次测试充分性分析以便及时做出调整。

  有一次我们有一个比较大的改动,而这个改动涉及到了我们这个软件流程中的一个核心点,也就是涉及到的内容比较多,然而留给测试的时间却不是很多只有两周,怎么办呢?组长首先把这个改动按影响到的功能点细化分了一下,分给了三个人进行测试,每天她都跟进统计测试进度,分析问题分布点,跟进问题修改情况,然后再根据这些及时调整测试策略,经过两周紧张的有序的测试,这个功能最终稳当的上线。



作者:薇薇   

来源:51Testing软件测试网原创

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   Charles抓包工具的常用场景  Charles是一款代理服务器(与Fiddler一样),通过成为电脑或者浏览器的代理,然后截取请求和请求结果分析数据的目的。  在测试过程中,经常使用该抓包工具达到一下几种目的:  获取数据分析缺陷的来源  模拟网络请求:可选择已有的网络速度,也可手动编辑网速  模拟request请求数据、模拟response响应数据  黑名单:模拟请求超时、模拟请求返回404等  环境准备工作  1、手机设置代理  连接wifi—代理—设为手动—填入charles所在电脑主机名(cmd--ipconfig)、端口号(8888)--确定  2、Charles设置端口号:...
            1 1 2174
            分享
          •      昨天的文章中给大家介绍到了批量生成企业数据,今天为大家贴上批量生成个人信息的代码。生成的个人信息数据如下截图:     批量生成个人信息的代码如下:from faker import Faker import xlwt faker = Faker('zh_CN') def add_user_info(number):     work_book = xlwt.Workbook(...
            4 2 3730
            分享
          • 一、测试组的任务职责和测试的基本概念:在软件系统开发完成后,必须进行测试和评价,以确定软件质量是否达到预定目标,这样才能保证软件系统安全可靠地运行。通过软件测试可以尽可能地和尽可能多地找出各种隐藏的错误和缺陷,及时进行修改和弥补。软件测试将直接影响到软件产品的最终质量。测试组的任务是用尽可能高的精度测试所开发的软件产品与规定需求的差距及其应用时的适用性。如果发现缺陷,则软件产品不能通过验收和使用,并退回给开发组。测试组的另一个任务是制定软件应用计划,负责计划在生产领域如何正确地使用程序及数据库。测试组的职责是确定测试过程、测试计划和组织测试过程及执行测试,但是不负责被测试系统的质量。测试组能够...
            12 13 1975
            分享
          • 一、Jmeter简介Jmeter是由Apache公司开发的一个纯Java的开源项目,即可以用于做接口测试也可以用于做性能测试。Jmeter具备高移植性,可以实现跨平台运行。Jmeter可以实现分布式负载。Jmeter采用多线程,允许通过多个线程并发取样或通过独立的线程对不同的功能同时取样。Jmeter具有较高扩展性。二、Jmeter安装安装JDK,必须JDK1.7以上的版本,推荐1.8的版本;进入官网:http://jmeter.apache.org/download_jmeter.cgi 下载最新的Jmeter版本,下载后解压到非中文目录,如:D:\;配置Jmeter的环境变量;(1)&nb...
            0 0 1195
            分享
          • 前言本文章使用王者荣耀游戏接口、企业微信接口的展示结合理论知识,讲解什么是接口测试、接口测试理论、疑问收录与扩展相关知识点的知识学院,快来一起看看吧~1 接口测试基础理论接口测试:接口测试是测试系统组件间接口的一种测试,主要用于测试系统与外部其他系统之间的接口,以及系统内部各个子模块之间的接口。接口原理:模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做判断并将最终结果返回至客户端,客户端再次接收返回结果并应答的过程。检查重点:测试的重点是检查接口参数传递、接口功能实现、输出结果的正确性,以及对各类异常情况容错处理的完整性与合理性。接口类型:内部接口及外部接口,内部接口为程序开...
            0 0 1375
            分享
      • 51testing软件测试圈微信