基于软件测试的缺陷分析及度量方法

(整期优先)网络出版时间:2021-11-05
/ 2


基于软件测试的缺陷分析及度量方法

王颖

航天信息股份有限公司 北京市 100000

摘要:随着用户需求的不断增加,许多软件产品被开发出来。为了满足用户的需求,在源代码中添加了许多新的接口和类。然而,软件维护和代码重构的任务非常复杂。因此,在源代码中找到缺陷并纠正这些缺陷是很重要的。挑战在于开发工具和技术来自动提取错误信息。最近,计算机科学家致力于使用静态分析技术从源代码中发现缺陷。静态分析,也称为静态代码分析,是一种通过检查代码而不执行程序来完成计算机程序调试的方法。通常,静态分析用于检查源代码文件是否存在问题和不一致。

关键词:软件缺陷数据;软件测试;缺陷分类;分析方法

引言

目前,软件测试是一种检验软件产品或阶段性工作成果的手段,通过它可以验证软件是否符合事先的需求定义、设计要求以及代码规范等。不管测试的定义如何,它都只能证明软件存在缺陷,不能证明软件不存在缺陷。测试与质量密不可分,我国的软件质量标准体系以GB/T25000系列为主,根据现代系统论的思想,结合国际标准相关经验和国内实践情况,将标准体系分为测试过程管理、测试技术、测试工具以及测试文档4个方面。软件测试人员需要结合软件的具体特点选择测试方法和类型,选择的结果应该在软件测试计划中予以明确,并通过测评项目组评审认可。

1软件测试技术概述

软件测试是指通过人工或自动的方式对软件系统进行运行或检测,根据所得的数据来判断并验证其是否满足相关的标准,同时对其偏差进行评价,并进行改进的过程。软件测试的概念包含了以下几点核心内涵:第一,软件测试的方式包含人工测试和自动化测试;第二,软件测试的主要内容就是通过测试数据来验证产品是否满足设计指标或用户需求;第三,软件测试的最终目标是要发现软件缺陷,并对其进行完善,提高软件质量。可见,软件测试是防止软件缺陷流入使用环节的重要手段,在软件工程中发挥着极为关键的作用。

2软件测试的缺陷分析及度量方法

2.1缺陷检测方法

缺陷检测的改良可以通过更精准的对缺陷进行分类,并且依据用户反馈进行调整改良。可以通过如下步骤完成一种新的缺陷检测方法。步骤一、利用静态数据分析工具提取分析过程下源代码中的.数据信息,步骤二、用静态分析工具进行代码分析树的构造过程,并且通过设置的语法规则来构造代码分析树的每个节点,利用代码分析树描述源代码的逻辑结构,采用4C模型检索出源代码中数据的缺陷,步骤三、利用Taxonomy分类方法对缺陷进行分类,步骤四、开发人员对分类后的缺陷进行正误判断并进行反馈。所述方法可以提高缺陷发现的准确度,开发人员以及测试人员可以较容易地发现这些软件缺陷。缺陷检测也可以根据匹配缺陷模式对静态缺陷进行分析。缺陷模式一般是指程序中所表现对特定规律或经常发生对错误,这些模式一般是由具有经验对测试人员总结而成。基于缺陷模式的静态分析方法简单来说,就是根据不同的代码缺陷,经过观察,总结并抽象出特定的缺陷模式,再通过具体分析将其实现。缺陷检测也可以根据源文件可疑度进行。通过模糊信息特征,运用聚类分析方法进行,静态软件缺陷特征分析。通过以下方式进行检测。首先,通过软件缺陷模糊度特征量,运用频域变换方法,从而建立软件缺陷的融合调度模型。然后,通过静态软件源文件可疑度和输出特征量,运用可疑度特征分析算法,对静态软件缺陷检测进行自适应寻优。

2.2规范软件的开发过程

软件开发是软件测试的上游环节,规范的软件开发可以为后期的软件测试带来极大的便利,尤其是对于白盒测试和代码检查等方式,规范的开发更是直接决定了软件测试的效率和质量。因此,必须对软件开发过程进行严格管控,无论是代码编写还是流程设计,都应进行合理的控制干预。例如,全面推行ISO9000国际质量管理标准体系,引进CMMI软件能力成熟度模型集成,以国际标准为软件开发准则,全面提高软件质量。

