APP下载

计算机软件测试技术分析

2016-12-31

移动信息 2016年8期
关键词:测试用例软件测试错误

李 妍



计算机软件测试技术分析

李 妍

天津南大通用数据技术有限公司 天津 300000

计算机软件测试技术被定义为一个计算机程序或是系统属性为目标的任何一种技术活动,测试则是对软件质量的一种评估。软件测试主要为了提升软件应用的质量,对测试软件进行工程设计,实现了维护与实施的整个工程生命周期,基于此,对计算机软件测试技术进行了分析,希望可供相关从业者参考借鉴。

计算机;软件测试;技术分析

1 计算机软件测试的意义

计算机软件测试的目的就是能够减少时间和人力、物力找出软件中存在的一些瑕疵,加以改正。软件测试的范围包括:软件计划、软件设计、软件编程代码,主要是代码这块是否存在错误,一旦代码出现错误,很容易导致软件功能出现错误。软件测试设计到软件开发周期中各个阶段的错误,测试也是对错误性质和位置进行纠正。在整个纠正的过程中可能会涉及改正或重新规划文档活动[1]。

2 计算机软件的测试方法分析

计算机软件测试技术对于软件开发来说是非常重要的,对于一个复杂的系统而言,为了增加系统的可靠性,测试工程师需要对开发的系统进行不同层次的软件测试。

软件测试根据系统开发的阶段来分为单元测试、集成测试、系统测试、验收测试,根据程序是否被运行分为静态、动态测试,按照查看源代码情况分为白盒、黑盒测试。其中,静态测试是指在不实际运行软件的情况下,直接查看源代码、软件数据结构、编码规则等,由每千行代码出现的错误率作为静态测试的评估结果;动态测试指的是在实际的环境中或者在开发、测试的环境中运行软件,通过测试人员对其进行的各种正确操作,将得出的实际结果与期望结果进行对比,以此来判断软件是否成功。黑盒测试则是将系统看作一个黑盒子,忽略系统内部结构和特性的情况下对其进行测试,性能测试也属于白盒测试的一种,通过性能测试的自动化工具来模拟开发系统的正常、峰值以及异常负载等条件,来对软硬件的各项性能指标进行测试,从而发现软硬件系统的性能瓶颈,提出修改方案,以达到优化系统的目的;白盒测试主要是对代码的结构或者逻辑进行测试,需要了解系统的内部逻辑结构、逻辑路径以及源代码的情况,来覆盖开发系统所设计的所有逻辑路径[2]。

3 黑盒测试技术的研究分析

3.1 等价类划分

等价类划分是将整个输入域按照一定的原则划分成几个互不相交的子集,子集中的元素彼此之间是等价的。用这种方法来进行设计测试时,只需在一个子集中选出一个或几个具有代表性的元素作为测试数据,即可代表该集合对软件系统的影响。

3.2 错误推断法

错误推断法是基于测试人员的经验和直觉来完成验证可能存在的错误而设计测试用例的一种方法,主要是列举出程序中有可能出现错误或者容易发生错误的特殊情况。例如:输入或者输出为零,删除表格为空或者保存空白信息或者空白表格等情况,然后根据它们设计测试用例。此方法可以弥补测试中的纰漏,但是测试者需有一定的测试经验或对软件系统有一定的了解方可。

3.3 因果图

因果图法考虑到了多种输入条件中的复合关系以及限制关系,当有许多输入或者输出时,或者多种输入和输出组合的情况下,或者参数间相互依存时,此法十分有效。因果图法适合于描述多种条件组合,相应产生多个动作的形式来进行测试用例的设计。利用因果图法来设计测试用例的步骤如下:(1)分析需求中的描述,按需求划分原因及结果;(2)分析需求中的语义内容,然后用因果图来表示需求;(3)使用一些特殊符号在图上标出限制关系;(4)将因果图变成决策表。

3.4 正价实验法

正价实验法是从大量的实验点中挑选出适量的、具有代表性的点,应用依据伽罗卡瓦理论导出的“正交表”,合理地安排实验的一种科学的测试用例设计方法,适用于软件系统的互动测试、包含配置项的种种测试。

3 加强对计算机软件测试技术策略的落实

3.1 单元测试

在单元测试中,由于被测试的软件模块处于整个软件结构的某一个位置,一般是被其他模块或组件调用的模块或组建,其本身并不能够单独运行,因此需要对被测模块或组件进行驱动程序或存根程序的设计。

驱动程序也是设计中的一个主程序,主要负责接收数据,把这些相关的数据传给被测试的模块或组建,并且打印相关的测试结果。存根程序就是STNB,它是代替被测试的软件所调用的模块组件,也是一个虚拟的子程序。

3.2 集成测试

