最近Parasoft作过一个关于测试工具尤为是静态分析技术的调查报告,收集你们对于测试工具的使用印象和技术总结。其中有一个经验丰富的资深软件工程师Brian,他在静态分析工具上很有经验,但他反馈的结果是这些工具报告的不少问题老是相似“编译器警告”,并不是绝对的潜在漏洞(bug)或软件缺陷。深刻沟通交流后发现,他的这些印象最主要的缘由是由于他所采用的测试工具大部分是免费软件,并且所接受的相关培训不少时候仅限于网络论坛,这样带来的结果必然是测试工具并不能实际解决问题,反而用于学习工具的时间超过了实际解决问题的时间,这有些本末倒置了。html
因此,测试工具的要求(尤为是静态分析技术)除了一般你们所知的自动化属性,其实还须要更多考量测试报告结果的度量性和有效性,以用户角度去帮助客户快速应用先进测试技术并解决代码问题。众所周知,嵌入式行业的软件复杂性高,设计的平台丰富,各类不一样的芯片和架构,纷繁的编译器种类等等。这必然要求一个成熟的开发测试平台体系,以及专业的技术支持服务,尤为是对于嵌入式行业。安全
各大嵌入式行业如医疗、汽车、铁路、航空航天等的软件开发者天天均可能会遇到校验软件问题(bug)的有效性挑战,接受从客户、技术支持团队及质量测试部门的反馈结果并及时调查给予响应。对于开发人员来讲,有时候昨天已经作过的修复工做都有可能产生新的软件问题从而加大工做任务。网络
因此软件问题的结果验证是一个值得很是关注的问题,须要可以有效并快速地区分各类性质的问题,对不一样的问题进行自动优先级排序,将重心放在有价值的问题上,快速高效地推动问题的解决。若是这只是一个低等级的警告问题,它不是一个错误或潜在bug,并不值得浪费太多时间或优先处理。架构
目前的状况是,许多开发测试工具没法用一个简洁方便的方式帮助用户定位真正有价值的问题。因此,这里对于一个成熟的静态分析测试工具基本提出了如下关键技术属性需求点:工具
针对Java、C/C++、.Net等主流语言的软件产品开发, Parasoft公司提供了一个企业级的开发测试解决方案。除了全方位的静态代码分析能力如模式匹配分析、数据流分析和度量分析等,该开发测试平台还具有良好的扩展性,包括了单元测试,集成测试,运行时错误检测,代码审查,覆盖率分析等功能,能够自动化生成测试用例,执行单元测试的同时提供多种视角的覆盖率分析,提供图形化报表系统,是一个完善的方案级平台,全方位落实自动化缺陷预防政策,保障客户产品质量的同时提升软件产品交付速度。单元测试
不少免费测试工具或不成熟的测试产品有时会报告超过20000个任务给到具体的一个开发人员,这实际上是缺少必定的测试规控,没有人可以一天处理这么多的事情。一个成熟的开发测试策略将根据任务的严重性和风险划分优先等级。此外,它将根据整个团队的工做负载进行工做分配并利用我的优点区别划分测试任务。学习
Parasoft某医疗行业软件客户:“当我和个人新朋友肯定,他认为天天修复5个静态分析的违反规则是没有问题的。若是他有一个十人的团队,每一个人天天修复5个静态分析违反规则,而后他须要大约400天才能看到优美的代码。”测试
让咱们再进一步。不是全部的静态分析行为都是平等的。若是咱们将最高等级的风险、最严峻的问题提早尝试解决,那么软件的质量、安全性、可靠性将被在1-2个月内梳理的很是合理。而每一个问题都仅须要分配几乎忽略不计的5分钟,这将比以前不少所经历的发布周期耗时更短更高效。spa
更棒的是,一个成熟的开发测试平台将自动管理静态分析任务的优先级和分配给不一样的负责人。做为管理者,在一开始就设置一些团队测试政策,这些政策将确保团队里的每个成员天天都获得适量的最高优先级的任务,从而实现快速高效的团队工做流程。设计
本文来自(parasoft中文网)
活动时间:11月1日-11月30日