软件测试过程的质量控制分析

2021-07-26 01:19丁凝
网络安全技术与应用 2021年5期
关键词:黑盒测试工具软件测试

◆丁凝

(沈阳职业技术学院 辽宁 110045)

软件测试实际是软件开发中非常重要的组成部分,为的是让更多的程序员采用合适的方法来确认软件自身的质量。从狭义看,软件测试就是借助人工和自动化手段来检测整个系统,最终也只是为了检查软件使用是否可以更好地满足实际需要,并分析测试的不同结果之间是否存在差异。软件检测的过程其实就是改正其中错误的过程。

1 研究背景

软件测试一直都是提升产品质量的重要手段,从20世纪70年代开始就已经在软件行业被广泛应用。发展到现在,软件测试已经发展成了一个非常独立的学科。有关数据显示,只有通过运用正确的测试方法才能够在第一时间降低软件使用时发生故障的风险。在一些大型的软件公司,其软件测试人员的数量较多。我国早在去年就发布了类似《GJB2423 软件测试和评估的通用要求》,后又在2004年直接改名,实际也明确了软件测试的内容、方法和程序,为的是更好地保证软件使用的质量。但是随着军用软件开发的规模变得越来越大,其应用的范围也在不断地扩大,势必会对软件质量提出更高的要求。

随着信息技术的不断发展,不同的软件生产者和使用者都生存在竞争较为激烈的环境中。多数软件开发商都会为了占有市场而不断地提升产品的质量,以便不在激烈的竞争中被淘汰出局[1]。

2 软件测试概述

软件开发需要一个过程,测试也有模型对其进行支撑,专业人员在测试时可以遵循如下几个方面的步骤:第一,先要有效地确定测试的具体内容;第二,确定好测试方法之后再建立一个良好的测试环境,并在此环境中高效地进行测试;第三,等到测试的过程都完成之后再检查测试的结果是否已经达到了标准。但是从常规测试的过程看,有些测试的流程还不够完整,很多测试者需要针对软件测试过程中存在的问题进行测试。最常用的测试模型是V 模型,这种模型不仅描述了软件开发的实际过程,也体现了开发过程中所折射的基本思想,整个模型如图1所示:

图1 V 模型中的测试

从V 模型软件测试可以看出,任何软件的测试都是以需求分析为基础的,实际也是为了将单元测试、集成测试、系统测试和其他不同环节的测试过程更好地集中在一起,为的是让整个V 模型都可以在实践中发挥更大的作用。

3 常用的软件测试方法

3.1 黑盒测试方法

黑盒测试是最常用的软件测试方法,又被称为驱动测试。黑盒测试时可以将测试的对象先看成一个黑盒子,实际也并不应该单独考虑内部程序处理的过程。人们在实际测试时需要同时考虑合法的和不合法的相关内容。

黑盒测试的优点表现在如下几个方面:第一,相比其他测试方法,黑盒测试的方法比较简单,并不需要测试者详细地了解内部的代码;第二,软件内部的内容实际并不存在一定的关系;第三,用户比较容易理解黑盒测试的原理,至少可以知道其需要用到哪些不同的功能。

但是黑盒测试过程也不是完全没有缺点,主要包括如下几个方面:第一,不是所有类型的代码都可以用黑盒测试的方法来测试的,所以此种方法使用的覆盖率相对较低;第二,黑盒测试复用性程度较低。

3.2 白盒测试

白盒测试实际就是结构测试,为的是在分析程序内部不同结构的基础上来发现新的问题。白盒测试可以将程序看成被装在一个透明的白盒子里,更多的人可以透过这个白盒子来了解其中的结构和程序,并全面检查内部的结构是否正确。在进行白盒测试时需要检查内部的构造是否已经按照规定的内容正常进行。

白盒测试的优点包括如下几点:第一,广大软件测试人员可以借助白盒测试来提升代码的覆盖率;第二,可以运用白盒测试方法来更好地提升代码的质量;

白盒测试的缺点包括如下几点:第一,白盒测试程序中可能会包含不同类型的路径,实际并不能够覆盖所有运行的路径;第二,如果使用白盒测试法进行测试,广大测试人员只能够判断内部程序的正确性,却并不真正知道其设计的正确与否,所以实际是会漏掉一些功能的。第三,白盒测试所耗费的代价实际较大。

从上述的分析可以看出黑盒测试和白盒测试还是存在着较大的区别的,但是两种测试方法实际又是有效地被联系在一起的。两种测试方法的侧重点不同,内部的技术含量也各有不同。实践中只有有效地处理好黑盒和白盒之间的关系才能够提升测试工作的质量,最终有效地提升软件自身的质量。

4 当前软件测试时存在的问题

目前,我国诸多软件测试的种类和方法非常复杂,其软件测试功能在单位受到了越来越多的重视。但是多数软件在使用的过程中还是会存在诸多方面的问题:

