内蒙古通威高纯晶硅有限公司
摘要:软件测试为软件的使用而服务,软件测试流程可参照早期软件开发工程,当时相关技术人员对于软件中出现的错误问题较为难以解决,后经软件调试、软件产品成型后测试等流程,逐渐发展至软件测试。现阶段测试过程中已出现各种方法,如何使用此类方法为软件进行测试,使软件能够正确运用于实际环境中已成为测试人员所注重的问题,本文即针对该问题进行阐述,使软件测试流程更加流畅,避免问题出现。本文分析目的即为使此类软件开发人员能够尽可能地完成软件的测试开发。本文对目前应用较广的软件开发方式展开分析,重点描述其原理及适用范围,随后针对软件测试策略进行阐述,意在使软件测试过程更为简便、软件错误更少,使此类软件切实应用于实际中。
关键词:软件测试;黑盒法;白盒法;单元测试
1、软件测试原则
对计算机软件进行测试前,首先需遵循软件测试原则,即不完全原则的遵守。不完全原则即为若测试不完全、测试过程中涉及免疫性原则的部分较多,可对软件测试起到一定帮助。因软件测试因此类因素具有一定程度的免疫性,测试人员能够完成的测试内容与其免疫性成正比,若想使软件测试更为流畅、测试效果更为有效,首先需遵循此类原则,将此类原则贯穿整个开发流程,不断进行测试,而并非一次性全程测试[1]。
2、软件测试方式
2.1静态测试方法
静态测试方式指软件代码的静态分析测验,此类过程中应用数据较少,主要过程为通过软件的静态性测试(即人工推断或计算机辅助测试)测试程序中运算方式、算法的正确性,进而完成测试过程,此类测试的优点在于能够消耗较短时间、较少资源完成对软件、软件代码的测试,能够较为明显地发现此类代码中出现的错误。静态测试方法适用范围较大,尤其适用于较大型的软件测试。
2.2动态测试
计算机动态测试的主要目的为检测软件运行中出现的问题,较静态测试方式相比,其被称为动态的原因即为其测试方式主要依赖程序的运用,主要为检测软件中动态行为是否缺失、软件运行效果是否良好。其最为明显的特征即为进行动态测试时软件为运转状态,只有如此才能于使用过程中发现软件缺陷,进而对此类缺陷进行修复。目前动态测试过程中可包括两类因素,即被测试软件与测试中所需数据,两类因素决定动态测试正确展开、有效展开。
2.3黑盒测试
黑盒测试,顾名思义即为将软件测试环境模拟为不可见的“黑盒”。通过数据输入观察数据输出,检查软件内部功能是否正常。测试展开时,数据输入软件中,等待数据输出。数据输出时若与预计数据一致,则证明该软件通过测试,若数据与预计数据有出入,即便出入较小亦证明软件程序内部出现问题,需尽快解决。
2.4白盒测试
白盒测试相对于黑盒测试而言具有一定透明性,原理为根据软件内部应用、源代码等对产品内部工作过程进行调试。测试过程中常将其与软件内部结构协同展开分析,最大优点即为其能够有效解决软件内部应用程序出现的问题,测试过程中常将其与黑盒测试方式结合,当测试软件功能较多时,白盒测试法亦可对此类情况展开有效调试。其中,判定测试作为白盒测试法中最为主要的测试程序结构之一,此类程序结构作为对程序逻辑结构的整体实现,对于程序测试而言具有较为重要的作用。此类测试方式针对程序中各类型的代码进行覆盖式检测,覆盖范围较广,适用于多类型程序。实际检测中,白盒测试法常与黑盒检测法并用,以动态检测方式中测试出的未知错误为例,首先使用黑盒检测法,若程序输入数据与输出数据相同,则证明内部数据未出现问题,应从代码方面进行分析,若出现问题则使用白盒测试法,针对软件内部结构进行分析,直至检测出问题所在,及时加以修改[2]。
3、软件测试在软件开发过程中的价值与作用
具体实施软件测试工作过程中,主要是为实现避免开发风险,降低常见风险,并充分了解到软件的性能,这样将能充分观测到软件的应用效果。软件开发工作涉及到复杂内容,开展全面测试工作,一是可以便于软件开发商明确软件的实际使用质量,并为工程师们提供准确有效的信息反馈,为全面评估软件系统操作的风险提供信息支持。二是为软件系统升级优化奠定基础,推进后续软件开发工作顺利开展,发挥其性能价值。三是适应软件工程开发项目的多项需求。充分发挥软件工程的整体应用效果,需要有软件测试实施全方位的辅助管理。软件测试可以实现软件开发精细化项目和集中化项目管理的和谐统一,能够切实开展多个模块、阶段的测试工作,切实落实软件管理和应用的各项标准和要求,充分发挥软件工程的应用价值。
4、软件测试技术策略
4.1单元测试
单元测试即为将整个软件分解为各个单元,随后对单元进行测试。此类测试策略的优点在于所需分析数据较少,且针对性较强,程序开发者于开发过程中可通过操作经验明确出现问题的大致区域,随后针对此类问题对相关单元展开分析,进行问题排查。但需注意的是,某些程序中无具体单元驱动程序,即单个单元无法有效驱动,易出现问题,若针对此类软件展开测试,需重点注意此类分解单元。
4.2集成测试
集成测试与单元测试相反,原理为将部分需测试部分作为整体进行集成,随后针对此类集成部分进行测试。测试要求为此类被测试集成题应具有一定的结构,且属于非渐增方式集成。对于较大软件而言,集成测试方式较单元测试方式而言较为繁琐,目前多数大型软件的测试皆采取渐增方式进行测试。渐增测试方式为集成测试方式的衍生,其能够按照不同次序对软件进行测试,日常测试中,常将两类方式进行集成测试,随后按照次序展开选择[3]。
5、软件测试在软件开发中的应用
5.1合理控制软件测试方法和步骤
充分归纳和综合各项软件测试的方法,可以发现其来源于测试种类的需求。软件测试中,使用白盒和黑盒的测试程序,收集人工、技术双层数据,全面控制好软件数据编程、应用操作以及未来升级的发展需求,并实施全面监管工作。其中白盒可以和人工操作实现良好融合,科学整理各项数据,为实现数据外接奠定坚实基础。然后,发挥黑盒的运行操作性能,充分有效的检测和观察软件开发项目的内置程序、数据,这样将能够充分保证软件在实际应用中的功能性得到有效发挥。(2)数据的支持,是有效推进软件测试整体性布置良好实施的前提。实施软件测试工作的过程中,首先需要开展功能性检验,实施外因排除工作,进而执行内因运行工作;其次,需要针对一些可能导致软件开发程序出现问题的原因进行细致查找;最后,需要结合软件开发中的各项参数进行运算,加以总结,实现软件测试的目的。
5.2需求分析阶段
软件开发过程中良好使用软件测试手段,最大限度地发现软件开发程序中的不足,需要注重结合不同阶段予以实施,需求分析阶段是测试环节的重要内容[3]。这一阶段开展软件测试工作,主要是针对客户需求进行记录,并提炼出各类核心信息,密切联系软件开发项目负责人,结合开发工作进度安排,制定科学测试计划。如某客户为实现改善室内清洁机器人性能要求软件开发公司设计智能软件,从用户的需求入手,可以得知软件开发项目的核心参数是机器人设备在感知障碍物、作用力、工作目标及其传感技术和集成技术。其中所需要的技术都是通用技术,只需要测试感知数据即可。由此可以结合软件开发的情况,拟定软件测试计划。
5.3设计阶段
软件开发工作进入设计阶段,测试工作包含了:(1)从实际开发工作进度及时调整好实现设定好的测试计划;(2)结合及阶段设计结果,开展一些必要的分项目测试工作。一般情况下,在实施软件开发工作的过程中,会存在着较多未知变数,如某客户原定需求为软件识别4种语言,随着软件开发工作的深入实施,客户提高要求,需要软件至少识别6种以上语言,这就要求测试工作需要适当增加测试内容,从而更好的符合客户需求。分项目测试工作在一些大型的软件开发项目中较为常见,为了保证整个开发项目的运行效果,需要及时针对其中涉及到的各个细节内容进行测试,确保其整体的使用效果。
5.4代码编写阶段
软件开发人员开发软件工程,需要注重结合需求编写相应的代码,积极实施软件设计和制作工作,其中需要进行单元测试、测试用例编写以及接受代码完成报告,编写测试用例则为关键性工作内容。实际开发软件过程中,设计人员可以自行担负起单元测试的职责,但是面对复杂多参数测试工作,则需要有测试用例和脚本作为支撑,由项目小组实施共同测试工作。
5.5运行维护阶段
软件开发工程投入到实际应用之后,还需要开展一定时间的测试工作,这是因为测试阶段并不能够全面暴露软件开发中的缺陷。通过定期检测软件在实际运行中所表现出的各项参数,将能够及时发现其和既定参数中的差异,并加以细致分析和研究、解决,这样将能够更好提升软件开发的成效,提升客户的满意程度。如软件漏洞问题的存在,其在测试阶段多数呈现出了较为理想的状态,但是在具体应用中,将会受到系统兼容性以及木马病毒攻击的影响,出现运行状况不良的现象。运行维护阶段,测试人员需要和用户及时沟通,结合用户所反馈的各项情况,开展运维测试工作。
6、结语
综上所述,无论何种类型、何种作用的软件,皆需要通过测试流程,通过测试流程为证明一款软件能够使用的最基本要求。软件测试的目的即为软件能够符合设计要求,切实完成设计者为软件所设计的较多功能。本文即针对目前使用范围较广的软件测试技术进行分析,重点阐述其中的技术性要点。
参考文献:
[1]付叶蔷.常见的软件测试技术分析[J].农家参谋,2018(07):216.
[2]曾利宏.分析软件自动化测试技术及应用[J].信息系统工程,2017(10):42.
[3]郭洪飞.计算机软件开发中的数据库测试技术分析[J].计算机产品与流通,2017(10):28+52