当前位置:首页 > 专题范文 > 公文范文 > 正文

浅谈软件测试

发布时间: 2022-11-05 15:35:03 来源:网友投稿

摘要:软件测试是保证软件质量,提高软件可靠性的主要活动之一。本文从介绍软件测试的定义、方法、目的等方面阐述作者的一些认识。

关键词:软件测试测试目的测试方法

软件测试是软件工程的重要组成部份,是软件质量保证的重要前提。从软件测试费用一般占软件开发总费用的40% 以上的角度,可以看出软件测试在软件开发过程中起非常重要的地位,它不仅体现在仅是软件开发过程中的一个阶段,而且是贯穿从需要分析开始的软件生命周期过程。

软件测试伴随着软件工程学科的诞生而诞生,也随着软件工程学科的发展而发展。但软件工程从面向过程的软件工程发展到面向对象的软件工程并形成相对成熟的面向对象开发技术的过程中,软件测试技术尽管也有一些发展,但仍没有形成比较完善的面向对象的测试技术。

1 软件测试的概述

软件测试就是使用人工或者自动的手段来运行或测定某个软件产品系统的过程,其目的是在于检验软件产品是否满足规定的需求。简单地说,软件测试过程就是制造条件,促使错误发生的过程。软件测试贯穿于软件定义与开发的整个周期,软件的需求规格说明书、结构设计及程序编码,都属于软件测试的对象。

2 软件测试的难点

软件测试技术作为软件工程学科的一个分支,它起步较晚,远未成熟。所涉及的知识面很宽,如:图论的应用、正确性证明、程序排错、软件质量保证以及软件复杂性度量等。不仅测试理论,而且已有的测试方法和工具都无法满足当前软件开发的实际要求,国内的大量出版物中,关于软件测试的资料也很少,然而,软件测试做得怎样,决定着软件产品质量的好坏。而且软件测试阶段投入的成本和工作量往往要占软件开发总成本和总工作量的一半以上,所以要在短时间内完成测试,需要仔细调查、仔细研究、收集资料、具体问题具体分析、把握住测试的关键和测试度,所以完成一项测试是有很大困难的。

要搞好软件测试,必须首先分析软件开发过程中可能会出现的一些错误,如:问题判定错误、算法错误、设计错误、逻辑错误、语法错误、编译错误、输入错误、输出错误,在开发过程中各阶段可能的错误源一般有:错误的问题判定、错误的相关参数、系统定义的不完全性和不一致性、程序设计的语法逻辑错误、编译源程序错误、硬件错误、输入输出的错误等。

3 软件测试的基本思想

从理论上分析,要想发现软件中的所有错误,就必须进行彻底的测试。所谓彻底测试,就是让被测程序一切可能的输入情况下全部执行一遍,但由于测试情况数量巨大,绝不可能进行彻底的测试。所以软件测试的目的应该是用尽可能少的测试用例发现软件中尽可能多的错误。因此软件测试绝不是证明软件没有错,而应该是查找软件中的错误。成功的软件测试是用很少的测试用例就能发现软件中的很多错误,相反失败的软件测试就是用了大量的测试用例却没有发现多少程序中的错误。

4 软件测试的目的

软件测试的目的是以最少的人力、物力和时间投入,尽可能多的找出软件中潜在的各种错误和缺陷以证明软件的功能和性能与需求相符合。主要检查软件模块是否与软件设计要求相一致,保证软件开发的正确性检查软件用户界面是否友好,软件是否易用检查软件开发过程中遗留在程序中的错误,以便开发人员予于排除,提高软件的可靠性检查所提供的文件与软件系统的一致性。

5 软件测试的原则

软件测试应把握的原则为:首先是所有的测试都应追溯到用户需求,这是因为软件测试的目标在于揭示错误。其次是应尽早制定测试计划,尽早地和不断地进行软件测试。第三是应从“小规模”开始,逐步转向“大规模”,对重点程序模块要进行重点测试。第四是应该进行独立的第三方测试。

6 软件测试的内容

软件测试主要有四方面的内容:一是进行软件单元测试以验证单元满足功能、性能和接口等要求;二是进行软件部件测试以验证组装构成和组装结果;三是进行软件配置项测试以检验软件模块之间的接口关系并构成符合要求的软件配置项;四是进行系统测试软件配项加入到系统上进行测试,检验软件是否满足规定要求。