4.1 对软件测试有没有更加充足的认识

软件测试实际是贯穿于整个软件开发过程中的,多数测试工作都需要在重点分析系统设计和使用需求的基础上开展。但是大部分的开发单位都会选择在完成编码或者交付产品前进行软件测试,测试的内容也多跟软件产品自身的质量有关,实际是无法在第一时间发现软件内部的错误的。但是如果其在验收时才发现内部存在的错误,其修改的代价将会变得更大,而如果有关的错误没有在第一时间被发现,实际也会诱发更多的隐患。

4.2 软件测试水平不高

软件测试的成本占据总开发成本的50%左右,在开发初期,包括裁剪测试、分配资源和规范流程等都会耗费较多的成本。因此,测试人员本人的水平将会起到非常重要的作用。但是,目前各个测试单位内部缺乏专业的测试人员和管理人员,测试工作的整体性不强,所以较多的测试人员只能够根据自己的理解来确定测试的步骤,以上种种会使得测试工作充满较多的不确定性。

4.3 测试手段较为单一

实际在测试的过程中总会缺少自动化的测试工具和先进的测试技术。又因为受到经费的影响,大部分的单位主要会采用人工测试的方法,其测试的效率很低,自然也无法在第一时间发现软件中存在的问题,更没有办法采用合适的软件来发现测试过程中存在的缺陷。如果在测试时无法有效地发现和处理相关的问题,自然也就无法更好地保证软件自身的质量。

5 解决当前软件测试中问题的具体策略

在分析上述软件测试时存在的问题之后,专业人员需要采用合适的方法来解决出现的问题。主要包括如下几点措施:

5.1 推进软件测试队伍专业化建设

注意在分析软件测试特点的基础上建立专业的骨干队伍,为的是全面地针对不同的用户分析包括需求、寿命和管理工作相关的内容。在分析需求时,所有项目管理者和系统分析人员都需要参与到软件分析的过程中。在系统设计的阶段,需要让系统分析员、系统设计人员和测试者都参与进来,这样才能够让其有效地审查软件体系结构、功能结构和数据结构,最终让设计的过程变得更加科学。而到编码的阶段,所有软件测试组的人员都需要参与在内。只有让软件测试队伍内部的人员变得更加专业才能够推进软件测试工作更加高效地进行。

5.2 强化应用各类专业测试手段

常规的测试手段主要是由测试工具和方法两个重要部分组成,只有采用较为先进的测试手段才能够更好地提升测试工作的质量。在真正进行测试工作时一定要让系统内部不同类型的测试工具发挥不同的作用。例如,在面对B/S 结构时,应该选择直接针对客户端和网络性服务器的测试工具;在选择C/S 测试工具时则应该选择针对分布式事务和系统输入边界条件的测试工具。实际也需要将不同的测试方法有效地融入测试的过程中[3]。

注意将需求分析、软件设计、程序编码和运行维护等不同的过程融入软件测试的过程中,并充分利用较为专业的工具来对每个不同周期的软件进行检测,主张在发现需求和设计错误的基础上更好地提升软件的质量,这也会在潜移默化间节省了软件开发的成本。

5.3 大力建设专业的软件测评中心

不同测试人员自身的素质会直接影响软件测试的质量。其实很多单位在软件测试时缺乏经费和专业软件测试人员的支持。软件测评中心作为一家专业的第三方机构不仅工作效率较高,整体也显得较为专业,确实可以在测评软件时发挥重要的作用。各个单位可以从实际情况出发来和专业的软件测评中心进行合作,以便让软件测评工作朝着专业化和正规化的方向发展,最终也可以满足军用软件的质量要求。

5.4 建立良好的软件质量模型

不同的软件质量是由其他不同的方面构成的:第一,全面判断软件是否在使用中符合相关的需求;第二,确认多数软件结构是否良好,修改的过程是否方便;第三,确认软件系统内部的界面是否友好,是否可以让用户使用的过程变得更加方便;第四,软件内部各个阶段的文档是否齐全和规范。只有让上述几个不同的步骤更好地发挥实际作用才能够构建良好的质量模型。

但是在使用软件质量模型时一定要注意分析实际情况,并重点从客户的需求出发来认真地分析产品,并在寻找产品使用方法的基础上更好地解决可能会遇到的问题。只有有效地解决这些实际问题才能够更好地提升软件的质量。

综上可以看出,只有有效地研究和分析软件测试技术才能够更好地提升软件的质量。

猜你喜欢
黑盒测试工具软件测试
一种基于局部平均有限差分的黑盒对抗攻击方法
基于OBE的软件测试课程教学改革探索
航天软件测试模型构建与应用
Http并发连接测试工具
EXCEL和VBA实现软件测试记录管理
手车式真空断路器回路电阻测试电流线接头研究
软件测试工程化模型及应用研究
浅谈响应时间测试分析方法