摘要:软件测试的最高层次需求是:UI测试,也就是这个软件“长得好不好看”。

为了让读者更好地理解测试,我们从最基础的概念开始介绍。以一个软件的“轮回”为例,下图展示了一个软件的研发流程。随着软件规模的不断增大,一个软件动辄百万行的代码,想要单靠人工检查或者程序猿的技术本身保证质量已经变得不现实。因此,测试成为软件流程中必不可少的环节。

 

 
 

测试过程中会涉及不同的需求,以Mike Cohn在他的著作《Succeeding with Agile》一书中提出的“测试金字塔”宝图镇楼为例, 从下至上对应的测试需求分别为:单元测试,服务测试,用户界面测试。

 

 
 

这个金字塔形象地反应了笔者这些程序猿面临的问题。我们知道马斯洛的需求层次理论,在其著名的“马斯洛需求金字塔”中展示了一个人的不同层次的需求。笔者感觉这两个金字塔有很多相似之处。

 

 
 

个人最基本的需求是生理需求与安全需求,对应测试中就是“单元测试”。如果一个程序中的单元测试都不能保证,其上层的测试就无需谈起。而这部分也是需要花费大量精力去做的事情。每个开发人员在编写“单元测试”,并且完成测试之后,保证自己的服务能够正常运行才会考虑服务测试。就相当于自己吃饱了,安全了,才有力气和意愿去和别人交流。

此时,我们进入到下一个层次“社交需求”,服务之间的通信就像人类之间的“社交”,大家都要遵循一定的规则(程序接口,各种规范),才可以进行顺畅的通信。在日常生活的这个“交流”过程中,难免会出现一些误差,导致错误。然而,软件中出现一点点错误,可能导致不小的麻烦。

软件测试的最高层次需求是:也就是这个软件“长得好不好看”。这里引用一个词语“一想之美”,每个人心中关于美的定义都不相同,那什么样的软件才是“美”的?我们又应该如何测试?