51Testing专访蒋铭--确保软件卓越:测试技术与质量把控
前言内容:
在当今数字化时代,软件质量至关重要。本次嘉宾专访以《确保软件卓越:测试技术与质量把控》为主题,深入探讨软件测试领域的关键问题。从数字化转型带来的挑战到敏捷开发下的流程变化,从平衡测试深度与广度到利用新技术保障质量,涵盖软件安全、云原生应用测试、移动应用质量、团队协作以及未来自动化测试趋势等多个方面。通过嘉宾的专业见解,为读者揭示软件测试与质量保障的最佳实践和发展方向。
1.在当前数字化转型的大背景下,软件测试与质量保障面临的最大挑战是什么?您是如何应对的?a)软件测试、质量保障覆盖的领域比较宽广。需要测试/质量保障人员从业务、技术,乃至政策都有一定了解和沉淀。我们需要掌握的知识太多了,技术、业务发展都很快。b)通过参与项目、产品开发整个软件开发测试生命周期不断进行迭代,去研究最新技术、了解流行热门市场,从而尽可能在能力范围内提升软件质量,保障项目或产品的交付。c)个人遇到的最大挑战,是业务知识的不足会对测试质量精准性产生一定影响。作为技术人员,在业务领域比不过前线同事,于是个人利用一切机会参与业务会议或市场活动,通过实战学习来积累业务知识,减少与业务人员交流中的信息差,提升自己测试业务需求分析的能力。
2.对于敏捷开发和 DevOps 模式的广泛应用,软件测试和质量保障的流程发生了哪些关键变化?a)敏捷开发和DevOps模式是继传统瀑布模型后的全新开发测试模式。敏捷开发测试,主要将开发和测试人员组成一个研发小组,直接在Scrum老大带领下,完成产品/项目,逐个清扫产品需求队列中的待办事项,开发测试一体化。DevOps是更加偏向于运维侧,开发与运维人员直接对接,更快速高效实现开发到部署、运维的链路,可以有效提高产品质量和稳定性,开发运维集成化。
3.如何平衡测试的深度和广度,以在有限的时间和资源内达到最佳的质量保障效果?a)软件测试深度,倾向于专业性,即在某一个业务或某一类技术上,深入挖掘做到行业内的标杆,即努力成为专家精英。测试广度,需要全面了解业务领域和市场变化,能够掌握核心主流测试方法,熟悉各种热门测试工具,重视广覆盖。b)个人主要通过自动化工具,编写测试脚本来完成批量测试任务,提升测试覆盖率,尽可能覆盖全部测试用例的执行。通过与业务人员密切沟通确认最重要的测试项目,调整优先级优先保障了核心的模块通过测试验收,深入完成主线业务测试流。这样就能根据自己能力和经验,提高整体测试工作效率,完成任务目标,即可以带来“最佳的”质量保障效果。
4.随着人工智能和机器学习技术的发展,它们在软件测试和质量保障中有哪些创新应用和潜在的风险?a)AI和机器学习技术可以对整个软件开发测试领域带来颠覆性改变。在AI自我学习过程中,软件测试与质量保障将变得异常简单,通过端到端代表模块自主调整和改进,可以快速自动完善测试脚本。而原有的传统工作模式、自动化集成的质量在AI辅助下会进一步提升。而人工疏忽造成的软件bug或高负荷几乎不会出现。我们可以更关注软件产品本身的业务创新和技术拓展。b)不过潜在的风险主要是AI在学习的起步阶段,仍需要人工进行大量数据校对和检查。大模型的关键就是数据的准确性,我们必须确保自我生成、自我学习、自我组建的测试框架中,数据都是合法合规,也是符合业务要求的数据源。
5.在保障软件安全性方面,您采取了哪些测试策略和方法来防范网络攻击和数据泄露?a)软件安全方面,主要还是依托传统的安全测试方法,通过静态、动态扫描来初步筛查粗略的代码编写规范。通过防范XSS脚本、DDOS攻击来挡住大部分安全压力负载、检测SQL语句注入来规避植入数据库相关的安全访问漏洞,从而避免数据泄露。b)人员管理方面,业务需要全员有安全和数据泄露意识,经常组织团队提高安全相关的技术培训。
6.对于云原生应用的测试,与传统软件测试相比,有哪些独特的挑战和应对措施?a)云原生应用测试,主要是在各种云平台成为主流应用基础架构后出现的新型测试策略技术。与传统测试相比,其优势在于很好的利用了云资源,通过微服务、低代码部署、模块化组件等,高效便捷完成各种应用的部署和实现。能够很好推进自动化开发测试,DevOps等,集成CI/CD也在云应用后变得更容易。b)另外,除去传统集成测试和持续集成/交付,契约测试是云原生应用中的一个特别测试策略,即测试服务会在约定的场景和配置下完成,从而保障服务和通讯间的准确性、稳定性,减少集成问题带来的风险。
7. 怎样确保移动应用在不同设备、操作系统和网络环境下的质量和用户体验?a)移动设备主要就是针对主流操作系统(苹果/安卓)和网络环境(WIFI/WLAN,4G/5G)进行兼容性测试。需要有独立专门的测试环境来完成测试工作。取决于项目/产品用户友好性要求,也需要团队有一定的预算经费。b)在交付时间允许条件下,尽量采用真实设备进行测试。条件不允许的,可以用浏览器中移动模拟工具来模拟主流设备的layoutUI,展示屏显效果和元素位置。但设备本身与其他应用程序的交叉兼容测试,只能通过真机来验证。
8.在跨团队协作中,如何确保测试团队与开发、产品等团队之间的高效沟通和协调?a)测试管理是项目管理一个子集。干系人管理我们本着开诚布公,团队共进退,站在一个统一的集体维度来看。b)大到战略目标,小到项目任务目标,都需要提前规划好。测试负责人需要安排好月/周/日的各种会议,会前准备,会后编写会议纪要来保证各方理解一致。c)测试人员与开发人员不是对立关系,而是相辅相成的合作关系。对产品业务侧提出的需求和业务事项,需要分类记录,然后仔细评估,通过优先级排序,在各个职能同事都认可前提下,展开工作。
9.面对不断变化的用户需求和快速迭代的开发周期,如何制定灵活的测试计划和策略?a)测试计划可能根据整个项目计划有一定调整。注意调整了计划后,需要与开发团队/项目组核心成员保持沟通,使得大的项目计划不被影响。也要及时通知用户侧,以免业务同事期望产生偏差。b)测试策略按需调整,若不是严重的范围变更,原有测试策略应该可以继续使用。这需要测试人员及时对齐项目目标,当然有效的沟通和协作是不变的前提。
10.您认为软件测试自动化在未来几年会有怎样的发展趋势?如何克服当前自动化测试中的常见问题?a)自动化测试肯定会随着AI技术发展,更加智能地,被大家更多、更高效地运用。各种应用工具的赋能,其实都是靠自动化技术成熟发展后产生的成果。b)前面提到过,主要需要注意点在于,我们在没有特别成熟使用AI技术,没有完善大模型学习时,仍然需要人工仔细审核和检测自动化过程中,可能遗漏或者错误的程序配置、模块脚本或生成的数据集合。对于自动化+AI等技术的学习深入,不断纠偏存在的潜在错误。
学习了
页:
[1]