Created
Sep 1, 2024 03:07 AM
Favorite
Favorite
Priority
备注
推荐
类型
notion image
嘉宾 | 李永刚
随着人工智能的不断发展,各行各业与人工智能的融合也越来越多,智能化测试就是其中之一,本期我们采访了 ArchSummit 全球架构师峰会(上海站)专题出品人李永刚老师,他从软件测试的发展历程入手,为我们分享了智能化测试案例、自动化测试与智能化测试异同以及企业如何做到智能化测试等等,本文为采访整理文,期待对你有所启发~
智能化测试
InfoQ:在您看来,软件测试历史可以分为几个阶段?
永刚:软件测试的历史不长,但阶段划分方式众说纷纭,大体上我比较认同的软件测试阶段是这样的。电子计算机诞生初期主要应用于军事价值较高的领域比如破解加密通信、曼哈顿计划等,从事的更多偏纯粹科学计算类的工作,这一阶段程序开发、调试、验证还没有形成明确的分工,测试的目标是定位并修复缺陷,也即所谓面向调试的(Debugging-Oriented)测试;
之后随着应用范围的扩大进入专用系统时代,测试成为一种独立的活动,其主要目标是确保系统满足设计需求,证明系统能够正常工作,因而是面向演示的(Demonstration-Oriented)测试;
然后进入了计算机快速普及的 PC 时代,商用系统成为主流,企业对软件质量的要求推动了测试的崛起。测试先呈现出攻击姿态,目标是攻陷(Break)程序、发现其中任何潜藏的错误。缺陷的发现绵延不绝、软件也就迟迟无法交付,最终导致保护式编程作为一种应对策略成为开发人员的基本素养。而人们也开始接受无法穷尽所有缺陷的现实,转进到面向质量评估式(Evaluation-Oriented)的测试阶段,测试目标升级为评估和度量软件质量,质量达到可接受水平即可发布;
再其后,我们就进入了互联网时代,互联网催生新的软件形态的同时也使得交付节奏不断加快,敏捷软件开发兴起,持续测试的要求驱动测试迈向自动化,LAMP 架构大行其道,UI 自动化测试框架 Selenium、接口测试工具 SOAP UI 广为流行;
最后是移动互联网时代了,智能手机普及,移动端应用爆发,微服务架构成为服务端架构事实上的标准,全链路压测成为验证复杂系统稳定性的仅有手段,移动端 UI 自动化、性能体验、稳定性、兼容性要求凸显,新的测试理论如探索式测试、测试驱动开发、行为驱动开发等成为一时热词之后却没能全面普及。总体而言,在开发领域从理念(敏捷开发)、架构(微服务、动态化)、方法论(领域驱动开发)、实践(开源、组件化开发)等方面全方位变革的时代,软件测试领域并没有形成系统化的应对,我们正在掉队……
InfoQ:您认为目前有哪些案例可以算得上是智能化测试?智能化测试应该如何定义?
永刚:智能化测试目前还没有一个准确的定义,至少还没有在业界形成广泛共识。在我看来,智能化测试主要是指人工智能相关技术在测试领域的应用,是伴随着人工智能领域的技术突破而出现的智能化浪潮的一部分,就像无人驾驶、智能音箱分别是人工智能在车载、家用场景的具体应用,只是后者由于面向大众消费市场而更受瞩目而已。
智能化测试方向近几年已经出现了一些很有意思的尝试: 国外比较知名的有 Facebook 在移动端应用上进行自动化探索式测试的 Sapienz 以及自动修复 NPE 类型缺陷的 SapFix,国内移动端有公司通过对 Crash 日志进行数据挖掘解决 Crash 定位难题,服务端也有基于少量既有用例进行智能化测试用例推荐 / 膨胀的实践。这些案例都在一定程度上体现出智能化的特点。
Loading...