敏捷开发中的可用性测试

发表于:2015-09-07来源:uml.org.cn作者:不详点击数: 标签:可用性测试
近年来有两个词语在软件行业迅速“走红”,一个是敏捷开发,另一个则是软件可用性。在这篇文章中,作者将透过“走红”现象表面而探究其背后的原因和本质,并结合经验和体会和

  内容

  前言

  软件质量、敏捷开发和可用性

  可用性测试的执行

  总结

  参考资料

  简介: 近年来有两个词语在软件行业迅速“走红”,一个是敏捷开发,另一个则是软件可用性。在这篇文章中,作者将透过“走红”现象表面而探究其背后的原因和本质,并结合经验和体会和大家一起来探讨敏捷开发和软件可用性,以及如何在敏捷开发中进行可用性测试。

  前言

  近年来有两个词语在软件行业迅速“走红”,一个是敏捷开发,另一个则是软件可用性。在 IBM 内部 2009 年的 QSE(Quality Software Engineer)大会上,这二位“当红明星”也是备受全球 IBMer 们的推崇,成为演讲场数最多的其中两个话题。

  相对于这样“走红”的现象,作者更关心背后的原因和本质。究竟为什么这两个方法近年来会相续被推崇?这二者之间有什么关系?怎样能够强强联合,把二者结合起来实现在实践中使用?有没有 Best Practice 或流程帮助开发团队让这二位“明星”为团队服务?

  几位作者具有丰富的敏捷开发经验,可用性经验,以及在敏捷开发中使用可用性的经验。在这篇文章中,几位作者就经验和体会和大家一起来探讨敏捷开发,软件可用性,以及如何在敏捷开发中进行可用性测试。

  软件质量、敏捷开发和可用性

  在介绍敏捷开发和软件可用性之前,有个铺垫需要先进行介绍,那就是软件质量。我们认为不管是敏捷开发,还是软件可用性,有个共同的目标是实现高质量的软件产品,即对终端客户有价值的产品。换句话说“软件质量”的诉求是敏捷开发和软件可用性二者“当红”的驱动力,所以很有必要先谈谈软件质量。

  软件质量

  什么是软件产品质量呢?一些同仁可能会认为软件质量是指系统的 Bug 数量,作者认为这样的理解是不够全面的。软件质量应该从使用者的角度去衡量其真正价值。正如大师温伯格在《 质量 . 软件 . 管理 : 系统思维》说到:“质量就是软件产品对于某个 ( 或某些 ) 人的价值”。软件质量包含两个层次的质量含义,即“正确的软件”及“软件运行正确”:

  第一、“正确的软件”是指一个软件要能够满足用户的需求,为用户创造价值。此处的价值可以体现在两个方面,即为用户创造利润或者减少成本。如果一个软件能够满足需求的用户群体越大、创造的利润越大或减少的成本越大,则该软件产品的质量越高。反之,一个产品尽管运行良好,没有 Bug,扩展性很强,性能很好,但如果没有服务的用户人群,没有为用户创造价值,则这样的软件尽管运行良好,也无任何质量可言。

  第二、“软件运行正确”是指软件没有或很少 Bug,扩展性很强,性能良好,易用性高等。这样的软件是一个运行良好的软件,但还不能称之为高质量的软件。只有在软件符合用户的需求的基础上,运行良好的软件,才是一个高质量的软件。当然,如果软件完全符合用户需求,但不易使用,经常出错,性能很差,这样的软件也不是一个高质量的软件。

  “正确的软件”及“软件运行正确”二者相辅相成,前者关系到软件的成败,后者关系到软件的好坏。在现实的很多开发团队中,特别是偏技术的开发团队中,往往过分注重后者(软件的 Bug 率,性能,可扩展性,架构等),经常陷入在软件开发过程的细节之中,而忽略了前者(软件需要符合用户的需求),开发出的软件经常能用但无用,不是最终用户期望的软件,这样的软件是能用但无用的零质量软件。

  不管是敏捷开发,还是软件可用性,都更加注重软件质量,即用户的价值。

  敏捷开发

  敏捷开发的定义为:通过一系列迭代,利用 User Stories 和持续关注利益干系人(Stakeholder)的反馈,驱动开发高质量、高可用性的软件。可以从下面三个方面来看敏捷开发,如下图所示:

  图 1. 敏捷开发的三个方面

图 1. 敏捷开发的三个方面

  首先是对象,也是利益干系人,随着企业组织结构的不断壮大,企业信息化的全面开展,一个软件产品或项目,面向的用户越来越多,典型的有:开发人员,企业业务人员,CIO/CEO,运维部门,甚至来自开发企业的领导等等。不同的部门和人员,由于工作和业务关系,关注的价值和重点都不一样。而软件的核心价值要能够符合最主要的利益干系人的价值目标和财务目标,该软件才会获得市场生命力。

原文转自:http://www.uml.org.cn/Test/201007084.asp