摘要:软件测试的最高层次需求是:UI测试,也就是这个软件“长得好不好看”。
为了让读者更好地理解测试,我们从最基础的概念开始介绍。以一个软件的“轮回”为例,下图展示了一个软件的研发流程。随着软件规模的不断增大,一个软件动辄百万行的代码,想要单靠人工检查或者程序猿的技术本身保证质量已经变得不现实。因此,测试成为软件流程中必不可少的环节。
测试过程中会涉及不同的需求,以Mike Cohn在他的著作《Succeeding with Agile》一书中提出的“测试金字塔”宝图镇楼为例, 从下至上对应的测试需求分别为:单元测试,服务测试,用户界面测试。
这个金字塔形象地反应了笔者这些程序猿面临的问题。我们知道马斯洛的需求层次理论,在其著名的“马斯洛需求金字塔”中展示了一个人的不同层次的需求。笔者感觉这两个金字塔有很多相似之处。
个人最基本的需求是生理需求与安全需求,对应测试中就是“单元测试”。如果一个程序中的单元测试都不能保证,其上层的测试就无需谈起。而这部分也是需要花费大量精力去做的事情。每个开发人员在编写“单元测试”,并且完成测试之后,保证自己的服务能够正常运行才会考虑服务测试。就相当于自己吃饱了,安全了,才有力气和意愿去和别人交流。
此时,我们进入到下一个层次“社交需求”,服务之间的通信就像人类之间的“社交”,大家都要遵循一定的规则(程序接口,各种规范),才可以进行顺畅的通信。在日常生活的这个“交流”过程中,难免会出现一些误差,导致错误。然而,软件中出现一点点错误,可能导致不小的麻烦。例如2017年的这个新闻:以色列报纸“哈雷兹”报道说,一名巴勒斯坦男子被以色列警方逮捕,当时他在自己的脸书账号上写了“早上好”,Facebook自动翻译服务错误地用希伯来语翻译为“攻击他们”,用英语翻译为“伤害他们”,Facebook对此表示歉意。
软件测试的最高层次需求是:UI测试,也就是这个软件“长得好不好看”。这里引用一个词语“一想之美”,每个人心中关于美的定义都不相同,那什么样的软件才是“美”的?我们又应该如何测试?(终于凑够了领导要求的字数)。
下面是恰饭时间,不感兴趣的童鞋可以刷其他文章了。
单元测试需要程序猿自己在开发过程中编写,那么服务测试如何实现自动化?
这里华为云提供了云测(CloudTest)的测试平台。
官方介绍:云测(CloudTest)是面向软件开发者提供的一站式云端测试平台,覆盖功能测试、接口测试,融入DevOps敏捷测试理念,帮助您高效管理测试活动,保障产品高质量交付。
功能测试云测融入全生命周期追溯、团队多角色协作、敏捷测试、需求驱动测试等理念,覆盖测试需求管理、测试任务分配、测试任务执行、测试进度管理、测试覆盖率管理、测试结果管理、缺陷管理、测试报告、测试仪表盘,一站式管理功能和自动化测试,提供适合不同团队规模、流程的自定义能力,帮助多维度评估产品质量,高效管理测试活动,保障产品高质量交付。
接口测试基于接口URL或Swagger文档快速编排接口测试用例,集成流水线,支持微服务测试、分层自动化测试。测试用例免代码编写,技术门槛低,适合接口开发者、接口消费者、测试人员、业务人员等不同角色使用。一键导入Swagger接口定义自动生成脚本模板,基于脚本模板组装编排、管理接口自动化测试用例。支持HTTP和HTTPS协议,可视化用例编辑界面,丰富的预置检查点、内置变量,支持自定义变量、参数传递、持续自动化测试。