作为一个目前从事软件测试的工作却对用户体验设计行业有着期盼和追求的人,很长一段时间我都在思考:用户体验设计(user experience design,简称UED)与软件测试的关系是怎样的?有什么区别和联系?鉴于个人的思考和总结,现在谈谈我自己的观点和看法。
从定义和目标上来看
UED一般包括用户研究、视觉设计、交互设计以及信息架构设计。用户体验是一种纯主观在用户使用产品过程中建立起来的感受。但是对于一个界定明确的用户群体来讲,其用户体验的共性是能够经由良好设计实验来认识到。UED的目标是让产品首先有用、其次要易用、接下来产品设计要友好、然后是视觉设计能让产品产生一种吸引力、最后是全面融会贯通上升为品牌。因此,可以说,UED为产品的产生及其寿命长短具有十分重要的意义,属于创造性的工作。
软件测试一般也包括功能测试和性能测试。软件测试是使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。因此,从这个角度来看,测试更像是为了配合UED的目标而存在的,起着陪护作用。
从软件生命周期来看
软件生存周期模型,把软件生存的漫长周期依次划分为:可行性研究与计划、需求分析、设计、开发、测试、运行与维护六个阶段。在这其中,设计阶段就包括UED,而开发和测试阶段就对应有测试的过程,如开发过程中的可用性测试、单元测试、集成测试等。另外,开发过程中的多次可用性测试的过程也是连接前期UED和后期功能测试和验收测试的关节点,前后都有很多相似之处。而后期的用户验收测试则从另外的一个角度连接了UED和测试,验收测试的反馈会影响UED阶段的进一步修改。在设计--测试--修改这个反复循环的迭代开发流程中,可用性测试以及验收测试都可以为结束迭代的循环过程提供可量化的指标。
从产品的角度来看
UED是在产品前期进行的操作,而测试是在产品完成之后的后期操作。两者对于产品的影响有根本的不同。UED是在产品未成形之前的探索和尝试,它的结果直接关系着产品的未来的模样,属于创造性的内容。而测试则是在产品模样产生之后的检查和核对,不能对产品本身产生根本性的影响,只能是影响细小方面的修正和弥补,属于辅助性的内容。因此,从产品的角度来看,两者的差别比较明显,联系不再很紧密。
总结
UED和测试有着以产品为核心的联系,也有着本质上的区别,但是两者都为更好产品的诞生做着不同的努力,在总体的目标上是一致的。另外,随着UED的兴起和不断发展,在产品开发和测试中广泛应用的迭代模式也将逐步渗透到UED中,原因就在于两者共同的目标和联系。迭代式UED将会如现在的迭代测试一样,为创造更好的产品发挥更大的作用。