充分发挥C/C++test的价值(上)

news/2024/10/18 0:19:14/

对于开发测试来说,最有效的环境就是能够深度集成到开发人员IDE中的统一测试解决方案。例如,团队可能会将测试工作集中在最近更新的、高风险的代码上,而Parasoft C/C++test这样的集成工具就是最合适的解决方案。

软件验证和确认(Verification &Validation)是软件开发的一个固有部分。投入到特定V&V项目中的工作和预算取决于许多因素。无论是因为什么原因,一个团队要去实施项目质量管理计划,生产安全、高质量的软件产品所需要的不仅仅是决心,选择合适的测试方案是重中之重,这也是非常具有挑战性的。如今,互联网技术正在快速发展,公司必须在开源产品和商业产品之间做出选择。

这篇文章解释了如何将静态分析、运行时内存监控、自动化单元测试和流分析等自动化测试技术相结合,以改进项目质量管理过程,并提出了实施统一测试解决方案的好处。

统一测试解决方案的价值

在讨论统一测试解决方案的价值之前,我们需要明确它能够提供什么帮助。在理想情况下,解决方案应该:

  • 支持多种测试技术

  • 易于使用

  • 检测功能问题和回归

  • 提供需求和测试用例的可追溯性

  • 度量代码的复杂性、可移植性和可维护性

  • 提供即时反馈来提高开发人员编写代码效率

  • 提供有关开发进度的信息

  • 结合不同环节的结果进行高级分析

一个统一和集成的测试解决方案有助于避免一些问题:

  • 使用带有不同界面的独立工具时,存在多种学习曲线和可用性问题

  • 分散开发人员的精力

  • 避免在工具链的不同部件之间交换信息

检测尽可能多的缺陷

软件缺陷属于不同的类别,因此不能期望通过一种测试技术识别所有缺陷。例如,手动系统级测试。要了解更多的信息,请观察下面的示例代码片段:

上面的几行代码包含了几个问题。具体来说,在第16行中,开发人员试图使用calculateIdx()函数中计算的索引值来初始化全局缓冲区,但他们无法验证该值是否在允许的范围内。即使运行了几十个手动测试用例,他们也可能不会发现这个问题,因为将整数值写入随机内存位置大概率不会立即产生惊人的效果。

在这个例子中,Parasoft的内存错误检测很容易就识别了问题:

静态分析的价值

静态分析可以检测到运行时内存监控无法识别的问题。例如,在下面的代码片段中,第27/28行出现空指针解引用的可能性。在person指针参数为null的情况下调用storePersonToFile 函数会导致错误,但只有当在retrivePersonFromDB函数返回null时才会发生错误。在系统测试期间,不太可能出现这种情况,因为数据库连接很可能按预期运行,因此运行时内存监控工具不会报告出问题。但是,静态分析工具中的流分析很容易检测到从该函数返回的空指针,并报告潜在的空指针解引用问题。

Parasosft C/C++test

Parasoft C/C++test使用不同的技术来检测不同情况下会产生的缺陷,帮助我们检查出更多的缺陷,以此来提升我们的代码质量,下一期我们继续来了解:如果有些代码在静态分析和单元测试都没有检测出问题,我们还需要进行测试吗?

联系我们  了解更多

Parasoft中国

地址:上海市打浦路1号金玉兰广场西楼902

电话:021-60932819

 info-china@parasoft.com


http://www.ppmy.cn/news/101905.html

相关文章

初识设计模式

设计模式的思想 来自日常生活 设计模式的好处六大原则类别创建型(创建对象)结构型(构建模块之间的关系)行为型(交互) 重要模式详述单例模式工厂模式抽象工厂模式建造者模式装饰器模式适配器模式代理模式迭代…

知乎新财报,商业化难题有解了?

不知从什么时候开始,商业化好似成为了一朵乌云,笼罩在内容平台头顶,而为摆脱这一困局,内容平台也是屡屡出招。作为种草内容平台的小红书,最近更是动作频频。比如,小红书先是上线了团购功能,入局…

机器视觉陶瓷板智能检测设备在工业质检中的应用

随着工业自动化的不断发展,机器视觉技术在质量控制领域中的应用越来越广泛。在陶瓷制品生产中,机器视觉技术可以帮助企业实现陶瓷板的智能检测,减少人工操作的错误率,提高生产效率和产品质量。本文将介绍机器视觉陶瓷板智能检测设…

深度学习进阶篇-国内预训练模型[6]:ERNIE-Doc、THU-ERNIE、K-Encoder融合文本信息和KG知识;原理和模型结构详解。

【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等 专栏详细介绍:【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化…

易趋受邀出席CIAS 2023中国数智汽车峰会

2023年5月18日-19日,由中国电子商会、中国汽车信息化推进产业联盟、信息侠联合主办,上海市交通工程协会、 浙江省数字经济联合会联合支持的CIAS 2023第二届中国数智汽车峰会在杭州千岛湖顺利召开。易趋受邀出席此次会议,并发表了主题演讲。 &…

Java泛型简单的使用

前言 Java里面的泛型在实际开发中运用的很多,学过C的同学一定知道C的模板,而Java中的泛型,一定程度上和它还是挺像的。 相信写Java的人,大都有用过List的实现类ArrayList。在Java没有泛型之前,它的内部是一个Object的…

【大数据处理与可视化】五、数据聚合与分组运算

【大数据处理与可视化】五、数据聚合与分组运算 实验目的实验内容实验步骤一、案例——运动员信息的分组与聚合1、统计男篮、女篮运动员的平均年龄、身高、体重2、统计男篮运动员的平均年龄、身高、体重的极差值3、统计男篮运动员的体质指数 实验小结 实验目的 能够熟练运用gr…

安装卸载测试用例

安装测试用例 1. 启动安装程序 序号 01 功能描述 测试自动启动安装程序 用例目的 测试系统是否能够自动启动安装程序 测试类型 安装测试 前提条件 程序的安装文件已经存在安装盘,电脑安装了CD-ROM或其他光驱 测试方法与步骤 输入 插入系统的安装盘 …