2.3排列图

排列图数据根据内容、原因进行分层,按其发生状况由大道小的顺序用直方表示的图,是发现、选择问题,确认改进效果的有效方法。软件测试活动不是针对同一个软件重复测试的活动,也就是采集的软件缺陷数据均来自于不同的软件产品。这里可对相似软件缺陷在同类软件产品中出现的概率进行整理分析,以观察相似软件产品易出现哪类软件缺陷,为软件测试组提供参考,此类软件中软件与数据库数据不同步情况出现频繁,在软件测试策划及用例设计中将侧重验证该项功能。

2.4软件测试策略研究

软件单元测试主要是内部测试人员采用测试工具软件,在模拟搭建的测试环境中进行白盒测试,其特点为主程序是改造的,运行的是被测程序模块。在集成测试中,由内部测试人员运行被测相关程序模块,主程序也是改造的。在配置项测试中,由独立测试小组对真实的软件进行黑盒测试,程序没有经过任何改造,但可以模拟外围环境。而在系统级测试和验收测试中,软件是真实的,外围环境也是真实的,一般由独立测试机构使用经过校准的设备和仪器仪表来开展黑盒测试。测试过程中,测试人员依据软件的设计文档编写测试计划和测试说明,设计测试用例。针对文档要求的软件功能、性能以及接口等指标,执行测试用例,记录用例执行结果,分析测试数据,评估其是否满足设计的要求,对发现的问题进行分类总结,最终形成测试报告。报告中会对发现的软件问题进行具体描述和分类,包括软件的千行代码缺陷率和重要度等级分类的统计,这些数据会为软件质量的评估和持续改进提供重要的数据支撑。通过不断积累,定期分析和总结软件测试中发现的问题,并发布软件质量的评估报告,将一段时期内搜集的所有软件问题进行不同角度的分类统计。例如,文档问题和程序问题的对比分析、重要问题和一般问题的对比分析以及软件的千行代码缺陷率的对比分析,这些对比分析的数据有助于软件的设计人员和编码人员逐步提高其业务水平,从而提高软件质量。

3未来软件测试的发展趋势

随着软件行业的迅速发展,在当前的时代背景下,越来越多的软件在规模和复杂程度上都有了极大的提升。因此,软件的优化和维护也会愈加困难,同时,这也表明软件测试愈发上升的重要性。软件测试旨在发现缺陷减少缺陷带来的影响。未来,对于算法更多的研究将会进一步发展更多缺陷检测工具,更高效地实现缺陷检测,同时,将会有更多的相关联知识被运用于缺陷检测中,包括数据挖掘、复杂网络、机器视觉等各类领域与软件测试相结合,实现缺陷的精准定位和预测,促进软件工程更好的发展。

结语

随着信息技术的不断发展,软件行业的竞争呈现出前所未有的激烈状态,软件企业只有高度重视软件测试工作,采用先进的软件测试技术,才能保证软件产品的质量,打造企业品牌,提高产品的影响力,从而保持核心竞争力。不难预测,在未来的软件行业里,新的软件测试技术将层出不穷,人工智能和自动化测试的应用将更加广泛,软件企业只有关于抓住机遇,才能将软件测试工作上升到一个更高的层次。

参考文献

[1]杨丰玉,徐浩明,郑巍,等.嵌入式软件测试研究综述[J].航空计算技术,2021,51(1):112-115.

[2]钱杨.对计算机软件测试技术的几点探讨[J].电子测试,2021(3):91-92.

[3]陈龙生.Web服务软件测试技术的实现探讨[J].科技与创新,2017(18):102.

[4]王倩,唐兰文,赵明芝.敏捷测试在软件项目中的研究与应用[J].科技经济导刊,2021,29(1):31-32.

[5]许弋慧.嵌入式计算机软件测试关键技术研究[J].电脑编程技巧与维护,2021(1):43-44.