热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

敏捷测试(三)

敏捷软件测试的技术特点敏捷软件测试的技术特点作者:网络转载发表于:[2012101111:24:22]1、敏捷测试的定义敏捷测试是敏捷的一种࿰

敏捷软件测试的技术特点

 

敏捷软件测试的技术特点

作者:网络转载 发表于:[ 2012/10/11 11:24:22 ]

1、敏捷测试的定义

  敏捷测试是敏捷的一种,敏捷测试是遵循敏捷宣言进行,把开发作为顾客看待,测试中采用的是敏捷方法论。

  敏捷测试是遵循敏捷宣言的一种测试实践:

  ●强调从客户的角度,即使用系统的用户的角度,来测试系统;

  ●重点关注持续迭代的测试新开发的功能,而不再强调传统测试过程中严格的测试阶段;

  ●提倡尽早的开始测试,一旦系统某个层面可测,比如提供了模块功能,就要开始模块层面的单元测试,同时随着测试深入,持续进行回归测试保证之前测试过内容的正确性。

  2、敏捷测试中测试人员扮演的角色

  1)测试是项目的“车头灯”,它告诉大家现在到哪了,正在往哪个方向走。

  2)测试为项目组提供信息,使得项目组基于可靠的信息作出正确的决定。

  3)“BUG”是让用户感觉烦恼的东西,测试人员不作出发布的决定。

  4)测试员不保证质量,整个项目组对质量负责。

  5)测试不是抓虫子的游戏,它的目的不是纠缠在错误中,而是帮助找到目标。

  3、敏捷测试的特点

  传统的测试应该是——可以坐在我们测试部门专用的办公区内,等待产品策划的文档,拿到文档后着手准备用例,并看一下项目的计划,在程序员提交可用版本后对产品进行测试,然后将找到的bug提交bug管理系统,最后在产品计划发布之前,拿出几个还未修改的bug说产品还未准备好……然而现在,我们不再和产品团队有空间距离,不再只是看文档写用例,不再只是提交bug,不再只是争论某个bug是否必须修改……敏捷的开发决定了我们必须以敏捷的测试来应对。

  敏捷测试具有以下几个特点:

  1)“沟通”成了最重要的技能之一

  敏捷测试更强调人的作用,强调测试人员与开发人员之间的沟通。以往我们总要等到产品的一个正式版本发布,才可以开始测试,否则过多的介入会打乱开发计划。而现在,敏捷测试告诉我们,在产品开发过程中就要介入测试。

  在传统的测试中,当测试人员发现并提交一个bug时,需要写大量的文字来描述bug的环境以及bug的重现步骤。程序员修正bug时,也自信满满的说,该bug已修正。但当测试人员一一复查时,却发现你所认识的那个bug还在,而程序员完全理解错了你所说的bug。这样的事情在以往的测试实践中有很多,而现在,测试人员所需要做的,是与开发人员直接沟通,把问题说清楚,让他能够准确的理解你的意思,甚至包括你对于该bug的分析。接下来一切就十分好办了。

  仅仅是几句话的沟通,就能将一个bug在最短的时间内修正,这节省了很多时间。这皆得益于比以往更便捷的沟通,同时也大大的提高了开发效率。但这也对测试提出了更高的要求,虽然传统的测试也很强调沟通能力,但现在由于需要更频繁的沟通,测试人员对沟通能力的提高也变得也越来越重要,成为了最重要的技能之一。

  说到这里,其实我们已经能感受到,测试的角色定位已经变了。因为敏捷开发中,要对质量负责的是整个团队,这一目标就要求测试人员不再是一个独立的质量监督部门,而是要融入到整个团队中,成为开发中不可分割的一部分。

  2)调整测试用例的粒度

  业界通常认为,测试员最重要的技能就是写用例,通过用例来表达测试思想。我想,即使是到了敏捷时代,这个技能仍然是第一位的。只是,如果你的用例写得过于详细和复杂,那么在团队开始响应变化的时候,你就会措手不及了。

  至于粒度到什么程度才是合适的呢?那就要看个人的能力,是否强大到能随时调整一份复杂和详细的用例的程度。一般不推崇十分详细的用例,因为有些很细节的地方,也没有文档可以参考。敏捷的最直接的特点就是快速,如果设计的用例粒度太细,那是很难开展敏捷测试的。

  3)更多的测试方法

  如何开展具有快速特点的敏捷测试呢?单单用一种测试方法是很难开展测试工作的,需要采用多种测试方法。

  灰盒测试是一种介于黑盒测试和白盒测试之间的测试方法,它设计的用例可以比黑盒测试更简洁,而且随着你对程序框架的理解更加的深入,你对所测的产品会更有把握。当然,传统的黑盒测试是不能抛弃的,因为很多bug都是在你所意料不到的情况下发生的。如何合理的分配灰盒测试和黑盒测试,这还需要在漫长的敏捷测试中慢慢体会。

  除了简单的灰盒黑盒,测试人员尝试做一下白盒也是很有用处的。虽然程序员也做了白盒测试,但测试人员的测试思路会和程序员有所不同,得到的结果也许就会不一样。可以尝试对核心代码进行白盒测试:包括代码的走查,对函数的独立测试,以及使用内存检测工具的检测等等。

  最后还要结合自动化测试方法。由于产品会经常的响应变化,对于某些重要的系统的测试就会一次又一次的要重来。若系统简单些还好,若系统是比较复杂,或是比较核心的,如果还是用手动测试,那就会很让人头痛了。所以测试人员的自动化测试是很有必要的。为自己最容易自动化的系统写一个自动测试脚本,这样,随便他们怎么改动,我们都可以随时的进行回归测试了。

  4)更多的人参与测试

  当测试人员已经不再是一个独立的测试部门时,需要进行测试的也就不只是测试人员了。程序员要自测,策划也要测试,甚至用户也可以来测试。不同的人可以得到不同的结果,这样才能使我们对产品有全面的把握,才能时刻的知道产品下一步应该怎样“响应变化”。

  程序员的自测可以减少程序上的bug。策划的测试可以使策划更清楚的看到目前产品的现状,亲自体验自己设计的系统。而用户的测试则可以给我们带来我们的最终用户的反馈,这是最有价值的信息。

 


