方蓓
中国电子科技集团公司第二十八研究所 江苏 南京210000
摘要:在计算机科学技术快速进步的今天,软件功能得到了全面拓展与增强,软件开发形式呈现出一种规模化和复杂化态势,同时也进一步提升了对软件可靠性的要求。为实现对软件质量和可靠性的有效保障,需强加对软件测试和软件可靠性的系统研究。鉴于此,文章主要从软件测试和软件可靠性两方面入手,展开深入分析与研究。
关键词:软件测试;软件可靠性
目前,计算机软件基本上已渗透至各行各业,其应用范围和规模的持续扩大,在一定程度上增加了软件设计复杂程度,软件开发错误和软件开发缺陷等时间发生频率越来越高。与此同时,随着社会生产生活对软件质量要求的逐步提升,若要从根本上实现软件产品的实际应用过程中的有效性,关键在于进一步提升软件质量和可靠性。而软件测试作为保证软件质量的重要手段之一,如何根据软件检测判断软件产品故障发生根源或隐患发生部位,遏制风险发生范围的扩大,加快构建软件研制相关技术保障体系成为现阶段各大软件开发系统重点关注话题,因此,本文围绕全面提升软件测试水准,提高软件可靠性进行深入研究。
1 软件测试是提高软件可靠性的重要保证
软件测试的主要目的是查询潜藏于程序中的错误程序,是一个系统性的任务执行过程。软件可靠性则值得是在规定运行时间内,相关软件产品依据规定条件成功运行的概率。通过对两项内容含义的理解不难看出,在保证软件可靠性过程中,软件测试从中发挥着不可或缺的作用。一般,只有完成相关测试后才可确保系统使用过程中的可靠性。而为了有效保障软件测试的整体效率,需保证测试用例的科学性与合理性,并且还需严格遵照软件生存周期开展软件产品的开发。具体软件测试可以分为两个阶段,前期阶段可为后期阶段任务的完成提供科学的参考和依据,而后期阶段相关任务的完成需要在前期阶段的基础上进行优化和完善,并且在完成上述两个阶段前,需对相关技术和管理内容进行严格的审查,在审查过程中需要确保前期阶段和后期阶段相关文档资料与所开发软件文档资料高度一致,进而在完成软件开发工作后,确保所交付使用软件配置的完整性与准确性,实现对软件可靠性的全面提升。
2 软件测试的生存周期
大量实践表明,在软件开发过程中相关软件开发人员尝试使用了各种方法和技术,以保证软件质量,但尽管如此所开发软件仍隐藏着各种错误与缺陷。因此,在软件可靠性和质量改善和提升过程中,严格的软件测试从中发挥十分重要的作用。在软件生存周期中软件测试占据核心地位。一般情况下,当完成一个软件模块后需要进行单元测试,为当完成全部模块的编码后,还需要以综合性手段完成对软件的系统测试。这一过程极具独立性被称为软件测试阶段。而在实际软件测试阶段,又可划分为两种不同性质的测试,一是开发单位的内部系统测试和集成测试,二是开发单位与系统用户的验收性测试。此外,在软件测试过程中,不同阶段开发者都有可能带入某些错误,在进行错误时又会引发新的错误。因而,当在软件测试过程中一旦发现错误需及时进行修改,并尽快完成修改后的反复测试,进而达到预定测试目标。
3 测试及评测的主要方法
3.1 测试方法
从测试方法的研究目的角度来看,运用极少的测试用例集开展更多程序中潜在错误或缺陷的测试。目前,在实际测试过程中主要根据是否在实际环境中应用进行划分,详细划分内容包括两部分,一部分是动态测试,另一部分为静态分析。而从测试方法来看则可细分为测试程序法和分析方法。无论采用上述何种发昂发,以较少的测试数据完成程序中错误和缺陷的测试是其主要目的。此外,在软件测试过程中除上述内容外,还需将以下几种因素纳入考虑范围之内:在对软件程序和产品进行测试过程中,难以有效确定测试的可靠性与否。在相关控制系统以及类似软件中,对其中所存在的控制不到位、时间控制不精确等故障信息可进行详细说明。而在常规应用系统中,除了需要考虑程序是否与相关规格与要求相符,还取决于其性能能否按照客户实际要求,但对于要求是否达成尚无十分清晰明确得到标准。对于可问题的解决可以分为两个测试阶段,第一阶段,运用少量测试用例进行全面仔细的检查,第二阶段运用大量测试用例,主要集中筛查各种故障,如系统崩溃、死机、断电以及错误信息等。如果软件有足够的可测试性,使用该法会检测出更多的错误。
3.2 测评方法
(1)覆盖测评
覆盖测评是一种以需求和代码为基础进行覆盖完成程度的测试形式,
基于需求的测试覆盖具体计算公式如下:
测试覆盖的比率=T(p,e,s)/RfT*100%
式中,
T——测试过程或测试用例的测试数;
ReT——测试需求的综述;
Tp /ReT——已计划的测试数占测试需求总数的比率;
Te /Re——已执行的测试数占测试需求总是的比率;
Ts /ReT——已完全成功没有缺陷的测试数占测试需求总数的比率。
基于代码的测试覆盖具体计算公式如下:
测试覆盖的比率=Tc/N*100%
Tc——已经执行的项目书,如,程序语句、程序分支、代码路径等;
N——程序代码中的项目总数。
通过对公式的有效运用,不但可实现对已执行的被测程序代码占代码总量比率的计算,且可以通过计算掌握剩余代码。
(2)质量测评
所谓质量测评主要是系统的各项性能以及实际应用过程中的稳定性与可靠性,本文对于质量的测评主要分为两种:
一方面,软件缺陷对软件质量的影响测试覆盖的评估时对测试完全程度的测评,对于有着较高可靠性要求的系统而言,需反复测试才能完成对其可靠性的有效预计,但尽管如此仍可能“零缺陷”和“零错误 ”现象。一般情况下,面对“零缺陷”情况很难实现对软件系统可靠性的预计,也不能错误的认定程序的可靠性为1.0。只有在确保完成所有测试的情况下才可进行预估,否则完全测试对于一般软件而言实现的可能性较低。
另一方面,在对软件质量进行测评过程中,需要考虑功能性、效率性、可靠性、可维护性、可移植性、可维护性以及易使用性六大要素的考虑。
4 软件可靠性的检测方法
①用户和密码的封闭性。软件在用户名和密码输入过程中是否设置校验环节,保护措施是否全面;②用户权限限制。在划分功能模式快时,软件是否将用户权限纳入考虑范围,是否依据相关标准划分权限,超级用户对各用户的权限管理是否有效;③错误提示的准确性。如果用户操作不当或者软件发生错误时,用户能否收到准确有效的错误提示,或者明确错误根源;④屏蔽用户操作错误。考察对用户可否有效避免日期录入错误或日期写入无效等误操作的提示和屏蔽情况;⑤ 错误是否导致系统异常退出;⑥数据备份与恢复手段。对于使用数据库的软件应提供备份与恢复的操作,不需要用户直接对数据库系统进行操作。
结束语
综上所述,软件测试是保障软件可靠性的主要途径,尽管当前所采用软件测试和软件测评方法,尚无法达到保证可靠性达到1.0,但基本上可以满足高标准的软件可靠性要求,从某种程度上有利于软件系统可靠性与安全性的双重提升。
参考文献:
[1]杨星.嵌入式应用软件可靠性自动测试方法研究[J].太原学院学报(自然科学版),2020,38(02):65-70.
[2]马振宇,张威,吴纬,王建平,刘福胜.软件可靠性验证测试研究方法综述[J].兵器装备工程学报,2019,40(07):118-123.
[3]潘正辉.软件测试中可靠性模型的设计[J].电子技术与软件工程,2018,01(04):34-35.
[4]王伟军,姜毅,刘蕤,Kari Smolander.云计算环境下软件测试研究进展[J].现代图书情报技术,2018,011(11):203-209.
[5]凌嘉丽 马沐春. 信息系统自动化软件测试方法探析.指挥信息系统与技术 2010.1(6)6-9.
[6]汤扣林 徐大勇 许锐锋. 指挥信息系统软件可靠性设计. 指挥信息系统与技术 2013.4(5)89-94 .