国内软件测试现状调查报告(三)
目前已发布了两个报告,大家关注度不是很高,可能最关心的自动化方面的内容没出现,那今天我们就来分析一下本次调研的重头戏:自动化测试的现状。
1. 国内软件测试团队居然有一半没采用探索式测试,虽然早在2006年探索式测试(Exploratory Testing, ET)就相对比较成熟,有明确的思想、方法、操作过程和管理。ET最早出现在1983年,相对明确的概念是1995年。如果不清楚ET,可以参考:探索式测试的历史(History of Definitions of ET)和 究竟什么是敏捷测试和探索式测试? 相对ET,ST(Scripted Testing, 基于脚本的测试)则相对比较传统。开发关键性软件产品的团队,可以采用ST方式为主,ET为辅,目前这部分占到三分之一,期望结果应该占到60%以上,与期望结果差距较大。对大多数非关键系统,可以全面推行ET,但也少不了ST,因为自动化测试也属于ST。理想情况是将ET和ST两种方式结合起来(希望不要将ET、ST看成“测试方法”),例如,新功能测试可以采用ET,回归测试采用ST,如果想更好理解其操作,可以参考:软件测试的一个新公式引起的思考 。
2. 研发团队过去一年自动化功能测试总体模式呈现“橄榄球模式”,两头(UT、UI)小、中间(API)大,也还算良性。API测试排在第一,其次就是UI(用户界面)测试,单元测试(UT)最低,如果UI和UT的结果互换一下更好。从理想的金字塔模式看,UT应该最高,然后是API、最后是UI。代码的自动化测试没有障碍,而且代码每天都在改。接口测试的自动化投入少、效益大,应大力提倡,但一方面要求API稳定,因为它的改动会造成较大的影响。
从调查结果看,前端和后端没有明显差别,但从理论上看,后端也是自动化测试的重点区域,可以达到90%以上。
3. 对于自动化投入(或理解为RoI)模式,有近一半人不了解,这样很正常,工程师们关注技术,叫干活就干活,可能不关注投入产出,而关注RoI的,多数是管理者。但进入软件研发这一行,也需要了解,更应该关注自己做的工作是否值得有较大的投入。除了上面第2项已经介绍的金字塔、橄榄球两种模式,冰淇淋模式是和金字塔模式相反,是要摈弃的,占得比重和橄榄球模式接近。纸杯蛋糕模式,UI偏多,虽然可以理解,但也是不鼓励。调查结果明显偏高,纸杯蛋糕模式高出橄榄球模式不少,和金字塔模式接近。
4. 功能自动化测试实施不理想。之前,就有同学告诉我,我比较乐观,现实是残酷的。没有自动化的占的比重不低,18.53%,极少的自动化测试也高达30%。而真正自动化测试做得好的(>80%),只有10%。国内低于50%的比例高达 75.33%(27.07+29.73+18.53),低于国际水平 10%(39+26=65%),无论是国内和国外,自动化测试水平还偏低,虽然大家都认为自动化测试重要。
下面是国际调查的结果
5. 过去一年软件项目,对单元测试代码行覆盖率没有要求的,接近60%,单元测试非常不理想。要求达到行全覆盖的不到5%,大于80%算合理的要求,也只有13%。
6. API自动化测试工具主要采用JMeter,其次就是自己开发的工具,Postman和SoupUI也有较高的使用率。
7. Web功能自动化测试工具主要采用Selenium+WebDriver,超过一半,其次也是自己开发的工具,多数web测试工具没什么市场。“其它”占了三分之一,需要进一步调查,或大家留言推荐。
8. 移动应用自动化测试工具主要采用Appium,接近一半(44%),“其它”占的比重较大,高于40%,需要进一步调查,或大家留言推荐。官方的Espresso应用很低,Calabash更低,但还是希望大家多关注这两个工具。
9. 性能测试工具相对集中,开源的属JMeter,商业工具属LoadRunner,几乎没有对手,“其它”占的比重相对不高(18.4%)。对于特殊的应用,就需要自己开发(21%)。Gatling用于web测试挺好,只是熟悉scala脚本语言的工程师不多,但掌握Scala不难。
10. 安全性测试工具太多,分布比较广,“其它”占的比重很高(66%),其中也包括许多人不用安全性测试工具,做安全性测试的人数,比性能测试要低不少,不清楚选哪一个。为了搞清楚安全性测试工具情况,搞了一个新调查(https://zh.surveymonkey.com/r/TT8S3N2),由于是国外网站,速度非常慢,看来还要移到国内网站在进行调查,到时需要大家支持。
11. 测试管理与缺陷管理工具相对集中到——JIRA和禅道,自己开发和“其它”占的比重接近,大约23%。
12. 自己团队未来1-2年会加强的测试工作主要集中在“自动化测试”和“开发技术”的提升上。自动化测试的确不能让人满意,差不多有一半团队作为2018年的工作重点,希望明年调查时,自动化测试有所改善。
大家看了这个报告,有什么感受?欢迎留言讨论!
第四份报告,我们就这12项内容,再次进行传统IT公司和新型互联网公司进行比较分析,看看究竟它们有何差异。
参考: