Quality scope #5: 易用性
  这是一个很重要的也常常被忽视的方面。很多时候我们开发产品的人会觉得自己的产品很好用,但是用户不觉得。我想其中一个很重要的原因是我们自己对这个领域很熟悉,而且对产品的各个功能,甚至他们内在的联系很清楚,再者因为工作的原因我们已经用了几十上百遍。这样算来易用性当然不是问题。但是我们不能要求我们的用户如此,因为用户不会(很多产品也不应该)花很多的时间研究学习我们的产品,他们购买我们产品提供的功能,是要更有效和高效的完成他的工作。如果用户为了完成一件常见的工作,比如修改一项小的设置,需要去修改很多的地方,而且没有提示要告诉他修改对应的地方,那么这是我们产品的问题。
  很多时候用户错用或者误用我们产品的功能,除了用户自身知识和经验不足之外,我们也应该反思一下是不是我们的产品做得不好用,流程和界面设计得太让人困惑。
  易用性不只是产品的UI做得比较好看,更多的时候还包括产品的流程和接口的设计。这是一个很大的领域,这里限于自己的自己的了解和篇幅不详述了。基本的,我们可以把自己想象成对产品了解有限的初用者,很多问题容易暴露出来了,或者还有一个办法,找一个不太了解人的,给他一些任务,让他去操作,然后去观察,听听他的感受。
  Quality scope #6: 可维护性
  维护的目的有很多,比如产品升级,功能升级,打补丁等等。 对于一个正式而长期使用的系统而言,特别是服务器软件,这是很常见的工作。这些方面处理的好坏往往也非常容易影响到用户对产品的判断和印象。常见的问题包括
  1. 产品升级不能将来的版本的数据导过来,或者数据出错
  2. 升级后不兼容或者对硬件要求很高
  3. 打补丁或者升级后遇到问题是否可以回滚?
  4. 用户报过来问题,如果收集信息定位问题
  软件质量其实是一个很复杂的东西,上面提出的其实也只是工作中常遇到的一些方面(即便如此,很多还是常被忽略),比如用户对产品质量的看法还会受到情感因素的影响,比如产品的UI,和客服人员的沟通过程,以及公司和产品的品牌等等。
  从软件测试的角度,针对质量的不同的方面,我们也有不同类型的测试活动来保证,比如design review,还有各种测试类型,functional,stability,performance,deployment,migration,usability,stress,compatibility 等等。