软件测试过程是指,评估和验证软件产品或应用程序是否按预期方式运行。良好测试的好处包括防止错误和提高性能。
当今的软件测试在持续进行时最有效,这表明测试从设计期间开始,在构建软件时继续进行,甚至在部署到生产环境后也进行测试。持续测试意味着,组织不必等待部署了所有部分,即可开始测试。左移和右移也是最近在软件社区中获得关注的测试理念,前者将测试移到更接近于设计阶段,后者是指由最终用户执行验证。在您了解测试策略和管理计划后,在需要快速交付的情况下,将测试的各个方面自动化就变得至关重要。
战略应用程序现代化是转型成功的关键之一,可以提高年收入并降低维护和运行成本。
注册以获取有关 DaaS 的指南
具有许多不同类型的软件测试,每种测试具有特定的目标和策略:
在每种情况下,验证基本要求都是一项关键评估。同样重要的是,探索性测试帮助测试人员或测试团队发现可能导致软件错误且难以预测的场景和情况。
即使是简单的应用程序,也可能要进行大量各种各样的测试。根据可用的时间和资源,测试管理计划帮助确定哪些类型的测试最有价值。可以运行最少数量的测试以发现最多数量的缺陷,从而优化测试有效性。
软件测试是伴随软件发展而出现的,它的雏形出现在第二次世界大战结束后不久。计算机科学家 Tom Kilburn 被认为是编写第一款软件的人,该软件于 1948 年 6 月 21 日在英国曼彻斯特大学首次亮相。它使用机器代码指令执行数学计算。
调试是当时的主要测试方法,在接下来的二十年里一直如此。到 20 世纪 80 年代,开发团队不再局限于隔离和修复软件错误,而是开始在实际环境中测试应用程序。这为更广泛的测试范围奠定了基础,其中包括作为软件开发生命周期一部分的质量保证过程。
很少有人会反对开发软件时需要进行质量控制。延迟交付或软件缺陷可能会损害品牌声誉,从而导致客户满意度下降和客户流失。在极端情况下,错误或缺陷可能会降低互连系统性能或导致严重故障。
例如,由于安全气囊传感器探测器的软件缺陷,日产不得不召回超过 100 万辆汽车;软件错误还导致价值 12 亿美元的军用卫星发射失败。1 数字不言自明。2016 年,软件故障使美国经济损失了 1.1 万亿美元的资产。更严重的是,这些软件故障影响了 44 亿客户。2
尽管测试本身需要投入资金,但如果公司采用良好的测试技术和 QA 流程,每年可以节省数百万美元的开发和支持费用。早期的软件测试可以在产品上市之前发现问题。开发团队越早收到测试反馈,他们就可以越早解决问题,例如:
如果开发为测试留出足够的空间,则会提高软件可靠性,并交付几乎没有错误的高质量应用程序。满足甚至超过客户期望的系统可能带来更多的销售额和更大的市场份额。
软件测试采用一个通用的流程。任务或步骤包括定义测试环境、开发测试用例、编写脚本、分析测试结果和提交缺陷报告。
测试可能会耗费很多时间。对于小型内部版本,手动测试或临时测试可能就足够了。但是,对于较大的系统,通常使用工具自动执行任务。自动化测试帮助团队实施不同的场景,测试差异化因素(例如,将组件移到云环境中),并快速获得哪些因素有效或无效的反馈。
良好的测试方法涵盖应用程序编程接口 (API)、用户界面和系统级别。自动化且尽早运行的测试越多越好。一些团队构建内部测试自动化工具。但是,供应商解决方案提供的功能可以简化关键测试管理任务,例如:
连续性测试
项目团队在每个内部版本完成时对其进行测试。这种类型的软件测试依赖于与部署过程集成在一起的测试自动化。该功能可以在部署过程早期在真实测试环境中验证软件,从而改进设计并降低风险。
配置管理
组织集中维护测试资产,并跟踪要测试的软件内部版本。团队可以访问代码、要求、设计文档、模型、测试脚本和测试结果等资产。良好的系统包括用户身份验证和审计跟踪,以帮助团队以最少的管理工作量满足合规性要求。
服务虚拟化
测试环境可能不可用,尤其是在代码开发早期。服务虚拟化模拟缺失或尚未完成的服务和系统,以使团队能够减少依赖并尽早进行测试。他们可以重复使用、部署和更改配置以测试不同的场景,而无需修改原始环境。
缺陷或错误跟踪
缺陷监控对于测试和开发团队衡量和提高质量至关重要。通过使用自动化工具,团队可以跟踪缺陷,衡量其范围和影响并发现相关的问题。
指标和报告
通过使用报告和分析,团队成员可以共享状态、目标和测试结果。高级工具集成项目指标,并在仪表板中显示结果。团队可以快速查看项目的整体运行状况,并且可以监控测试、开发和其他项目元素之间的关系。
IBM Engineering Workflow Management 可助力团队管理计划、任务和项目状态,从而充当所需工作和已交付工作之间的关键环节。
IBM Engineering Test Management 是一个协作式质量管理解决方案,提供从需求到缺陷的端到端测试规划和测试资产管理。
全面的测试和虚拟化平台有助于确保整个软件生命周期的应用程序质量。
IBM DevOps Test Workbench 提供软件测试工具来支持 API 测试、功能用户界面测试、性能测试和服务虚拟化。
IBM® DevOps Test Virtualization 支持在开发生命周期中进行频繁的早期测试。
IBM DevOps Automation 使用生成式 AI 和自动化帮助提高生产率,降低业务风险并更快地交付应用程序。
IBM DevOps Deploy 是一种应用程序发布解决方案,它将自动化融入持续交付和持续部署流程中,并提供强大的可见性、可跟踪性和审计功能。
Velocity 自动执行发布生命周期中的流程,并收集 DevOps 流程洞察。
持续测试在加速软件开发、提高代码质量和避免代价高昂的瓶颈方面发挥着至关重要的作用。
软件开发是指一系列计算机科学活动,专用于完成创建、设计、部署和支持软件的过程。
本电子书探讨了为什么更早、更频繁的测试对于实现 IBM DevOps 加快软件交付的目标至关重要。
以开发人员为中心的深层次资源,旨在帮助改善您的软件生命周期体验。
一个平台,您可以通过网络研讨会、博客和其他精彩内容了解最新信息。与世界各地的同行讨论软件测试和 DevOps。
1 “什么是软件测试?”(ibm.com 外部链接),Thomas Hamilton,guru99.com,更新日期:2024 年 1 月 3 日
2 “故障经济:计算软件故障的成本”(ibm.com 外部链接),Dalibor Siroky,2017 年 10 月 30 日