代芷萁 谢天 周里涛
摘 要:软件测试作为软件实际应用前的最后一项检测,其有效性决定软件实用性,对软件而言具有重要的作用。但目前仍存在部分测试问题需解决,部分软件开发人员对软件测试不甚明确。本文分析目的即为使此类软件开发人员能够尽可能地完成软件的测试开发。本文对目前应用较广的软件开发方式展开分析,重点描述其原理及适用范围,随后针对软件测试策略进行阐述,意在使软件测试过程更为简便、软件错误更少,使此类软件切实应用于实际中。
关键词:软件测试;黑盒法;白盒法;单元测试
软件测试为软件的使用而服务,软件测试流程可参照早期软件开发工程,当时相关技术人员对于软件中出现的错误问题较为难以解决,后经软件调试、软件产品成型后测试等流程,逐渐发展至软件测试。现阶段测试过程中已出现各种方法,如何使用此类方法为软件进行测试,使软件能够正确运用于实际环境中已成为测试人员所注重的问题,本文即针对该问题进行阐述,使软件测试流程更加流畅,避免问题出现。
1软件测试原则
对计算机软件进行测试前,首先需遵循软件测试原则,即不完全原则的遵守。不完全原则即为若测试不完全、测试过程中涉及免疫性原则的部分较多,可对软件测试起到一定帮助。因软件测试因此类因素具有一定程度的免疫性,测试人员能够完成的测试内容与其免疫性成正比,若想使软件测试更为流畅、测试效果更为有效,首先需遵循此类原则,将此类原则贯穿整个开发流程,不断进行测试,而并非一次性全程测试。
2软件测试方式
2.1静态测试方法
静态测试方式指软件代码的静态分析测验,此类过程中应用数据较少,主要过程为通过软件的静态性测试(即人工推断或计算机辅助测试)测试程序中运算方式、算法的正确性,进而完成测试过程,此类测试的优点在于能够消耗较短时间、较少资源完成对软件、软件代码的测试,能够较为明显地发现此类代码中出现的错误。静态测试方法适用范围较大,尤其适用于较大型的软件测试。
2.2动态测试
计算机动态测试的主要目的为检测软件运行中出现的问题,较静态测试方式相比,其被称为动态的原因即为其测试方式主要依赖程序的运用,主要为检测软件中动态行为是否缺失、软件运行效果是否良好。其最为明显的特征即为进行动态测试时软件为运转状态,只有如此才能于使用过程中发现软件缺陷,进而对此类缺陷进行修复。目前动态测试过程中可包括两类因素,即被测试软件与测试中所需数据,两类因素决定动态测试正确展开、有效展开。
2.3黑盒测试
黑盒测试,顾名思义即为将软件测试环境模拟为不可见的“黑盒”。通过数据输入观察数据输出,检查软件内部功能是否正常。测试展开时,数据输入软件中,等待数据输出。数据输出时若与预计数据一致,则证明该软件通过测试,若数据与预计数据有出入,即便出入较小亦证明软件程序内部出现问题,需尽快解决。
2.4白盒测试
白盒测试相对于黑盒测试而言具有一定透明性,原理为根据软件内部应用、源代码等对产品内部工作过程进行调试。测试过程中常将其与软件内部结构协同展开分析,最大优点即为其能够有效解决软件内部应用程序出现的问题,测试过程中常将其与黑盒测试方式结合,当测试软件功能较多时,白盒测试法亦可对此类情况展开有效调试。其中,判定测试作为白盒测试法中最为主要的测试程序结构之一,此类程序结构作为对程序逻辑结构的整体实现,对于程序测试而言具有较为重要的作用。此类测试方式针对程序中各类型的代码进行覆盖式检测,覆盖范围较广,适用于多类型程序。实际检测中,白盒测试法常与黑盒检测法并用,以动态检测方式中测试出的未知错误为例,首先使用黑盒检测法,若程序输入数据与输出数据相同,则证明内部数据未出现问题,应从代码方面进行分析,若出现问题则使用白盒测试法,针对软件内部结构进行分析,直至检测出问题所在,及时加以修改。
3软件测试技术策略
3.1单元测试
单元测试即为将整个软件分解为各个单元,随后对单元进行测试。此类测试策略的优点在于所需分析数据较少,且针对性较强,程序开发者于开发过程中可通过操作经验明确出现问题的大致区域,随后针对此类问题对相关单元展开分析,进行问题排查。但需注意的是,某些程序中无具体单元驱动程序,即单个单元无法有效驱动,易出现问题,若针对此类软件展开测试,需重点注意此类分解单元。
3.2集成测试
集成测试与单元测试相反,原理为将部分需测试部分作为整体进行集成,随后针对此类集成部分进行测试。测试要求为此类被测试集成题应具有一定的结构,且属于非渐增方式集成。对于较大软件而言,集成测试方式较单元测试方式而言较为繁琐,目前多数大型软件的测试皆采取渐增方式进行测试。渐增测试方式为集成测试方式的衍生,其能够按照不同次序对软件进行测试,日常测试中,常将两类方式进行集成測试,随后按照次序展开选择。
结语:
无论何种类型、何种作用的软件,皆需要通过测试流程,通过测试流程为证明一款软件能够使用的最基本要求。软件测试的目的即为软件能够符合设计要求,切实完成设计者为软件所设计的较多功能。本文即针对目前使用范围较广的软件测试技术进行分析,重点阐述其中的技术性要点。
参考文献
[1]付叶蔷.常见的软件测试技术分析[J].农家参谋,2018(07):216.
[2]曾利宏.分析软件自动化测试技术及应用[J].信息系统工程,2017(10):42.
[3]郭洪飞.计算机软件开发中的数据库测试技术分析[J].计算机产品与流通,2017(10):28+52.