随着研发效能的不断发展,低效的手工测试和高效的研发交付之间的矛盾愈来愈突出。这也促使测试技术有了突飞猛进的发展,测试技术逐渐以中心化的测试平台方赋能团队,从而提升功能测试团队整体质量效能,这也为测试技术智能化提供了良好的基石。
智能化测试是一个新鲜又老旧的问题,说新鲜是因为很多人当听到智能化测试都会联想到人工智能、机器学习、深度学习等高大上的技术,很多时候觉得离我们的实际工作还很远;说老旧,是因为智能化测试的一些技术的发展在行业里面已经很久了,例如符号执行、静态分析等技术已经有很长的历史了。近些年,随着测试技术的的飞速发展,智能化测试也有了越来越多的实践,优秀的开源项目慢慢的被行业推行并且落地。
智能化测试就是解决了研发效能和质量效能而出现的,智能化测试可以完成测试逻辑的建立、测试数据流的设计,同时也支持了后续的测试执行、测试结果收集和分析。在很大程度上释放了人力,将人释放出来做更需要人的主观判断、决策等的事情。
这也导致了分层自动化测试模型的的发展,如图1中金字塔模型其中包含了UI测试、API测试和单元测试,每一个阶段所占面积的大小,代表了它们在测试过程中的投入和工作量占比。随着项目实践的不断发展,在质量保障过程中,测试工程会不断增大接口测试的测试深度和测试广度,往下逐渐覆盖一些公共接口的单元测试内容,往上则逐渐覆盖应该由UI层保障的业务逻辑测试,这么做的主要目的,就是为了更好地完成质量保障工作,交付一个可靠的、高质量的项目,因此分层测试模型逐渐的变