• 0
  • 0
分享
  • 测试人员的信心来源:权威的测试准则——软件测试圈
  • 曼倩诙谐 2023-04-20 13:54:01 字数 1683 阅读 478 收藏 0

  作为一个测试人员,报告相关人员影响系统的功能和威胁系统性能的问题是我们工作中的任务。

  可能你常会遇到领导拦着问你:我们测试结果如何,还有故障吗?版本可以发布了吗?

  但是如果你作为测试人员不知道系统的边界呢?如果你把测试结果的信心只是建立在应该一小部分测试的内容上,该怎么办?如果你不知道系统/解决方案如何或何时更改了怎么办?如果你缺乏这种控制,你怎么能说你对测试结果有信心呢?

  其实这些问题与我们产品的可测性相关。如果我们获取知识的平台不稳定,我们怎么能够确保所学的东西是正确的呢?

  举例说明

  一个系统由许多子系统组成,解决方案由许多不同的参与者更新,一些人手动执行,一些人通过持续部署执行。

  更大的解决方案经常改变,端到端测试人员有时需要花费相当多的时间来执行测试。通常情况下,他们开始一个测试,在此期间解决方案被更新或更改为新的组件或子系统。在测试的结果中很难得到任何确定性。

  当你测试一个系统并记录测试结果时,你需要能够以多种引用该系统。

  如果系统不断地发生变化,你需要以某种方式知道它什么时候发生了变化,变化是什么以及在哪里发生的。

  如果你不知道哪里发生了什么变化,这将使你更难计划你的测试范围,也很难相信测试的结果。

  识别系统

  识别系统的一种方法是首先识别系统由什么组成,考虑系统的边界和包括什么、是否应该将环境配置作为系统的一部分……

  世上没有完美的准则。你只能在一定程度上定义系统。当你定义系统的部分或组件时,你就能获得相应的测试准则(也可以叫“神谕“)。

  但是,试想一下,如果没有权威的准则,你怎么测试呢?或者说你怎么指导一个初级测试人员运行测试用例,并告诉他是否通过了呢?本文讨论的核心就是:测试人员的信心来源——权威的测试准则。

  测试准则

  其实测试准则的问题简单来讲,就是“一致性”问题。期望结果与实际结果是否一致的问题。

  我们已经说过:世界上没有完美的准则。权威的测试准则只在局部有效,即只能与我们定义的系统相一致才有效。那么,我们在定义权威的测试准则时,需要考虑哪些方面呢?

  用户需求一致性

  我们设计的产品要符合用户需求,因此满足用户需求是我们首要考虑的测试准则。模拟用户真实的部署环境、参考用户的行为习惯、模拟用户的数据等制定测试用例,将用户需求与测试结果进行一致性对比,从而判定测试是否通过。

  可比产品一致性

  在可比产品中,类似的功能行为一致。这通常在对标中经常出现。比如,windows系统我们习惯性使用ctrl+c表示复制,ctrl+v表示粘贴。若是在linux系统中定义ctrl+v表示复制,ctrl+c表示粘贴,则会造成许多习惯性使用冲突。

  历史产品一致性

  现在的行为与过去的行为一致。可能有的人会对此提出异议:如果我得产品功能发生变更,这一准则是否毫无意义或者起了反作用。在这里,我们说的是,如果相同的功能未发生变化的时候,需要与历史产品保持一致。这经常出现在回归测试中。

  形象一致性

  这一点很少被提及,或者说很容易被忽略。但对于大公司来说,这一准则又潜在影响着其公司发布的产品。例如,阿里巴巴集团旗下产品设计喜欢用橙黄色,这与其最初产品定调是相一致的。

  声明一致性

  这里的声明包括:文档、规范或广告等。产品行为需要与声明不一致,否则将会产生矛盾。声明一致性常用于我们的文档测试。

  标准或规定一致性

  这里的标准或规定指的是基础标准,如数学运算规则、数学运算结果,或国家安全法例条文等规定。我们设计的产品不能违反这些基本标准或规定,例如:如果计算结果2+2=5,我们则能快速判定产品出现了错误。

  目的一致性

  产品功能与表面表现一致性。例如,某个应用下拉框或输入框我们选择或输入“A”,但产品内部功能并没有接收到或正确传递这一选项,则属于目的一致性。

  以上所述,只是制定测试准则的一部分要求或思考。或许,你还有更好的建议呢?欢迎讨论。



