"软件生命周期是复杂的,全局性的,并且对于现代企业来说还有一定的滞后性。 随着软件从业务推动者的角色向市场区分者转变,软件质量对于品牌的信誉和声望越来越重要,但随之而进行的软件质量升级并没有跟上。因此,质量不合格、缺乏创新和不符合业务预期的软件频繁交付。软件在业务中的这种角色转变,已经把软件的质量及其相关的活动置于SDLC的核心地位。 每一个团队成员都要对软件质量负责。这就意味着所有人都必须能够证明他们在软件方面所做的工作会使产品向着正确的方向发展。因此,软件测试至关重要,它必须是持续的并且便于度量和管理。 测试并不是软件生命周期中一个孤立的步骤或者阶段,测试必须贯彻软件生命周期中的各个阶段。在软件生命周期中,所有的团队成员都必须对软件质量负责。 测试经常被排除在现代软件开发实践之外,我们必须对其进行积极的重塑和整合,使其成为管理和衡量软件生命周期的一部分。通过测试可以向技术和业务人员传达软件生命周期中的重要信息。是否从早期开始进行软件测试并适当的使用测试传达相关信息,是区分通过应用程序交付有价值的商业产出和勉强将业务和IT联结在一起的公司的关键。 没有开发测试平台,主管和经理们只能手动找出应用程序相关信息和潜在的风险,并通过对应用程序和业务的状态做出主观的判断,才能进行任务分配。这种手动的实践方式不利于维护和提取有效信息,费时费力,极其不方便。 开发测试平台及其对应的解决方案提供了软件生命周期所需的自动化信息整合,同时也降低了开发风险。通过使用开发测试平台,我们可以更好地经营业务需求并通过软件塑造品牌的形象。 下面是开发测试解决方案处理的软件生命周期中一些常见的问题。
缺少开发度量指标
在软件生命周期的关键阶段(开发、QA和运营等)中,只有QA和运营阶段依赖于可度量的指标。QA阶段使用了一系列度量指标,包括缺陷度量指标和测试覆盖率指标等。运营团队通过正常运行时间,可用性和服务层协议等指标来度量软件质量。 然而开发过程中并未像软件生命周期其他阶段那样受益于度量指标。 开发测试授权开发阶段进行自动化的测试和代码分析以识别潜在的缺陷,并根据代码质量提供与业务相关的客观风险评估。开发测试不仅提供了一种减少应用程序风险的机制,还为理解下一个候选发布阶段提供了关键的数据点。监控这些数据点可以帮助公司避免重复工作,而且还能防止应用程序在软件生命周期的后期阶段偏离业务预期。
集成
如何对复杂并且不断变化的全球软件供应链进行集成是软件生命周期团队每天努力解决的核心问题之一。对于集成方面的要求包括各类应用程序、平台、操作系统和设备等。客户期望这些集成可以在工作中产预期的效果。集成方面的问题给各类开发团队提出了一个极大的挑战。 今天应用程序的复杂性以及集成的需要驱动着开发测试解决方案对软件供应链的积极配适和集成。通过实施开发测试解决方案,软件供应链能够处理持续稳定,符合预期的软件产品。 开发测试平台集成了来自开发测试解决方案的信息,同时还可以识别缺陷,并预防业务风险进入最终产品。
发布周期
由于如下三个主要原因,软件发布速度必须极大地提高:
-
对于软件产品不断提高的业务需求
-
对于缺陷产品需要不断发布新的版本来修复问题。
-
敏捷的困境,内在风险和业务需求对于速度和灵活性的困惑,使得敏捷开发并不适合所有的组织和项目。
软件团队不可能会有太多经验性信息。这种信息的缺乏导致了软件发布周期的不确定性大大增加。 开发测试工具和平台确保软件团队了解更多关于软件构建、集成和发布的相关信息。软件团队需要持续可靠的数据来评估候选版本是否可以发布。有了更加可靠一致的数据,团队就可以获取更多的实验性证据,从而评估软件交付的风险。大多数软件团队单凭感觉就说“我们已经完成了”,实际上并没有可靠的数据来支撑所做的发布决策。开发测试工具平台使软件的发布更为可靠并且可预测。可靠的软件发布意味着软件团队能够通过不断地修复和补充,从而集中力量交付有价值的商业产出。
减少产品缺陷
产品缺陷是所有开发团队都不得不面对的重大问题。产品缺陷的遗漏主要是由于缺陷的识别落后于缺陷的引入。测试不充分,代码覆盖率低,或者不重视缺陷的预防都可能在产品中引入缺陷。 开发测试技术(如静态分析),可以有效地预防缺陷。静态分析和动态工具分析,通过覆盖代码执行路径来分析代码库。其他技术,如代码度量指标分析,可以帮助识别不易测试的复杂或无用的代码。通过在可执行版本形成之前识别缺陷,可以保证发布版本的软件质量。 许多公司不愿采用静态分析技术,因为开发者认为它是凌驾于开发过程之上的,并没有太大的实际作用。voke公司的调查表明,开发测试工具,包括静态分析,所带来的益处,远远大于开发过程之上的任何进程。静态分析工具在第一时间帮助开发者构建高质量的软件产品。
安全性
应用程序的安全性是最容易被忽略的非功能性需求。安全性总被认为是其他人的问题。安全性缺陷与每一段源代码息息相关。这些缺陷并非故意遗漏的,但如果被攻击者利用,后果不堪设想。解决安全问题的关键是预防。开发测试解决方案可以有效预防安全性缺陷引入源代码中。开发测试平台能够实施安全政策,并对安全性缺陷进行监控,确保开发测试过程符合定义的安全性需求,在软件生命周期的最早期阶段就开始防止缺陷的引入。
自动化
对软件的业务性要求意味着在面对可能的时间和质量方面压力时,必须使用自动化操作流程。不断增加的自动化流程,可以最小程度地减少人为的错误,确保软件团队集中精力处理应用程序生命周期中与公司战略相关的重要部分。大部分公司缺乏高效的自动化工具,常常在功能性需求和非功能性需求之间来回挣扎。开发测试平台自动化验证软件生命周期中的关键性业务预期,利用现代的生命周期工具减少风险,同时管理复杂的软件供应链。
测试管理
管理和维护非常多的测试套件对于任何公司来说都是一个挑战。经常会不清楚需要运行哪个测试套件,每一个测试都是什么阶段,测试结果的所有者是谁等等。测试是软件生命周期中富有挑战性的部分,许多公司花费了大量的时间和资源来理解测试套件。因此,测试用例必须随着代码库的升级而进行维护,否则测试的效果就会大打折扣,而且还会降低测试团队的信心。开发测试平台确保软件团队将测试与特定的需求,缺陷和源代码结合起来,使测试和管理都能正常进行。"
阅读voke公司关于开发测试的完整调查报告
想要了解更多吗?下载完整的voke公司开发测试平台调查报告查阅详情,您会获得voke公司在如下几个方面的观点:
- 为什么仅仅通过使用测试工具不能使公司的软件业务更加具有竞争力?
- 怎样依靠分析关键数据而不是单凭感觉来做出更为明智开发决策?
- 缩小业务预期和开发实际情况之间差距的一些战略
- 如何评估您的公司是否值得进行开发测试方面的投资?如果值得,如何向管理层证明投资的价值?