摘要:文章主要是分析了国内外对软件测试的研究现状,在此基础上讲解了软件自动化测试的概念和优势,望可以为有关人员提供到一定的参考和帮助。
关键字:软件自动化;测试技术;工具设计
1、前言
软件测试是能够有效保障到软件质量的一个手段,在设计的过程中可以应用到软件测试进行测试,及时发展其中存在的问题且进行相应的改进,同时其可以有效的降低到在维护测试过程中所投入的花费,有着十分重要的作用。
2、国内外研究现状
当前我国软件测试发展迅速,其已经成为可以一门独立的学科,其中的内容较为广泛,包括了以下几点:测试技术、软件测试和测试管理。软件测试策略/过程中主要是包括了集成测试、单元测试以及软件测试等,确认测试。现在提出了一些新的思路和模型,例如软件测试过程的博弈模型。通过分析软件测试的动态过程和各种影响因素之间的关系,该模型不仅可以给出更严格的软件测试过程描述,同时也考虑到测试过程中各方的积极政策选择。除了传统的白盒测试和黑盒测试技术外,还有一些新方法,如失败的软件测试方法、面向对象的软件测试技术、基于客户使用产品的知识开发的alac测试方法、自动化测试技术和自动化测试工具。当前自动化测试技术的发展,自动化测试工具得到了广泛的研究,商业化的工具越来越多。许多国内科学研究机构和企业也从事该领域的工具的研究和开发,如Qesuite。软件测试过程管理工具是北京大学航空航天软件工程研究所开发的软件测试过程管理工具,北京京桥软件科技有限公司此外,还有一些特殊的测试工具,如测试字节和数据库测试的ecview,可优化应用程序性能。虽然许多自动测试工具功能强大,但大多数工具无法完成自动生成有效测试数据的步骤,这也是自动测试技术中的一个不成熟的问题。近十年来,国内外学者对这一问题进行了深入研究,提出了许多解决方案,其中主要是包括了随机技术、路径导向技术、目标导向技术、功能导向技术和智能化技术。其测试用例已成为许多软件测试人员的学习教程。它的日常建筑和烟雾测试方法已被许多公司采用。
3、软件自动化测试的概念
3.1、含义
软件自动化测试是一种软件工具而不是手工测试操作,能够验证其是否可以满足到实际的需求,软件自动化测试的目的是为可以减少到手动测试的工作量,然后实现资源的最大化,通常使用脚本或其他代码驱动程序应用程序,所有这些都可以通过完成Visual User界面或通过Direct命令(从客户端到服务器来模仿命令浏览器)来完成。按照其机制,软件自动测试技术可分为侵入性和非侵入性这两种类型。侵入式测试技术以某种方式修改内部代码或控制其运行环境,而非侵入性测试技术用于监控和检查软件而不修改软件的内部结构或代码。测试脚本是以特定语言编写的代码,并在特定的系统环境中实现。手动编辑测试脚本主要是使用到了特定的编程语言编写一系列代码,可以在特定的环境和平台下运行,最终才能够实现自动测试。测试工具用于使用面向对象的软件反向工程自动生成测试脚本技术。此方法主要用于单元测试自动化技术。对于在OO模式下设计的目标应用程序,单元是程序中的每个类,提供测试单元的源代码,在代码单元中手动选择要测试的方法,并生成一个或多个测试脚本。录制/播放脚本技术属于大多数GUI自动化测试工具使用的主流测试自动化技术。在已建应用中,测试的设计和开发过程复杂而艰巨。如果不尽快启动,测试就不完美,或者将长期测试和纠错计划引入开发计划,这将违反迭代开发的初衷。根据软件系统的功能要求,可以制定出特定方案和软件测试过程。
3.2、选择
自动化测试技术可以自动化更复杂的测试工作,然后有效的降低到了工作人员的测试工作量,且在一定程度上提高到整体测试的工作效率和降低到某些测试的开销,所以应当要在企业信息系统工程环境中选择相对合理的自动化测试工具。在实际开发成本,自动化测试工具主要分为商业和自我控制测试工具。测试方法中有更多的类别,主要分为白盒式测试工具和黑匣子测试工具,主要可以分为高板试验工具和自制测试工具这两种。开源软件是开源测试工具中重要的部分,但开源软件不是免费的,为此在应用过程中有必要考虑实际的使用成本。开源测试工具和商业测试之间存在一定的差异。在实际引入开源测试时,应该注重成本和可选性。优势主要表现为成本低,并且可以自行开发。此外还可以修改功能或添加一些新功能,更好地满足自己的实际需要。在一些项目中还可以使用自己的开发语言,更好地利用自己的优势,应该考虑测试工具在实践中的实用性。一般来说,没有必要制作更全面的工具。
3.3、优势
在自动测试技术中,手动测试有着明显的优势。它主要取决于计算机重复运作的能力。对其中的数据可以和更准确数据进行比较,并且在比较过程中没有更多的错误。在自动化测试过程中没有更多的错误。应当要及时进行机械化接口的操作和计算。此外,我们应该积极使用自动化测试工具来帮助测试人员完成相关的工作,从而更好地实现快速回归测试并有效的提高到了测试的覆盖范围。在实际的自动测试中,最重要的目的是更好地帮助进行手动测试,但是在实际的手动测试中存在不可替代的部分,例如某些数据是否正确,是否界面是美观的。在一定程度上,这些因素是测试人员的主观判断。因此,为可以满足软件测试的需求,达到更好的结果。我们应该将自动测试与手动测试相结合,这不仅可以发挥其各自的优势,还可以有效的提高到其的效率。一般来说,软件产品的释放周期非常短。在测试期间,可以每天发布一个版本来测试测试员。系统具有数千个功能点。手动测试是劳动密集型和易于错误的。产品发现错误后,所需的功能不会改变,因此测试用例无需更改,并且自动测试可以轻松执行回归测试。对于产品软件,每次发布一个新版本,其大部分功能和界面与前一版本相似或相同。这部分功能特别适用于自动化测试,使测试能够满足测试每个功能的要求。对于一些非功能性测试,如压力测试、并发测试、大数据测试、崩溃测试等。这些测试很难甚至不可能通过手动测试完成,但自动化测试可以轻松执行这些测试,如并发测试。使用自动化测试工具然后模拟到多方并发操作。由于每个自动测试都运行相同的脚本,因此可以执行重复测试,因此每次都会执行重复测试。手动执行重复测试很困难。自动化的繁琐测试任务,释放测试人员,并将更多精力投入测试用例设计和必要的手动测试,自动化测试可以按计划完全自动化,因此,自动化测试可以在周末和晚上进行。通常,它在开发结束时进入集成测试阶段。由于每个版本的开始时间很小,测试系统中的错误很小,因此开发人员需要有足够的时间等待测试人员检测出其中的错误。简言之,测试自动化是通过减少开销、全面测试能力和提高产品质量来实现。
4、结束语
由上可知,软件测试是软件工程实践中重要的组成部分,在其中有着十分重要的作用,有关人员可以通过软件测试对项目程序进行完善,使其更加智能,及时发展其中存在的问题然后进行解决。
参考文献
[1] 杨巍. 软件自动化测试系统的设计[J]. 2021(2014-18):234-234.
[2] 彭珲, 耿杰恒, 张晓娜,等. 软件云测试平台的设计与实现技术[J]. 电脑编程技巧与维护, 2021(8):3.
[3] 左万娟, 虞砺琨, 王小丽,等. 基于共性需求的软件通用自动化测试设计研究[J]. 计算机技术与发展, 2020, 30(6):6.
[4] 朱建华. 基于Spring的Web自动化测试平台设计与实现[D]. 大連理工大学, 2020.