浅谈如何实现高效能的软件测试

2022-04-20 04:03陈佳丽
科教创新与实践 2022年6期
关键词:软件测试提升方法效率

陈佳丽

摘要:软件测试是软件开发过程中不可缺少的一部分,是保证软件质量的关键。文中从需求不明确、提测质量差、部署环境等几个阻碍测试进度的因素开始着手分析,不仅仅是阐述目前存在的问题与不足,也根据目前的项目实践提出优化方法来提高软件测试效率,同时介绍通过合理的测试工具,规范的测试行为等来实现高效能的软件测试。

关键词:软件测试;效率;提升方法;测试环节

随着软件行业的高速发展、软件复杂度的增加和规模的日益扩大,软件的功能也从开始阶段的单一化和简单化发展为越来越复杂,软件规模和复杂度的增加导致了软件质量的下降,软件质量的下降导致了软件危机。软件测试是提高软件质量的有效途径,很多企业在软件测试工作中投入的人力、物力、财力逐渐加大,国外有些软件公司的测试人员和开发人员的比例甚至达到1:1或2:1的程度,因此必要分析研究如何提高软件测试效率。结合实际的项目工程开发我们大致从以下几个方面来分析研究提高软件测试效率的方法。

首先需求不明确在测试过程中阻碍测试进度所占据的比例是最大的。软件需求的不确定性是客观存在且不可避免的,对于一个开发软件来说,软件规模越大,研制周期越长,需求的不确定性就越大。原因主要在于:用户的需求随着开发进程的推进,用户对原来模糊的或非明示的需求有了新的认识,随时会提出需求的变更;用户需求的获取过程与描述形式往往采用不专业的自然语言,再加上开发人员的领域知识的局限性,往往会引发对需求的误解。如果在测试过程中忽视验证用户实际需求的正确性,不考虑需求分析的结果是否合理,一味追求与需求规格说明书的一致性, 这可能导致本来可以提前发现而避免的错误,在后续过程中要花费大量的资源与时间来改正,甚至出现因需求分析错误导致的项目返工现象。很多的软件测试工作开始于软件工程的最后阶段, 一般都在编码之后,这样会导致排错的难度大大增加,测试人员应该在软件开发的需求分析阶段就参与验证用户需求来尽早地发现和需求相关的缺陷,避免在项目结束阶段修复问题所浪费大量的资源与时间,从而提高软件测试效率。

其次是提测质量差。在软件测试过程中开发提测速度很快,导致项目排队,结果介入测试时,第一条用例都跑不通;开发提测后反复修改,反复提测,反复重复验证,项目后期通过压缩测试时间来保证项目进度;开发时自测通过承诺这次肯定没问题,结果测试数据稍一变通就跑不通过的情况比比皆是。这时候,冒烟测试的工作就显得尤为重要。从开始到交付,软件测试的过程,主要包括单元测试、集成测试、功能测试、系统测试、验收测试。冒烟测试可能是被很多软件测试忽略的一个过程,简单讲,冒烟测试是指在对一个新版进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测试性。开展冒烟测试工作有助于尽早发现软件代码存在的问题,提高软件代码的质量和开发效率。在一些自动化落实程度比较高的项目中,如果已经有主要用例完成了自动化用例覆盖,完全可以把自动化执行接入到提测流程中,提测前必须过自动化用例检查,一方面可以节省开发准备环境的时间,另一方面开发对用例的关注程度也可以减弱,所有的结果和问题都可以在自动化用例实现上进行完善。

然后部署环境在阻碍测试进度中也占了一定的比例。一般来说从开发者使用脚手架创建初始项目,在本地搭建开发服务器进行项目开发,编码完成后,经过构建生成目标环境可用的代码,到此阶段的所有工作都属于开发环节。而部署就是在开发结束后,使得软件在某一环境中运行起来,这个过程中会将源代码生成可运行的软件包,然后将软件包放到要部署的环境中,通过一些配置使得这个软件包在目标环境上也能够正常工作。对于传统的手动部署,项目新增加一个功能,就需要把本地更新-构建-发布这一套流程走一遍,看似简单,但是一旦项目多,部署频繁,传统手动部署的效率就会十分低下,同时还会存在人为的误操作性,而且这个过程既不可重复也不可靠,需要很多的时间进行调试和排错(需要额外的时间),无法保证流程的每一个环节都被严格执行了,相较之下自动化部署错误概率很低 (会出错),能更好配合项目进行平台版本迭代和更新,使软件能够持续集成,提高运维部署效率。自动应用部署也改进了软件的总体质量。在整个生命周期(包括部署在内)都使用好的工具,能够把人的干预最小化;能够节省必须等待某人做某事的时间。一旦把人的干预去掉,质量就更加可预测,会变得更好。

结合目前的软件测试项目实践我们可以发现通过手动测试和自动化测试的结合可以很好的提高测试的效率。目前,随着自动化的发展,软件测试的速度和效率大大提高,但它不能涵盖设计、用户体验和可用性等各个方面。在软件开发过程中,自动测试和手动测试的之间平衡是QA测试的未来。QA团队检测错误的速度越快,纠错所需的时间就越少,因此,在测试资源上花钱比在发布后在错误上花钱更有价值。且在整个测试过程中,每一种技术、分支、情况、路线和选择都经过了良好的测试,以便在初始就能发现故障。如果在一开始就发现了漏洞,那么就能让修复它的费用最小化。自动化测试具有一致性和快速的优点;然而,它并未站在用户立场上。而这就是手動测试的优势所在,自动化测试只能依照为其编写的脚本工作,而手工测试只能做到像QA工程师的完成度。结合这两种测试可以在可用性、功能、速度、漏洞最小化和整体最优的用户体验之间取得和谐的平衡。

最后在整个测试过程中应该规范软件配置管理,通过管理及技术手段,对软件和文档版本进行控制,保障软件测试的有效性,重视并规范技术文档的编写,技术文档不仅是开发人员进行信息交流的手段,也是测试人员进行测试的依据。所以软件相关文档应描述明确详细,组织合理,并根据需求和设计的变更及时更新。同时为了给独立测试人员提供更多的信息,在技术文档中可增加各软件模块的重要程度、重用性及测试历史等信息,使得独立测试人员可以合理分配精力,对重要软件进行重点测试,减少不必要的重复劳动,提高测试效率。

猜你喜欢
软件测试提升方法效率
软件测试方向人才培养“1+X”融合研究
“慢”过程 “高”效率
大数据背景下软件测试技术的发展
选用合适的方法,提升解答选择题的效率
聚焦立体几何命题 提高高考备考效率
关于 Web 应用系统的软件测试的研究
小学语文习作教学中生生互评能力的提升方法
浅谈初中音乐教学质量的提升
保定市高校文化对城市文化的影响及提升方法研究
如何提升幼儿区域活动的参与度