• 14
  • 15
分享
  • 测试建设原则
  • Tynam 2021-01-08 16:56:31 字数 2592 阅读 2058 收藏 15

软件测试建设原则,是一个永远说不完的话题,后续会以一个体系的形式更新。     ---Tynam 2021/01/08

软件测试行业经过快速的发展,至今已经沉淀了许多门类,各式的应用。如果要研发一款产品,那么测试是一项必不可少的工作。从最初的功能测试、到现在的自动化测试、性能测试、安全测试,以及近两年萌芽的大数据测试、机器测试,发展迅速,不同的团队应用的也各尽百色,其中的文档、人员管理方式方法也姿态万千。那么对于不同项目,不同管理的测试安排其中肯定是有必然的联系,遵循着某种原则,这种必然联系到底是什么呢,起止现在也没有一个人真正阐述过。在此,笔者暂且称之为 “whyTest”。何谓 “whyTest”,根据名称不难发现是为什么要这样进行测试。简单的对 “whyTest” 做以下几点解释:

  • 目的:这样进行测试的目的是什么,遇到了什么问题。

  • 解决方案:使用怎么的方案进行解决。

  • 适用场景:在什么情况下适用。

  • 实现方式:以什么样的方式,借助什么工具来实现。

  • 优缺点:这样的实现方式有什么好处,会带来那么影响。

  • 注意事项:需要注意那些内容,是否有依赖存在。

在上面的几条解释中,不难发现,工程量最大的是在实现方式上,对于实现方式就需要讲究一些行为原则,核心是以最小的成本解决,那么就需要考虑建设、复用、维护等方面的内容。因此在提出解决方案时就需要考虑实现后的独立、拓展、依赖、复用、继承。在此将之称为”测试建设原则“。

  • 独立:指进行的每一项工作看起来都是独立存在的,每一项工作中的细节也都是独立的。例如测试计划,就是单纯的工作安排,不会涉及具体的实现方案。

  • 拓展:易于拓展,扩充。扩充的内容又必须和旧有的内容之前存在弱依赖或零依赖,对原有的或者后来的不造成影响,拥有自己独立的位置。

  • 依赖:弱依赖或零依赖可以使每一项内容都可以独立展开。例如在执行测试用例时候的发现一个Bug,此bug需要和测试用例进行关联,这两者之间便产生了依赖关系。

  • 复用:既有每项工作内部的复用,又有每项工作与每项工作之间的复用。

  • 继承:继承指实现某项工作时先构思出抽象的结构,例如些测试用例,先约定测试用例使用什么工具、有那些组成部分,在实现时必须遵守这些约定,由此生成的测试用例才会整体划一,便于阅读。

为了便于管理,工作充分开展,把控,可以将测试工作分为横向、纵向进行,如下图。横向表示测试流程,根据时间进行安排。纵向表示横向中每一项具体工作的落实。给定具体任务、固定时间,不要强制怎么实现,最终达到预期结果即可。要充分调动测试人员的积极性,允许在有限的范围内进行自由发挥,每一位测试人员做自己擅长的事情。那么关于有限的范围,这个范围该怎么界定呢?

12.png其实很简单,就是用户需求。笔者一直提倡,测试人员不是一个测试机器,是具有智慧的,具有思考的测试人员,测试人员做的工作不只是按照产品经理的要求来执行,更多的是考虑用户是怎么想的、怎么使用的。有经验的测试人员都会有这么一个认识,测试计划参照需求分析进行,设计方案参照测试计划,测试设计参照测试方案,测试执行参照测试设计,测试评估参照需求分析、计划、设计、执行。可以看到这样的流程是下一个阶段必然依赖上一个阶段的工作,并且依赖的程度还比较深,假如有一个环节出错,那么后续的工作都会有问题。那么我们返回最初的目的,需要做什么,来源自什么地方?毫无疑问,是用户需求。所以具有思想的测试人员不单是按照产品经理的要求去执行工作,更需要理解用户的需求。因此,测试人员应该是以用户为导向,需求为基础,开展测试工作,建立测试模型。
由此, 我们就需要对用户的需求的进行分解 ,请注意,在这所说的用户需求是用户最初的要求,想法,而不是产品经理提取出来的。因为产品经理提取出来的需求已经赋予了它一定的第三方想法,甚至参杂了设计方案。回到文章最初所说的WhyTest,将用户的需求进行分解。

image_8658.png
我们可以将用户需求进行分解成解决的问题、在什么场景中适用、怎么解决、拥有什么优缺点。在测试中每一阶段的实现都依赖于需求,不依赖上一阶段的产出。由此各阶段的产物均是独立的,下一个阶段的实施参考上一阶段的产出,但绝对不能是依赖,唯一依赖的是原始需求。意思是上一阶段的产物修改后对下一阶段的内容没有影响,除非需求变更才会影响内容的变更。
简单的举个示例,计划阶段最主要的产出的计划说明书,计划说明书一般包含的内容有:项目概述、项目的组织形式、测试对象、测试通过和失败的标准、挂起和恢复的标准、测试任务安排、工作量、资源明细。使用 whyTest 对计划阶段进行说明:

  • 目的:从宏观上规划测试活动的范围、方法和资源配置。

  • 解决方案:用文字描述、表格等样式对项目测试进行宏观说明。

  • 适用场景:开发新需求时使用。

  • 实现方式:使用 word工具实现。

  • 优点:word 中编写方便,样式(文字、表格、图片等)可多样展示。

  • 缺点:无版本追踪,团队成员不能同时编辑,成员拿到的版本不能确保是最新的版本。

  • 注意事项:无。 

