您现在的位置:首页 > IT资讯 > 如何通过软件测试提高软件的安全性?

如何通过软件测试提高软件的安全性?

2022-1-10 15:07:02 | 来源:中培教育


软件测试是验证软件安全性与功能性的重要手段,它一般采用的测试技术和测试方法也关系着测试结果的准确、后续软件的变更以及是否有效等问题。现如今在软件测试中投入的比重非常大,但是仍然有很多测试人员在面对不同的软件测试对象,众多软件测试方法,对我们手中的项目到底该采取怎样的测试手段并不明了。下面详细的介绍软件测试。


一、软件测试安全性分析——保证软件安全性

软件测试作为验证软件功能性和安全性的重要手段,其采用的测试方法和测试技术也完全关系着测试结果的准确性,关系着后续软件的变更和测试的有效性。软件测试安全性分析既包括事前分析,又包括对测试结果的评价,所以一般从不同角度进行按步骤的测试:分析测试集中的所有测试用例,测试是否通过测试准则。测试代码是否按照要求分析,并达到相应的测试覆盖率。测试覆盖是指检查代码的每一个状态和路径。对测试结果进行分析,以验证所有的安全性需求是否得到了满足。合理的软件测试手段的应用对于提高软件安全性是有很大的促进作用的,关于如何运用软件测试来验证软件安全性是否达到目标,我们将在下文详细探讨。软件测试已渐渐占据软件开发40%以上的时间,由此可见软件测试的重要性。


二、软件变更安全性分析——应对可能出现的软件变更

在执行任何软件变更之前,应建立软件变更规程。软件变更安全性分析一般根据变更的原因、变更影响、变更可能会导致的结果将这项任务安排为三个阶段,如果必须进行软件变更,则因该对已经受控的规格说明、需求、设计、编码、计划、规程、系统、环境、用户文档的任何变更都进行安全性分析。



三、运用软件测试提高软件安全性

开发工作中的每一个环节都可能出现问题,那些没发现或已“放大”的错误修复成本都是非常高的。所以,测试这种专门针对软件错误的技术渐渐被人们重视,它已成为保证软件安全性的一项重要手段,据美国一家公司的统计表明,在查找出的软件错误当中,属于需求分析和软件设计的错误约占64%,属于程序编写和其他原因的错误占36%,由于一部分错误很可能因为复审过程中没有被发现而转入下一个阶段,导致在错误的基础上产生了更多的错误,形成错误的“放大效应”。现今,测试投入也在整个开发投入中占了很大比重。当然,就算对一个不算太大的项目而言,要想实现“完全测试”也是不太可能完成的,所以,对每一个层次的测试而言,要做的工作都是做好测试计划,了解现阶段的测试目标,努力提高我们的软件安全性。总的来说,测试经过有计划的安排才有意义,开始于模块层的功能验证,并跟随软件的抽象和整体性最终到了系统验证的阶段。


对于没有在软件需求书上标明的可能影响系统运行安全的隐性需求我们也要努力的发现。除了被动发现系统已遭受破坏的隐患和原因,在主动发现方面,我们最基本和最主要的是要采取静态分析技术和功能测试两种方式拦截系统开发时存在的漏洞。针对软件安全性的测试方法就是采用各种方法来验证或发现系统安全方面的问题。对于软件需求说明书上既定的有关安全的功能需求,我们要一一进行验证测试。

静态分析技术:其基本特征是不执行被测试软件,而对需求分析说明书、软件设计说明书、源程序作结构检查、流图分析等找出软件错误。这里,需求和设计追溯和确认是验证测试的前提,我们可以利用一些自动化工具,画出功能需求的相关关系图,以及一些系统结构的UML图,能够使测试人员与开发人员保持一致的设计思路。源程序的结构检查和流图分析一般是测试人员代码审查时的重要工作,对于查出前期的软件错误非常有效,现在很多开发单位都采用自动化测试,取代了冗长的代码审查会议,提升了测试的效率和准确度。比较著名的工具有英国PRQA公司的产品,它对检查一些代码逻辑错误、无法执行到的代码段和违反通用编程规范的行为非常有效。



四、软件安全性分析的前景

功能测试:功能测试是动态测试的一种方式,验证的是软件的功能实现。软件安全性测试是要将软件测试人员放置在一个相对主动的位置上,能够尽力避免被动发现系统漏洞。比如在网络信息系统进行自身安全建设时,我们会在软件设计和开发过程中,增加一些必要的安全防护措施,如权限管理模块、数据恢复功能等等,我们就会通过功能验证来检查我们是否达到了没有安全疏漏的要求。

将风险降低是提高系统安全性的最重要和最积极的方法,从研发的开始阶段到项目最终评估受审阶段,始终以安全完整性为目标,使系统满足必须实现的功能达到或维持安全状态所必需的安全功能。

标签: 软件测试

近期开班