以下为《代码静态分析单元测试》的无排版文字预览,完整格式请下载
下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。
*什么是代码静态分析?
代码静态分析是指在不运行应用程序的情况下,对软件的源代码的语义、结构和行为进行分析,由此找出程序中的不规范、不合理的或者可能造成程序运行异常的代码。最为人所熟知的代码静态分析手段就是“人工代码走查”,随着人工代码审查的日益复杂化和工作量的增加,自动化的代码静态分析技术随之得以迅速发展。时至今日,绝大部分的代码静态分析都已经可以由专业的代码静态分析工具所完成。
那么代码静态分析到底可以为我们的软件解决什么问题呢?
??????编码规范检查。最常用的代码静态分析手段。***自定义的统一编码规范,或者是特定行业通用的编码规范,检查软件代码中不合规的写法,以保证代码的统一风格,尽早预防可能造成软件质量风险的各种不合理代码的出现。编码规则可以规范编码格式、命名规范、内存和资源管理、宏定义、危险代码等软件代码编写的各个方面。
??????软件质量缺陷检测。更高级和深度的代码静态分析技术。检测软件代码中隐藏的会导致运行时异常或安全性的代码缺陷,如空指针、越界、除零、死锁、安全漏洞等,实现快速查找并及时修复软件错误。对比于编码规范检查,软件质量缺陷检测要求对代码进行更深度的解析和扫描,以定位真正的代码缺陷,除了找出问题点,往往还需要定位相关的代码逻辑路径。有别于编码规范违规代码,软件缺陷检查出的结果不只是可能造成代码质量风险,而是它们本身就是质量问题,所以对于研发团 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 系所做的测试和验证。比如对C/C++代码中的一个函数、类或是少数函数组成的一个集合,抑或是一个小的功能模块的测试,通常都可以归为单元测试的范畴。?
单元测试通过为被测单元设计输入参数,并验证其执行后的输出值、关联值或执行过程来验证被测对象的坚固性(鲁棒性)和正确性。坚固性取决于被测单元在各种类型或极端输入条件下运行正常与否;正确性则是通过判定代码的运行逻辑是否符合原本的设计需求来验证。单元测试的效果依赖于测试用例,也就是外部输入参数是否合理、充分,而这些输入参数主要需要测试人员根据被测单元的业务逻辑需求来设计,所以并不存在万能的“银子弹”代替所有单元测试的工作。
*为什么要做单元测试
因为传统的系统功能测试(又称“黑盒测试”),由于系统集成后的复杂性,在有限的时间内无法充分地对软件内部的分支、模块及模块之间的错误进行检测,并且由于系统测试阶段的bug所需的修复成本往往较高,所以对于要求高可靠性和安全性的系统,软件的测试需要“左移”到项目研发的更早期,对底层的代码行、函数、类、子模块进行验证,以实现对软件更早、更彻底地测试。另外,由于早期bug的修复相对容易,项目整体研发成本也得以降低 – 这也就是单元测试初衷。
换言之,单元测试的目的就是为了在系统集成之前根据下层需求测试函数或子模块的bug,以减轻后期系统集成测试的压力,最终实现对软件更彻底地测试,提高质量并降低成本。
[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]
以上为《代码静态分析单元测试》的无排版文字预览,完整格式请下载
下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。