推荐阅读
  • Python 异步编程:深入理解 asyncio 库(上)
    本文介绍了 Python 3.4 版本引入的标准库 asyncio,该库为异步 IO 提供了强大的支持。我们将探讨为什么需要 asyncio,以及它如何简化并发编程的复杂性,并详细介绍其核心概念和使用方法。 ... [详细]
  • 程序员妻子吐槽:丈夫北漂8年终薪3万,存款情况令人意外
    一位程序员的妻子在网上分享了她丈夫在北京工作八年的经历,月薪仅3万元,存款情况却出乎意料。本文探讨了高学历人才在大城市的职场现状及生活压力。 ... [详细]
  • 自学编程与计算机专业背景者的差异分析
    本文探讨了自学编程者和计算机专业毕业生在技能、知识结构及职业发展上的不同之处,结合实际案例分析两者的优势与劣势。 ... [详细]
  • SQLite 动态创建多个表的需求在网络上有不少讨论,但很少有详细的解决方案。本文将介绍如何在 Qt 环境中使用 QString 类轻松实现 SQLite 表的动态创建,并提供详细的步骤和示例代码。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 阅读本文大约需要3分钟。微信8.0版本的发布带来了许多令人振奋的新功能,如烟花特效和改进的悬浮窗,引发了用户的热烈反响。 ... [详细]
  • 深入理解Java泛型:JDK 5的新特性
    本文详细介绍了Java泛型的概念及其在JDK 5中的应用,通过具体代码示例解释了泛型的引入、作用和优势。同时,探讨了泛型类、泛型方法和泛型接口的实现,并深入讲解了通配符的使用。 ... [详细]
  • 作为一名程序员,从大学步入职场后,常常感受到一种难以言喻的空虚感。这种感觉或许源于对生活的不满、职业发展的瓶颈,或是日常琐事带来的压力。本文将深入探讨这种复杂的情感,并尝试寻找解决之道。 ... [详细]
  • 深入解析:阿里实战 SpringCloud 微服务架构与应用
    本文将详细介绍 SpringCloud 在微服务架构中的应用,涵盖入门、实战和案例分析。通过丰富的代码示例和实际项目经验,帮助读者全面掌握 SpringCloud 的核心技术和最佳实践。 ... [详细]
  • 并发编程:深入理解设计原理与优化
    本文探讨了并发编程中的关键设计原则,特别是Java内存模型(JMM)的happens-before规则及其对多线程编程的影响。文章详细介绍了DCL双重检查锁定模式的问题及解决方案,并总结了不同处理器和内存模型之间的关系,旨在为程序员提供更深入的理解和最佳实践。 ... [详细]
  • 本文深入探讨了C++对象模型中的一些细节问题,特别是虚拟继承和析构函数的处理。通过具体代码示例和详细分析,揭示了书中某些观点的不足之处,并提供了更合理的解释。 ... [详细]
  • 随着网络安全威胁的不断演变,电子邮件系统成为攻击者频繁利用的目标。本文详细探讨了电子邮件系统中的常见漏洞及其潜在风险,并提供了专业的防护建议。 ... [详细]
  • 微软Exchange服务器遭遇2022年版“千年虫”漏洞
    微软Exchange服务器在新年伊始遭遇了一个类似于‘千年虫’的日期处理漏洞,导致邮件传输受阻。该问题主要影响配置了FIP-FS恶意软件引擎的Exchange 2016和2019版本。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 深入理解Spring:Aware接口、异步编程与计划任务
    本文将带你深入了解Spring框架中的 Aware 接口、异步编程以及计划任务。通过具体示例和详细解释,帮助你掌握这些核心功能的实现原理和应用场景。 ... [详细]
author-avatar
violalal_134
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有