欢迎来到学术参考网

软件测试研究

发布时间:2015-10-05 14:49

摘 要:近些年,软件行业发展越来越快,同时对软件质量的要求越来越高。软件测试能够确保软件质量的好坏,因此,在软件开发过程中一定要重视软件测试。

关键词:软件测试;软件开发;质量
1.组件测试
  组件测试又称单元测试,其目的就是验证应用程序能够很好的工作,以及尽早的发现错误。所谓组件测试其实就是测试单个组件的过程,是一种细粒度的测试。组件测试其实就是一个缺陷测试的过程,基本上使用结构化测试即白盒测试来对组件进行测试。在软件中,组件算是最小的单元,因此,组件测试可以对多个组件来进行。
1.1组件测试的类型
  在组件测试阶段,需要测试不同类型的组件(对象内的单个函数或方法、有多个属性和方法的对象类、有不同对象或是函数组成的复合组件)。组件测试的内容主要有模块接口、局部数据结构测试、路径测试、错误处理测试以及边界测试。从测试的类型可以看出,比较简单的就是对单个函数或方法的测试,但是当测试多个组件组成的复合组件时,测试组件间的接口是否能正确执行是首要关心的问题,而这个测试中的关键就是对组合组件的接口测试。
1.2接口测试
  接口测试是组件测试中最常用的一种测试。测试符合组件间的接口就是接口测试。由于在符合组件之间存在很多交互行为,因此,在对复合组件中的单个组件进行访问时,是要通过接口来对它们进行调用。所以,接口测试就成为组件测试中的重点。
  复杂系统中最常见的错误形式包括接口错误,接口错误主要指接口误用、计时错误、接口误解等等。一般情况在不寻常的条件下、交互双方都存在接口缺陷,而这是很难发现的,因此,接口测试是非常重要的。
  组件的开发和测试都是交叉进行的,组件的设计者对组件是十分熟悉的,因此,由组件的设计者来进行组件测试是在合适不过了。
2.集成测试
  所谓集成测试就是指测试时将组件集成为系统来进行。集成测试的目的就是检查在一起的组件是否工作,能否正确及时进行组件与组件间的交互。集成测试就是将与接口相关的错误找出,从而使得添加的功能模块确保没有传播不期望的副作用,并且使得由于新模块的添加引起的变更不引入需求外的行为或是增加额外的错误。集成测试过程如图1所示。

图1 集成测试过程
2.1集成系统的策略
  集成顺序不同,集成测试也将不同,二者密切相关。集成系统的策略从理论上来讲,其可分为自上而下的集成和自底而上的集成。但是在实际中,大多数的集成策略都是混合型的。自上而下的集成就是指先把系统框架开发出来,然后再向其中添加组件。这种方法存在一个非常普遍的问题,即在测试下一层时,还要兼测上一层。自底而上的集成就是指集成和测试都是从组件开始。不管使用哪种策略,开发额外的代码是必须的,通过额外代码的开发来仿真其他组件,从而使得系统运行起来。
  对错误的定位就是集成测试中存在的主要问题。由于组件之间有复杂的交互行为存在,因此,当发现一个错误时,很难将其出错的位置找到。
2.2集成测试的方法
  集成测试通常采用增量法来进行测试,从而使得集成测试中的主要问题得以解决。使用增量法,从一个集成度最小的系统配置开始,然后测试这个系统,测试完成后,一个增量一个增量地往系统中增加组件,每次增加组件后再进行测试。这种方法其优点在于易于分离和纠正错误以及彻底测试接口。这种方法的缺点在于在测试过程中经常会出现重复测试。
2.3回归测试
  回归测试就是指把测试过的再进行测试。回归测试虽然出现重复测试,但是其能够保证新增模块后不会给原系统组件间的行为产生不期望的变更。回归测试是保证软件的正确运行的必要条件,但是,对测试过的再进行重新测试明显会产生不必要的浪费。
  要想在使用回归测试时减少系统资源的浪费,可以从以下几个方面进行:(1)引进自动化测试。这种方法的引入,使得测试自动地重复,从而回归测试对系统资源的浪费得以减少;(2)严格规定增加快增加顺序。先增加最常用的功能块,从而对最常用的组件进行多次测试,确保在各种情况下常用功能能够实现。
  集成测试的必要性还在于一些模块虽然能够单独地工作,但并不能保证连接起来也能正常工作。程序在某些局部反映不出来的问题,有可能在全局上会暴露出来,影响功能的实现。此外,在某些开发模式中,集成测试的意义还在于它能间接地验证概要设计是否具有可行性。
3.性能测试
  性能测试就是测试系统对在非正常条件下的运行情况。它的任务是验证软件的功能和性能及其他特性是否达到了需求规格书上的要求。一般情况下包括恢复测试、安全测试、压力测试、性能测试。恢复测试是通过各种方式强制地让系统发现故障并验证其能够重新恢复的一种系统测试。安全测试是验证在系统内的保护机制是否能够实际保护系统不受非法入侵。压力测试是以一种要求反常数量、频率或容量的方式执行系统的测试方法。
4.接收测试
  接收测试是对将要分给客户的系统版本的测试过程。通常是一个黑盒测试过程,将软件与计算机的其他系统元素结合在一起,在实际运行环境下,由用户通过真实的数据测试对软件在内的计算机系统,以求能发现系统需求定义中的错误和遗漏。同时也期望能发现因系统的设施不能满足用户的需求或系统的性能无法接受的错误。
4.1接收测试的方法
  接收测试的最好测试方法是基于脚本的测试,先设计出多个脚本然后再从脚本中开发错测试用例。
4.2接收测试的分类
  接收测试根据用户的不同可以分为α测试和β测试。无论是α测试还是β测试都是在实际的使用环境下进行的。α测试是测试为特定的用户开发的系统,且由最终用户在开发者在场的情况下进行的,开发者在旁边记录用户所遇到的错误和使用问题,α测试要持续进行直到开发者和用户双方都对最后交付的系统满意。β测试的对象是一个将要在市场上销售的软件产品,β测试是所有愿意使用该软件的用户在使用该软件是所遇到的所有问题,然后在反馈给开发者,开发者再根据反馈回来的信息决定对软件做如何处理。通常情况下β测试能暴露开发者无法预见得错误。
  随着软件应用越来越广,所要求的设计也越来越复杂,所需的开发周期越来越短,而质量要求越来越高,那么软件企业目前面临着巨大的挑战。由此,软件测试变得越来越重要,软件测试可以有效地提高软件质量。重视软件测试过程和技术是软件企业快速发展的有效途径。
参考文献:
[1] 宫云战.软件测试教程[M].机械工业出版社,2008.
[2] 刘利枚,周鲜成,石彪. 嵌入式软件测试系统的设计与实现[J]国外电子测量技术, 2008, (01) .

上一篇:计算机文化基础实验室文件及邮件存取方案

下一篇:基于网络教学模式的计算机教育改革探讨