3.2.1 非渐增的方式

非渐增的方式也是一次性组装的方式,这种方式在所有的模块进行单元测试之后,将所有的模块按照设计中的要求结构图连接起来,连接之后的程序作为一个整体进行测试。在一些小的测试项目中,可以使用非渐增的方式进行系统的集成测试,但是在一些大的项目中,这种集成测试并不合适,因此在一些软件测试中都会采用渐增的方式进行测试。

3.2.2 渐增测试方式

渐增测试方式又是增值式组装方式,此种测试方式把下一个要测试的模块同已经测试号的模块连接起来再次进行测试,测试完成之后把下一个测试的模块进行测试。模块测试在不断地增加,这种渐增方式与非渐增方式有很大的不同,他的集成方式是慢慢实现的。集成测试也是一点点来完成的,当渐增方式与模块都连接到程序中去时,按照不同的次序可以有两种策略进行选择。

3.3 系统测试

系统测试的根本目的就是保证系统能够实现客户想要的。为了能够达到这样的目的,需要完成一系列的测试活动,这些活动包括系统的功能测试,系统的性能测试,对系统的验收和安装等测试。

3.3.1 系统功能测试

对系统功能测试也是需求测试的一种。主要对软件编程系统中的功能性进行检测,按照客户的需求进行一一对照,找出存在的差异性问题,也就是检测系统是否能够满足客户所指定的功能。功能测试一般使用的方法是黑盒测试。

3.3.2 性能测试

对于性能测试,是一些非功能性需求的问题,找出非功能性需求和系统要求之间的差异。如安全性、精度确认、运行速度等。性能测试要进行多项的测试活动。

4 计算机软件测试管理的措施

4.1 软件测试应贯穿软件开发的全过程

由于原始问题的复杂性、软件的复杂性和抽象性、软件开发各个阶段工作的多样性以及各种层次人员之间工作的配合关系等因素,使得开发的每一个环节都可能产生错误。所以,软件测试不仅仅是软件开发的一个独立阶段,而应当把它贯穿到软件开发的各种阶段中,坚持各个阶段的技术评审,才能尽早发现和预防错误。为软件测试的W模型,形象地说明了软件测试与开发的同步性。

4.2 合理选择测试用例

完整的测试用例不但需要测试的输入数据,而且需要对应这些输入数据的预期输出结果。如果对测试输入数据没有给出预期的输出结果,那么就缺少了检验实测结果的基准,就有可能主观地把一个似是而非的错误结论当成正确的结果。

在设计测试用例时,应当包括合理的输入条件和不合理的输入条件。合理的输入条件是指能验证软件的输入条件;不合理的输入条件则是指异常的、临界的、可能引起问题异变的条件。用不合理的输入条件测试软件能核实软件的容错能力和完全性,往往比合理的输入条件能发现更多的错误。

4.3 程序员和程序设计机构应避免测试自己的程序

测试工作需要严谨的作风,客观的态度和冷静的情绪,由开发组成员以外的人来完成软件测试会更客观,更有效,并更容易发现问题。这是因为:

一方面,程序中可能包含一些由于对问题的叙述和说明误解而导致的错误,自己一般很难发现;

另一方面,就心理上来讲,程序员总不希望自己的程序出错,因此不能有效测试自己的软件。

5 结语

总而言之,软件测试作为保证软件质量的重要途径,本文对软件测试工作中存在的一些问题进行了分析,并提出相关应对方法,可为有效提高软件测试的技术水平和管理水平,促进软件质量和可靠性的整体提升提供借鉴和参考。

[1]王立新.软件测试数据的高效生成及测试方法研究[D].上海:东华大学,2011.

[2]夏启明.软件测试及评价的复用策略研究及其实现[D].武汉:武汉大学,2010.

Computer software testing technical analysis

Li Yan

Tianjin General Data Technology Co.,Ltd.,Tianjin 300000

The computer software testing technology is defined as a computer program or system properties as the goal of any kind of technical activities,test is an evaluation of software quality. Software testing is mainly in order to improve the quality of the software application,to test the software engineering design,maintenance and implementation of the whole project life cycle, the following analysis of computer software testing technology,hope to provide a reference for the relevant practitioners of using for reference.

computer; software testing; technical analysis

TP311.53

A

1009-6434(2016)08-0081-03

猜你喜欢

测试用例软件测试错误
软件测试方向人才培养“1+X”融合研究
基于相似性的CITCP强化学习奖励策略①
在错误中成长
测试用例自动生成技术综述
基于OBE的软件测试课程教学改革探索
航天软件测试模型构建与应用
EXCEL和VBA实现软件测试记录管理
不犯同样错误
《错误》:怎一个“美”字了得
测试工时受限的测试策略研究