在整个软件开发周期中,AI大模型都为工作效率的提升带来了很大的便利,AI大模型在写基础代码和做基础测试时可谓便捷且高效,正在逐渐替代一些基础程序开发工程师和测试工程师。
作为一名测试工程师,今天我们聊一下,AI发展,到底给软件测试工程师带来哪些挑战?软件测试工程师会被时代淘汰吗?
软件测试对于软件开发的意义是什么?
软件测试是软件开发生命周期中的一个重要环节。从需求分析阶段、设计阶段、编码阶段、集成阶段到系统测试阶段和软件发布后的维护阶段,软件测试贯穿始终。尤其是验收测试阶段,大多需要找具有CNAS或者CMA检测资质的专业第三方检测机构做具有更有认证价值的检测报告,才能完成一个项目的最终交付。
软件测试的目的是确保软件的质量,发现并修复缺陷,以及验证软件是否满足用户的需求。
目前AI大模型在软件测试方面完成得如何?
首先是比较基础的功能测试和兼容性测试,AI大模型已经相当完善了。现在大多数测评实验室已经开始应用大模型。一般做功能性、安全性各方面的检测,一切要按标准执行,用人工测试其实很复杂,每个条款都要人工审核,工作量非常大,AI大模型可以大幅度提高工作效率。
使用AI工具可以提前做一些解析,根据一些算法整理成计算机可识别的标签去处理,最后再人工复核,效果还不错。
目前AI大模型在软件检测中的弊端
(1)难免差错与遗漏 需要人工复核
在实践过程中,AI大模型很容易出现一些遗漏的地方。但是软件检测是不允许有任何差错的,有差错一切归零。这种情况下,对技术的要求也很高,把标准翻译出来只是第一步,后续的环节还需要大量的技术人员和测试人员共同努力。
(2)如果安全测试也用大模型来做,这个事儿还安全吗?
这也是很多软件开发企业的共同担忧。安畅检测首席技术专家李龙曾就这一问题,根据自己深耕十几年安全领域的经验,做出以下解答:
安全分为几个层面——信息安全性、数据安全、网络安全和设备本身的安全。如果从信息安全性来探讨,它是安全的。从可复查性、抗攻击性等方面来说,用大模型是完全可以的。
但是对于网络攻击型的、数据安全型的,需要具备一定攻防能力才能做好,而这类产品的检测又恰恰很难被大模型基础性标识去模仿和取代。所以安全测试方面,大模型目前难以完全支撑。
测试工程师应该如何保持竞争力?
对于有经验的测试工程师,建议大家提升测试能力,不要把精力只放在基础的功能测试上,要从基础的信息安全往数据安全、通信安全、网络安全方向发展,提升攻防、渗透安全检测能力。
李龙先生对刚入行的测试工程师或在读大学生提出过四点建议:
(1)把《软件工程》这本书学好;
(2)把《网络工程》学扎实;
(3)学一门编程语言,python也可以,要能看懂代码,能写基础的代码;
(4)离校之前重装一次自己的电脑,能做到把你们宿舍的人连成一个局域网。