Parasoft是一家专门提供软件测试解决方案的公司,Parasoft通过其经过市场验证的自动化软件测试工具集成套件,帮助企业持续交付高质量的软件。Parasoft的技术支持嵌入式、企业和物联网市场,通过将静态代码分析和单元测试、Web UI和API测试等所有内容集成到交付管道中,再加上服务虚拟化和完整的代码覆盖率,减少了交付安全、可靠和合规软件所需的时间、精力和成本。
在没有清晰能见度的情况下驾驶汽车不仅非常危险,也十分鲁莽。这会让我们和我们周边的人随时面临着碰撞、受伤、甚至死亡的风险。如果不能看到前方的道路,我们就无法预测潜在的危险或障碍,从而无法做出明智的决定并采取适当的行动。
同样,在开发软件的过程中不增加可视性,就像盲目驾驶。而软件指标提供了所需的可视性,能够帮助我们识别需要立即关注的潜在质量和安全问题,以便您可以决定何时加快项目进度,何时放缓速度进行调整。
可以提供分析的智能软件能够帮助我们:
-
理解指标
-
评估风险
-
衡量质量
-
预测结果
-
与团队有效协作
而所有这些都有助于团队:
-
遵守截止日期
-
交付高质量产品
-
满足客户需求
如何规划现代软件
现代软件项目通常是通过权衡用户现状成本和团队能力来规划的。通常,这些现状被记录在Jira、GitHub或Azure DevOps等工具中。
产品经理与开发经理会经过协商,以确定在当前的发布周期内实际能完成哪些工作。接下来,开发经理可以根据以下情况进行计划:
-
新的需求。
-
需要修复的现有问题
-
要解决的潜在技术债务
当然,计划可能会发生改变。大多数软件项目都会遇到问题或者障碍,从而改变计划的结果。特别是安全漏洞,可能会是一个非常重大的问题。项目中断是不可避免的,但如果无法衡量安全漏洞的影响,就很难控制项目的最终发展。
快速访问的可视性
可视性对于开发软件是至关重要的。监测工具和分析结果可以为做出安全有效的决策提供非常大的帮助。
在一个易于使用的仪表盘中快速访问软件开发指标,对于了解软件开发的状态和进展非常重要。通过仪表盘等可视化工具的快速访问,使敏捷开发团队能够:
-
通过对关键指标的单一、综合视图,识别可能需要注意的趋势、模式和问题
-
通过对软件开发指标的实时更新,及时做出明智的决定
-
以更直观、更有视觉吸引力的方式理解复杂的数据
跟踪哪些指标很重要?
指标通常在软件测试自动化工具 "接触" 代码的地方收集。通常情况下,收集行为发生在静态分析和测试执行期间。收集的详细信息可以交叉引用,例如文件、特定的测试、已知的安全漏洞或软件弱点以及要求。
静态分析结果
" 当我刚开始做开发时,我对静态分析带来的好处还是持怀疑态度。我这样做只是因为这是公司的规定。而多年来,我开始受益于此。静态分析能够持续地检测出某些原本不会被发现的问题,并表现为代码缺陷。相比于静态分析带来的好处,抑制掉静态分析过程中不可避免的误报真的不算什么大事。
静态分析有助于将安全性和代码质量的考虑转移到软件开发生命周期的早期,使开发人员能够在问题变得更加棘手和耗时之前解决它们。
通过将静态分析集成到开发过程中,开发人员可以在安全问题影响到最终用户之前识别和修复。对于某些安全关键行业,静态分析是保持代码库符合编码和行业指南要求的必要条件。
静态分析的指标可以为应用程序的质量和安全状况提供有价值的见解,帮助团队更好地规划他们的软件开发工作。像缺陷数量、严重程度以及它们在代码库中的位置等指标,可以帮助团队确定问题的优先次序并相应地分配资源。您可以跟踪一段时间的进展,并确定需要改进的地方。
静态分析也有助于遵守标准。收集的指标为团队提供他们所需的数据,以证明符合行业或监管标准。”
—— Jeehong Min(Parasoft DTP产品总监)
测试结果
测试结果是软件开发团队最重要的指标。如果测试失败了,就说明出了问题,需要立即关注。由于测试类型多种多样,团队应该每天收集和审查每种类型的指标。
单元测试
单元测试是测试套件的基本组成部分,
主要好处有:
-
确保代码单元正常工作
-
一旦新的代码提交,与代码的每个构建一起运行,并确保设备继续工作
-
快速运行意味着它们可以在编写新代码或变更现有代码时频繁运行
-
能够自信地重构代码
-
强制编写可测试的代码
-
使您能够轻松地测量代码覆盖率,大多数框架都让这个工作变得非常简单
API集成测试
集成测试的目的是确定独立开发的软件单元在相互连接时是否正常工作。API测试是集成测试的一种。
在软件开发中,有一句话很流行:尽早集成,经常集成。
集成测试使开发团队受益良多,因此它是必不可少的。集成测试用例比单元测试用例更难编写,但使用一个好的测试工具或框架会大有帮助。在运行集成或API测试时,我们需要花费更多的时间来测量代码覆盖率。
UI测试
UI测试是另一种类型的测试,它通过用户界面驱动应用程序。这些不同种类的测试都是有价值的,如果我们能将UI测试自动化,那么团队就没有必要一次又一次地运行手动测试。
但这些测试是最难编写的,而且维护成本很高。想要运行这些测试开发团队还需要对测试基础设施投入成本,用户可以在某些浏览器或Headless模式下运行它们,当然了,测量代码覆盖率也是需要成本投入的。
幸运的是,Parasoft为每种测试类型都提供了工具和框架,以便用户更容易编写和维护这些测试,并能够在运行时测量代码覆盖率。
手工测试
手工测试要求质量保证(QA)团队从最终用户的角度手动验证软件的功能。团队可以从手工测试的结果深入了解软件的可用性和用户体验,突出可能需要改进的地方。
什么是代码覆盖率?
代码覆盖率是一个与用户测试结果相辅相成的指标。有时候,您的代码可能有100%的测试用例通过率,但如果您的代码只有5%被覆盖,那您仍然是在“盲目驾驶”。
在一次旅行之前,相比仅通过10%的汽车检查,若您的汽车能通过100%的汽车检查,您肯定会更安心。同样,代码覆盖率是一个有用的度量指标,它与您的测试套件的深度和质量相关联。
什么是优质覆盖率?这视情况而定。
如果您正在启动一个新的项目,从一开始就以80%或更高的代码覆盖率为目标,这是合理的,这意味着您代码的80%都被测试了。如果您的代码库是新代码和一些遗留代码的混合体,那么可能很难达到80%的代码覆盖率。在这种情况下,您可以跟踪另外两个指标:
-
代码覆盖率趋势
-
变更后的代码覆盖率
覆盖率趋势&变更后的代码覆盖率
如果您的整体代码覆盖率在一开始就很低,比如10%,那么试图将覆盖率提升到80%,将会非常困难。但是,确保代码的覆盖率始终保持稳定上升却是个可行的方案。
随着时间推移,您可以通过跟踪趋势来提高代码覆盖率。除此之外,Parasoft建议的做法是测量变更后的代码覆盖率。这是您整体代码覆盖率的一个子集--是从您开始测量代码覆盖率以来发生变更的代码覆盖率。
Parasoft建议将80%作为变更代码覆盖率的目标。通过这种做法,即使一开始的整体代码覆盖率很低,也可以确保整体代码覆盖率不断提高,逐步达到80%的目标。
不同类型的覆盖率测试
对于许多团队来说,测量代码行覆盖率可能就已经足够。但对于某些安全关键行业,测量行覆盖率是远远不够的。安全标准,如ISO 26262,IEC 62304和DO-178C,需要足够的代码覆盖率指标作为相关证据,如语句,分支,MC/DC和其他覆盖率。而获得这些标准认证的TÜV SÜD工具,如Parasoft C/C++test,能够提供多达九种覆盖率指标,可以覆盖上述提及的各种覆盖率指标。
整合方案
既然现在已经了解哪些指标是需要跟踪的,那您肯定想更轻松快速地了解这些指标。这个时候您就需要用到DTP平台了。Parasoft DTP是一个软件质量控制管理平台,它通过仪表盘和报告工具,让用户能够一目了然地看到所有这些指标,而不必再花费更多的时间去整理这些指标。
开发团队可以在日常工作会议中使用这样的仪表盘,并在冲刺审查期间向相关人员展示项目的质量状态。
质量和合规团队可以使用仪表盘来持续监控他们对某些行业标准的合规性工作。
快速了解一下Parasoft DTP,看看DTP如何帮助开发团队全面地监控软件开发周期。
更好的代码质量带来价值
当我们关键的质量指标有可视性时,我们就不会在”盲目驾驶”。相反,在每一个步骤中,我们都可以做出明智的决定,从而得到更好的结果。
-
按时保质地交付
-
更少的技术支持问题
-
提高客户满意度
-
提高品牌声誉
如果我们可以“看清远方”,为什么我们还要“盲目驾驶”呢?