参照测试建设原则对各项内容进行分析:

  • 独立原则:计划中的各项内容(项目概述、项目的组织形式、测试对象、测试通过和失败的标准、挂起和恢复的标准、测试任务安排、工作量、资源明细)互不干扰,独立存在。

  • 拓展原则:易于扩展,例如添加测试类型(功能测试、性能测试、API测试),则对其他的内容没有任何影响,只需要在内容中再添加一项测试类型。

  • 依赖原则:计划说明书中的内容互相依赖性低,甚至零依赖。但也存在强依赖,例如测试对象强依赖需求,项目的组织形式强依赖公司项目的组织架构,要知道,拥有强依赖的,一般都是不会变动的。

  • 继承原则:先定义好测试计划书的实现内容,例如本次需要实现项目概述、项目的组织形式、测试对象、测试通过和失败的标准、挂起和恢复的标准、测试任务安排、工作量、资源明细的内容。那么以后每次需求开发,都需要实现这些内容。在此可以简单的理解为模板。

总结
在测试阶段中,每一阶段的实现都可以根据 “whyTest” 进行,目的、解决方案、实现方式、优缺点、注意事项。每一阶段中的内容实现,都可根据测试建设原则进行实施。测试建设原则是独立原则、依赖原则、复用原则、继承原则。实现过程中可以参考上一阶段的产物,但是不能依赖。如果需要依赖,依赖对象应该是不容易变更的对象。


文章最初发布地址:https://www.testwo.com/blog/14246

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 前言综合测试整合测试非常复杂,需要一些开发和逻辑技能。的确如此!那么把这个测试整合到我们的测试策略中的目的是什么呢?这个问题我们先不着急回答,让我们一步步往下看你就知道了。为什么要进行集成测试?以下是一些原因:1、实际上,当开发一个应用程序时,它被分成更小的模块,并将其分配给每个开发者一个模块。一名开发者实现的逻辑与其他开发者完全不同,因此有必要检查开发人员实现的逻辑是否符合预期,并按规定的标准提供正确的值。2、大多数情况下,当数据从一个模块移动到另一个模块时,数据的表面或结构会发生变化。添加或删除某些值会导致后续模块出现问题。3、该模块还与某些第三方工具或应用编程接口互动,这些工具或应用编程...
            0 0 1294
            分享
          • 提纲/目标通过对微信小程序特性和测试点进行总结,储备测试知识,提高测试效率。小程序特性介绍小程序测试工作过程监控与管理常见问题&技巧现状分析接触小程序的项目相对较少缺少小程序测试实战经验对小程序的特性不了解小程序测试测试沉淀较少目标达到成就介绍小程序特性,了解测试中的注意事项以某小程序为例,了解小程序测试工作通过知识沉淀和经验总结,提高测试效率课程内容*小程序已越来越常见小程序发布审核发布前需申请外网域名,并在微信web开发者工具里找到项目,设置好服务器的域名。开发完上传代码后,在微信公众平台—》登录小程序管理后台—》点击开发管理—》点击提交版本审核即可。审核通过后会有相应提示,接着把...
            14 14 2157
            分享
          •   最近后台收到一些:咨询关于性能测试相关的问题,绝大部分原因是公司要求做性能测试,领导要求写一份性能测试计划,无奈没有接触过相关工作,无从下手,非常着急。这篇文章,分享一些性能测试的干货,全都是知识点,不容错过!  近10年,技术迭代最为迅速,彻彻底底改变了人类社会的生活方式,中国互联网从无到有,发展迅猛。互联网用户量激增,已由原来的4增长至8亿+。面对当下的局势,用户体验自然就成为了互联网产品面临的最大考验。  分析近年来的系统崩溃翻车事故,得出结论:性能是影响用户体验的最重要因素。  一、什么是性能测试  通俗来说:利用性能测试工具或者代码对系统的相关性能指标进行的测试,用来评估系统的性...
            0 0 1310
            分享
          • 质量内建的关键是缺陷预防近几年,软件开发过程中的质量内建正在逐渐被大家所重视。越早发现的软件缺陷,修复成本越低。质量内建要求在软件开发生命周期的每个阶段做好质量保障工作,预防缺陷的产生。缺陷预防说到缺陷预防,通常能够想到的就是测试前移(QA从需求阶段开始介入、TDD/ATDD等)、Code Review等实践,正向的来预防缺陷的产生。但是,软件系统的生态环境越来越复杂,不确定性增加,缺陷预防的难度也在增加。如果缺陷已经产生,是否还能被利用来帮助质量内建呢?在《软件缺陷的有效管理》一文中介绍了基本的缺陷分析方法,接下来我们一起探讨一下如何利用缺陷分析来帮助质量内建。缺陷分析与质量内建缺陷分析最为...
            0 1 3496
            分享
          •   在日常的测试工作中,其中最重要的一步就是编写测试用例,那么我们如果编写一份高质量的测试用例的?选对编写测试用例的方法很重要。针对不同功能我们要选择合适的方法。比如说一个注册页面,我们该怎样设计测试用例呢?  针对这种有较多输入框且长度有限制的功能模块,我们一般采用等价类划分和边界值分析法来设计测试用例。  等价类划分  等价类划分是将所有的输入条件分为若干等价类,然后从所有等价类中抽取其中有代表意义的数据进行测试的方法。  ·有效等价类:对程序来说合理的、有意义的输入  ·无效等价类:对程序来说无效的输入  这里我们假设:  ·用户名的限制是8-16位数字和大小写字母的组合  ·手机号的限...
            11 11 2589
            分享
      • 51testing软件测试圈微信