7 软件测试的方法

软件测试的方法和技术是多种多样的,对于软件测试技术,可以从不同的角度加以分类,可以分为以下几个类别:

7.1 黑盒测试 黑盒测试也称功能测试或数据驱动测试。它把软件看作一个黑盒子,在已知软件所应具有的功能情况下,完全不考虑软件内部结构和处理过程,从软件需求出发,根据软件需求规格说明对软件接口进行测试。一般地它只检查软件功能是否按照需求规格说明书的规定正常使用、软件是否能适当地接收输入数据而产生正确的输出信息并且保持外部信息的完整性。黑盒测试主要用于软件确认测试,方法有等价类划分、边界值分析、错误推测法、因果图等。

7.2 白盒测试 白盒测试也称结构测试或逻辑驱动测试,它把软件看作一个白盒子,在完全知道软件结构和处理算法的情况下,从软件设计出发,根据详细设计规格说明对软件内部的逻辑结构和编码结构进行测试。一般地它只检查软件中的每条逻辑通路是否都按预定要求正确工作、内部控制结构和数据结构是否有错以及实际的运行状态与预期的状态是否一致。白盒测试主要用于单元测试,方法有逻辑覆盖(语句覆盖、判定覆盖、条件覆盖、点覆盖、边覆盖)和路径测试等。

7.3 性能测试 性能测试主要测试软件的性能,包括负载测试,强度测试,数据库容量测试,基准测试等。负载测试是测试软件在超负荷的环境中,是否能够正常运行,在这种测试中,将使测试对象承担不同的工作量,以评估测试对象在不同工作量条件下的性能。负载测试将对响应时间、事务处理速率等性能进行评测。比如,在B/S结构中用户并发量测试就是属于负载测试,用户可以使用相应的工具,模拟上百人客户同时访问网站,测试系统响应时间,处理速度如何等。

强度测试是测试软件在系统资源特别低的情况下,系统的运行情况。实施和执行此类测试的目的是找出因资源不足或资源争用而导致的错误。例如,在内存或磁盘空间不足或者在争用共享资源的情况下,测试对象就可能会表现出一些在正常条件下并不明显的缺陷。强度测试还可用于确定测试对象能够处理的最大工作量。

数据库容量测试指通过存储过程往数据库表中插入一定数量的数据,看看相关页面是否能够及时显示数据。数据库容量测试使测试对象处理大量的数据,以确定是否达到了将使软件发生故障的极限。基准测试是将软件与已知现有的系统进行比较,主要检验是否与类似的产品具有竞争性的一种测试。

7.4 UI测试 UI测试是对用户界面的风格、文字、图片、背景的测试。用户界面(UI)测试用于核实用户与软件之间的交互。UI测试的目标是确保用户界面中的每个对象能按照预期的方式运行,并符合公司或行业的标准。包括用户界面友好性,人性化,易操作性等方面的测试。

7.5 功能测试 功能测试指测试软件各个功能模块是否正确,逻辑是否正确的测试。功能测试的目标是核实数据的接受、处理和检索是否正确,以及业务规则的实施是否恰当。此类测试基于黑盒技术,该技术通过图形用户界面(GUI)与应用程序进行交互,并对交互的输出或结果进行分析,以此来核实应用程序及其内部进程。功能测试的主要参考为类似于功能说明书之类的文档。

8 结束语

软件测试的一项重要而且复杂的工作,它不仅要求软件测试人员掌握一定的软件测试方法,更需要软件测试人员如何针对不同特性的软件系统来分析、选择其测试策略和测试方法。所以软件测试应该说是建立在方法和经验之上的,这就需要软件测试人员要善于在测试工作中去分析总结经验来完善软件测试的方法。

参考文献:

[1]贺平.《软件测试技术》,机械工业出版社.

[2]许育诚,王慧文.《软件测试与质量管理》,电子工业出版社.

[3]郑人杰.计算机软件测试技术.北京:清华大学出版社,1990年:全书.

[4]曲朝阳,刘志颖.软件测试技术[M].北京:水利水电出版社,2006.(8).

最新文章

版权所有:博古范文网 2012-2024 未经授权禁止复制或建立镜像[博古范文网]所有资源完全免费共享

Powered by 博古范文网 © All Rights Reserved.。浙ICP备12018771号-1