作者:刘晓佳Rachel    

来源:http://www.51testing.com/html/89/n-7795689.html

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   一、什么是API接口测试?  API接口有多种,个人将其划分为三类。  第一种是函数级别的,测试需要对接口的各个参数进行测试,如:  Int getResult(String key, String ID, Int ticket)。  第二种是对象级别的,开发在使用API接口时,先引入包名,在使用之前声明一个对象,之后可以使用对象提供的方法,而测试时,需要测试的是API的功能及对数据输入的正确性。第二种和第一种的差别是,我们只需关注提供给用户使用的接口就可以了,不用关心接口调用其他函数情况,相对于第一种来说,测试的粒度要大一些,范围小一些。  第三种是http协议的接口,App客户端和后端...
            1 2 2761
            分享
          • 一、为什么要分布式并发?沐沐是一个性能测试的初学者,入门装备选择的是开源、轻量、易上手的JMeter。可是性能实践过程中,一旦进行高并发操作时就会出现以下尴尬场景,JMeter客户端卡死、请求错误或是超时等,导致很难得出准确的性能测试结论。因此,众里寻解上百度,方知需要分布式。简单来说,分布式就是将一次大的操作分布在多个服务器上,由多个服务器来承担负载压力。分布式并发的原理详见下图:二、分布式并发实现步骤1、打开Jmeter,在运行->远程启动,可以看到只有"127.0.0.1"因此首先要在主压力机上配置远程负载机的IP,配置步骤如下:(1)Master(主压力机)在...
            0 0 2346
            分享
          • 简介pytest是动态编程语言Python专用的测试框架,它具有易于上手、功能强大、可扩展性好、兼容性强、效率高、第三方插件丰富等特点。功能特征:完整的文档,包括安装,教程和PDF文档简单而又详细的断言模式(使用纯assert语句)自动发现测试模块和功能(以test为标识)可以运行unittest和nose框架的测试用例灵活的固件,用于管理小型或参数化的长期测试资源丰富的插件架构,拥有三百多个外部插件和丰富的社区编写规则:测试文件以test_开头(以_test结尾也可以)测试类以Test开头,并且不能带有 init 方法测试函数以test_开头断言使用基本的assert即可自动发现规则:如果未...
            11 12 2896
            分享
          • 软件自动化测试当中最简单也是最常用接口自动化测试,当我们投入到实际工作应用中就会发现,虽然接口测试很有效也很容易推广开来,但是很多时候真正需要测试验证的不仅仅是接口测试的返回,还包括前端页面的重现。所以近下来的学习内容就将进入到 WEB 自动化(即 WEB 端 UI 自动化)。什么是 WEB自动化WEB 自动化测试就是把在网页上的人工操作转化为使用机器、软件、程序来测试产品的过程。也就是把大量需要人工回归用例、人工操作的这些手段由计算机代替执行的一种测试方式。模拟人工执行的一系列操作,同时最终会抓取并判断结果是否符合我们的预期的这样一个过程。换而言之,就是把 “点点点” 通过编程手段实现的一种...
            0 0 645
            分享
          •   Locust介绍  Locust是一款使用Python开发的开源性能测试工具,支持分布式,可在多台主机上对系统持续发送请求,与Jmeter、LoadRunner的等压测工具使用线程的方式模拟用户请求不同,Locust是使用协程的方式模拟用户请求,协程的上下文切换是由自己控制,当一个协程执行完成后会主动让出,让另一个协程开始执行,切换是在用户态完成的,而线程切换是受系统控制,是在用户态与内核态之间切换,所以协程上下文切换的代价远比线程切换的代价小的多,因此Locust可以达到更高数量级的并发。  Locust安装  需要先安装python3.6以上版本,然后再安装Locust。  pip&n...
            0 0 756
            分享
      • 51testing软件测试圈微信