计算机软件测试方法略谈
2020-07-14李忠
李 忠
(广州城建职业学院,广东 广州 510000)
1 研究意义
计算机软件在各行各业的应用,使得生产的效率得以大大提高,人们的生活质量也有了显著提升。与此同时,我们也要清醒地认识到,当前计算机软件的普及应用,人们的生活和工作已经对其形成了较强的依赖,一旦出现故障或设计缺陷,造成的影响将十分巨大,所以有必要对计算机软件开展测试工作,以确保其投入运用后的运行可靠性。
计算机软件测试技术在实践中能够有效减少软件出现故障的频率,而且通过实施合适的测试用例,软件设计开发中的一些隐性缺陷也能够及时得到发现,在此基础上对软件产品进行优化完善,就能极大地提升软件品质。
2 测试目的及流程
一般而言,计算机软件在设计开发中可能会受到各种内、外因素的影响,导致其存在一些隐性瑕疵和缺陷,如果不对其进行处理,则会对软件投入运用后的性能和可靠性产生不利影响。计算机软件测试就是检测这些瑕疵和缺陷的过程,对其效果进行评价的一个主要标志就是看能否发现未知的漏洞和错误。
计算机软件的测试流程按照逻辑次序可分为以下环节。
1)测试准备。就具体的测试对象进行相关资料的搜集和分析,开展测试需求分析,并依据对测试业务的估计成立测试团队。
2)设计测试用例。在需求分析的基础上,明确测试的标准和条件,并进一步完成测试用例的设计。此环节是计算机软件测试的核心,也是整个测试过程中难度系数较大的步骤。测试用例会包含数据输入和预期输出,如果被测对象在输入用例数据后的实际输出与预期输出间存在差异,就需要考虑可能存在漏洞和瑕疵,为后续的软件优化完善提供基础依据。
3)实施测试。该环节主要指实施测试用例,这同时也是测试的主要过程,占据了测试组的绝大部分时间。
4)测试总结。在测试工作结束后,需要对测试进行总结,并在此基础上编写测试报告,测试报告也是软件后续进行完善优化的重要基础依据。
5)测试验收和结果归档。待以上测试工作全部结束后,需要对测试的效果进行验收,验收合格后即可宣布测试结果有效并正式结束测试。同时,对于宣布有效的测试,还需要对其涉及到的技术标准文档进行归档处理。
3 测试方法
3.1 单元测试法
单元测试法是软件测试方法中的一种,它先对软件测试进行分块,然后针对不同的单元设计相应的测试方式。这种方法可以实现对计算机软件的详细检查,使得软件运行的质效得到有效保障。值得注意的是,采用该方法需要具备良好的计算机和软件技术基础,这是因为单元测试法需要对软件运行的每一个细节都进行检查,尽可能发现细微处的漏洞。如果对计算机系统和软件各个模块的功能以及原理不能准确掌握,那么在划分测试单元和设计单元测试方式时就难免存在疏漏,进而会影响到测试结果的可靠性。
3.2 集成测试法
集成测试法主要是指在单元测试结束后,对软件整体进行测试时用到的一种方法。它主要是对相关的接口进行检测,因为接口出错会影响到软件的正常运行,此方法一般需要通过大面积的元件检测来实现。通过集成测试,可以发现软件运行中的一些不足之处,然后再对其进行进一步的探究,使得软件的运行渐趋完善。集成测试时需要按照一定的次序开展,这可以使对软件的检测更加细致,很多细节问题尤其是接口问题也更易于被发现。
3.3 逻辑驱动测试法
所谓逻辑驱动测试法,也就是常说的白盒测试法,它主要是对软件的程序进行测试。在实践应用中,逻辑驱动测试就是对程序的运行路径进行测试,并在此基础上对软件进行系统性分析。采用该方法前,应该对软件的整体结构和运行功能进行系统的调研分析,然后再开展测试。
测试过程中主要是对软件程序的执行速率和相关路径信息进行获取,然后在这些获取信息数据的基础上对其进行系统性的整理和分析。值得注意的一点是,该方法主要是对软件代码的执行路径和速率进行测试,对软件程序的功能实现缺乏有效关注,所以在实践应用中还存在一些不足之处。比如软件程序如果不完整,那么采用逻辑驱动测试法一般难以找到原因;又比如软件数据出错,该方法也难以发现软件中存在的问题。因此,在采用该方法时,要求测试人员应该对软件程序的要求进行明确掌握,并在应用中辅助采用一些相关的技术手段,这样才能最大限度地确保软件测试结果的有效性。
3.4 黑盒测试法
现实中,计算机软件用户对软件内部的程序代码及其逻辑结构并不关注,用户更关注的是软件的各项功能是否能够实现。比如软件是否能够根据输入信息产生正确的输出结果。而黑盒测试法就是站在用户角度上的一种测试方法,它将整个计算机软件看作是一个黑盒,不关心其内部程序代码和逻辑结构,就是对各项功能能否正确使用进行检测,如图1所示。它在测试时将计算机软件进行功能模块划分,然后针对每一项功能,设计贴近用户需求的测试用例,并对实施测试用例的输出结果的正确性进行检测,进而实现对软件功能和相关界面的测试。黑盒测试的优点是使用简便而且贴近用户需求,缺点则是软件的外部特性设计漏洞无法进行有效检测。
图1 黑盒测试法的应用示意
以上介绍的计算机软件测试方法都有各自的特点和优势,它们都是伴随着软件技术的发展进步而不断被探索出来的。笔者相信,随着技术的进步,未来的计算机软件测试技术会不断发展完善,而且还会诞生出更多新的手段,测试方法的使用在越来越简便的同时,测试结果的有效性则会不断提高。
4 提升测试效果的措施
4.1 提高测试工作的介入效率
传统的计算机软件测试一般是在软件开发结束后进行的,而这增加了测试人员及时发现和掌握软件中存在风险的难度。因为没有及早发现软件中的瑕疵、漏洞和缺陷,使得软件产品的后续优化完善成本大大提升。为了解决这一问题,就需要提升软件测试工作的介入效率,这样有利于及时发现软件中的问题并加以改善。具体来说,可以采取以下措施。
1)软件开发与测试同步进行。软件的开发和测试都需要对软件用户的需求进行了解,然后站在用户需求的角度开展工作。因此,不妨将二者并行推进,以需求分析为基础,对软件开发的阶段性成果进行测试,然后基于测试结果提出专业性的评估报告,为开发过程中的调整完善提供依据。
2)迭代式测试。软件开发可以采用迭代式方式。先设计开发出一个初始版本,然后对其进行测试,依据测试评估结果对软件进行优化完善,实现软件版本的更新。随着以上过程的循环进行,开发软件的版本号会不断迭代,测试工作也会不断迭代,进而使得软件版本日趋完善。这种方式的好处是可以有效降低软件项目的风险和开发成本。
3)优化开发和测试模式。软件开发人员一般在阶段性工作结束后,会主动对其进行测试,而测试人员如果再对其进行测试就会造成工作重复,影响工作效率。此时不妨将测试工作分为开发员测试和系统性测试两个阶段,一方面可以使得测试工作实现及早介入,另一方面还可以避免工作重复,降低了测试成本。
4.2 应用自动化测试工具
人工测试不仅会耗费大量的人力资源,而且因为人为因素的干扰,还可能会影响测试的有效性。采用自动化测试工具对软件进行系统测试,能够避免人为失误的不利影响,而且还能提升测试效率,对后续的软件及时优化完善具有积极效果。