首页 > 文章中心 > 回归测试

回归测试范文精选

开篇:润墨网以专业的文秘视角,为您筛选了十篇范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

软件回归测试及其实践

【摘 要】本文描述了软件回归测试的概念和进行回归测试的基本步骤,介绍了可用于回归测试的测试用例库的维护方法,给出了几种可以可保证回归测试效率和有效性的回归测试策略,总结了回归测试时应该注意的一些实际问题。

【关键词】回归测试 测试用例 基线测试用例库

一、概述

在软件生命周期中的任何一个阶段,只要软件发生了改变,就可能给该软件带来问题。软件的改变可能是源于发现了错误并做了修改,也有可能是因为在集成或维护阶段加入了新的模块。当软件发生变化时,我们就必须重新测试现有的功能,以便确定修改是否达到了预期的目的,检查修改是否损害了原有的正常功能。同时,还需要补充新的测试用例来测试新的或被修改了的功能。为了验证修改的正确性及其影响就需要进行回归测试。回归测试在软件生命周期中扮演着重要的角色,因忽视回归测试而造成严重后果的例子不计其数,导致阿里亚娜5型火箭发射失败的软件缺陷就是由于复用的代码没有经过充分的回归测试造成的。回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。在渐进和快速迭代开发中,新版本的连续使回归测试进行的更加频繁,而在极端编程方法中,更是要求每天都进行若干次回归测试。因此,通过选择正确的回归测试策略来改进回归测试的效率和有效性是非常有意义的。

二、回归测试策略

对于一个软件开发项目来说,项目的测试组在实施测试的过程中会将所开发的测试用例保存到“测试用例库”中,并对其进行维护和管理。当得到一个软件的基线版本时,用于基线版本测试的所有测试用例就形成了基线测试用例库。在需要进行回归测试的时候,就可以根据所选择的回归测试策略,从基线测试用例库中提取合适的测试用例组成回归测试包,通过运行回归测试包来实现回归测试。保存在基线测试用例库中的测试用例可能是自动测试脚本,也有可能是测试用例的手工实现过程。回归测试需要时间、经费和人力来计划、实施和管理。为了在给定的预算和进度下,尽可能有效率和有效力地进行回归测试,需要对测试用例库进行维护并依据一定的策略选择相应的回归测试包。

(一)测试用例库的维护。为了最大限度地满足客户的需要和适应应用的要求,软件在其生命周期中会频繁地被修改和不断推出新的版本,修改后的或者新版本的软件会添加一些新的功能或者在软件功能上产生某些变化。为了保证测试用例库中测试用例的有效性,必须对测试用例库进行维护。同时,被修改的或新增添的软件功能,仅仅靠重新运行以前的测试用例并不足以揭示其中的问题,有必要追加新的测试用例来测试这些新的功能或特征。因此,测试用例库的维护工作还应包括开发新测试用例,这些新的测试用例用来测试软件的新特征或者覆盖现有测试用例无法覆盖的软件功能或特征。测试用例的维护是一个不间断的过程,通常可以将软件开发的基线作为基准,维护的主要内容包括这几个方面:删除过时的测试用例、改进不受控制的测试用例、删除冗余的测试用例 、增添新的测试用例。

(二)回归测试包的选择。在软件生命周期中,即使一个得到良好维护的测试用例库也可能变得相当大,这使每次回归测试都重新运行完整的测试包变得不切实际。一个完全的回归测试包括每个基线测试用例,时间和成本约束可能阻碍运行这样一个测试,有时测试组不得不选择一个缩减的回归测试包来完成回归测试。回归测试的价值在于它是一个能够检测到回归错误的受控实验。当测试组选择缩减的回归测试时,有可能删除了将揭示回归错误的测试用例,消除了发现回归错误的机会。然而,如果采用了代码相依性分析等安全的缩减技术,就可以决定哪些测试用例可以被删除而不会让回归测试的意图遭到破坏。

全文阅读

浅谈软件测试中回归测试

摘要:回归测试尽管繁琐、重复,但这是一种必须要做的测试,是否采取自动化测试工具,或是其他测试方式,是本文要讨论的问题。本文就回归测试的本质出发,探讨其关键性、重要性及其测试方法,有其学术和现实意义。

关键词:软件测试;回归测试

中图分类号:TP311.52文献标识码:A文章编号:1007-9599 (2011) 03-0000-01

Regression Testing of Software Testing

Fan Xuedong

(Xi'an Foreign Affairs University,Xi'an710077,China)

Abstract:Regression testing despite the tedious,repetitive,but it must do the test,whether to take automated testing tools,or other test method is the problem discussed in this article.In this paper,the nature of regression testing,discusses the key,importance and testing methods,have their academic and practical significance.

Keywords:Software testing;Regression testing

全文阅读

大型软件回归测试方法研究

摘要:程序被修改后,要保证程序能正常运行并且修改不能给程序质量带来任何负面影响,回归测试是必要的。大型软件系统结构复杂,构成要素多,如何做到不遗漏功能点同时降低软件回归测试代价,本文结合业务规则模型、修改影响分析和成本风险管理等技术提出了一种自动化回归测试方法。

关键词:回归测试风险管理修改影响分析

1、引言

在软件测试过程中,由于需要对软件进行修改,修改后的程序必须重新测试,以确保程序的修改是否达到了目的和是否引入了新的错误,这种测试就是回归测试。软件的变化可能是源于发现了错误并做了修改,也有可能是因为在集成或维护阶段加入了新的模块。当软件中所包含的错误被发现时,如果对错误的跟踪管理系统不够完善,可能会遗漏对这些错误的修改;而开发人员对错误理解的不够透彻,也可能导致所做的修改只修正了错误的外在表现,没有修改错误本身,甚至可能产生副作用,从而导致软件未被修改的部分又产生新的问题,使本来正常的功能产生错误。同样,在有新代码加入软件的时候,除了新加入的代码中有可能含有错误外,新代码还有可能对原有的代码带来影响。因此,每当软件发生变化时,我们就必须重新测试现有的功能,以便确定修改是否达到了预期的目的,检查修改是否损害了原有的正常功能。因此需要进行回归测试。

回归测试是一种代价较高,比较耗时的测试方法,然而又是必不可少的。大型软件通常规模大,系统结构复杂,构成要素多、层次多,在渐进和快速迭代开发中,新版本的连续使回归测试的实施更加频繁。因此,通过选择正确的回归测试策略来改进回归测试的效率和效果,减小回归测试代价是非常有意义的。

2、大型软件回归测试面临的问题

大型软件回归测试面临两个重大难题:一是系统变更引起的回归测试范围无法准确界定;二是参数组合引起的测试用例急剧膨胀,无法在较短时间内以合理成本完成最低覆盖率要求的回归测试。而且大型软件回归测试往往受到测试时间和测试环境条件的约束,而测试的工程性质又决定了它不可能达到理论上的完整。

在有限的时间和资源条件下,为了更合理的规划和安排测试工作,在测试计划的制定阶段需要一个决策机制能够在资源约束,如时间、人力、成本的前提下基于风险管理和测试成本预算进行决策。

全文阅读

基于软件架构的回归测试

[摘 要] 当对可靠的系统结构化的时候,除了通过构建的方式来改善系统的可靠性(如容错和多余的机制)外,对于系统的评估也同样重要,并由此来认可系统的可靠性。现有很多不同的方法来评估系统的可靠性,测试因而成为一种重要的方式。目前关于软件结构测试的工作表明,应用一致性测试技术产生可信度是可能的,这种可信度是在软件架构中可期望的行为,指定了架构描述语言。这项工作中,探讨了为了减少重复测试而修改系统的费用,回归测试可以怎样被系统化地应用在软件架构层面上,评估了进化的系统的回归测试性。考虑了评估“自顶向下”和“自底向上”等进化方法,是否通过简单修改就能够符合初始的架构,这样的修改是否能够符合进化的架构。将回归测试应用在软件架构层面上将有助于评估和认定其是否具有更高的可信度。

[关键词] 软件架构(SA); 可靠性系统; 回归测试; 分析

doi : 10 . 3969 / j . issn . 1673 - 0194 . 2012 . 13. 031

[中图分类号] TP311.5 [文献标识码] A [文章编号] 1673 - 0194(2012)13- 0055- 02

1 回归测试背景

首先由于软件总在时刻变化着,软件的不断演化,例如软件的开发、维护、升级都需要修改一些软件的结构和代码,而人类对软件的要求也从未停止过。软件的每次改变都会引入潜在的风险,这是软件演化的缺陷。其次,人类对软件变化有了一些新的要求,关心软件修改后的功能是否达到预期以及原有的功能是否被损害[1-3]。

针对以上要求,选择使用回归测试来解决。回归测试是一种验证已变更系统的完整性与正确性的测试技术。

2 回归测试的定义及意义

全文阅读

回归测试用例选择方法探讨

摘 要

回归测试是软件测试的一种重要部分,回归测试中测试用例集的选择关系到软件最终的质量和项目开销。文章在分析了回归测试中测试用例选择策略的基础上,提出了一种新的测试用例选择策略,从程序改进的代码依赖入手,通过分配风险因子给出测试用例选择的权重,从而选择恰当的测试用例集,进行回归测试,取得了良好的实验结果。

【关键词】软件工程 回归测试 测试用例

1 引言

回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。回归测试是软件测试中一项操作频繁并且花费巨大的阶段。由于程序版本不断更迭,导致y试用例的数量也在不断增多,有研究表明,回归测试的开销在整个软件测试中占有很大的比重。回归测试大多要通过两种方式去执行:一类借助于工具完成自动化测试,一类是手动完成。从回归测试的计划和策略上讲,一般有以下两种方法,全部执行或者部分执行。执行全部测试的开销很大,在项目中很难做到,部分执行时,测试的效率和质量会因为用例的选择不同而差别很大。对于测试用例的选择,目前常用的方法是按照测试用例的优先级进行。测试用例优先级技术着重于研究回归测试中测试用例选择策略的问题。这种技术认为,不同测试用例对于测试目标的覆盖不同,因此将不同的测试用例进行比较和排序,然后优先执行相对重要的测试用例。研究人员通过实验表明,按照优先级选择测试用例可以很好地提高回归测试的效率,能够以尽量小的开销完成预期的覆盖率。

2 基于风险的权重分配模型

基于风险的权重分配模型在进行测试用例优先级分析时引入风险分析,给不同测试用例分配风险因子,进行权重计算。对于程序,不同的改到所带来的风险是不一样的,分析出改动所带来的风险以后,在易出错的地方进行回归测试以保证原有的功能没有被新的变化影响。影响产品质量的权重参数很多,在本文提到的模型中,主要考虑功能的依赖关系,功能的复杂度,需求变更等方面。

在设计测试用例时,将测试用例和与之关联的功能特性之间的关系形成二维表格放入数据库中,表结构如表1所示,其中,bug数目会随着动态测试过程进行记录。

全文阅读

回归测试中机器挑选用例方法研究

【摘要】随着测试的发展,这个领域产生了两个大的趋势。趋势一,智能化。传统的自动化方法:首先转自动化测试代码的过程费时费力,并且在测试执行过程中,需要反复的人工干预。趋势二,小规模测试替代大规模测试。测试规模越来越小,测试活动对发现bug的有效性越来越高;在传统的方式下,全体测试用例执行的方法,逐步的为针对代码变动而开展的小型测试活动所代替。本文的主要工作是:提出对于回归测试,使用机器挑选的方法。

【关键词】机器学习;回归测试;测试用例

1.引言

机器学习(Machine Learning, ML)是一门交叉型学科,它涉及到了多个领域,包括:概率与统计学、高等数学、逼近和凸分析等。机器学习人类的学习过程和学习行为,并且加以计算机的模拟或实现。在机器学习过程中,机器本身了获取新的知识或技能。

在机器学习和人工智能的壮大发展的时代背景,对传统的测试工作提出了一些新的挑战。研究通过机器学习的方法,提升传统的测试工作的效率,进一步的提高整个软件开发活动的劳动生产率。

2.软件测试工程的研究综述

软件测试是用于分析是否程序出现错误的过程,测试使用人工操作或者软件自动运行的方式。每个不同的软件有对自身错误的定义方式:通常是软件需求规格中定义了预期结果。

软件测试分类

全文阅读

基于交互的回归测试集优化方法

摘要:为了降低回归测试成本,研究人员已经提出许多优化测试用例的技术,旨在降低一些标准测试用例的大小。但随着软件开发浮现的新趋势,如软件开发的复杂性和增加使用商业成品组件等,现有的测试用例优化技术面临新的挑战。本文提出一个新的优化测试用例算法,并通过实验说明了新的优化测试用例的方法不受这些挑战的影响。结果表明,该方法在减少软件集成测试的测试用例中具有良好的潜力。

关键词:交互 测试用例 优化 故障检测率

中图分类号:TP311 文献标识码:A 文章编号:1007-9416(2012)05-0201-03

1、引言

在软件开发和维护过程中,随着软件模块化水平的提高,软件的回归测试显得越加重要。然而,大规模、高频率的修改软件也使得回归测试的成本不断增加。因此,解决这一矛盾的重要方案就在于优化测试用例[1]。优化测试用例是指在保持一个较高的、稳定的故障检测率的基础上减少一组测试用例中案例的数量。回归测试中传统优化用例的方法将源码分成两个部分,一部分用于实际测试,而另外一部分则用于软件模块之间的交互。但传统的优化测试用例的方法正面临着新的挑战。例如,现有商业组件COTS的源码通常很难获取得到。另外,对大型软件的源码覆盖率进行分析不仅难度大,而且成本太高。这些问题都限制了现有优化用例方法的使用。因此有必要提出一个无需访问源码的测试用例优化方法。

本文提出了一种基于回归测试的测试用例优化方法。该方法包含一组接口函数,在软件执行过程中,通过使用该方法,可以分析出模块之间的交互过程。该方法不需要对函数源代码访问,也不需要监控模块交互过程,更加不需要对其他模块进行源代码分析,从而显著地增加了该方法的适用范围。

2、优化算法的描述

为了解决现有测试优化方法的不足之处,本文提出了一个新的测试用例优化算法。该算法是一种基于两个软件模块间交互过程的回归测试方法。该方法是对一个测试用例间模块交互“行为”的模拟,不需要访问或监控源代码。

全文阅读

基于神经网络的回归测试用例优化研究

摘 要: 回归测试是指修改了源代码后,重新进行测试以确认已发现的缺陷是否修复和检测修改是否引入了新的错误或导致其他代码产生错误,在测试过程中占有很大的工作量比重。通过分析神经网络的基本原理,并将BP算法的思想引入到回归测试的用例集选取中,介绍了回归测试用例包选取的算法,通过样本训练,筛选出代码改动后可能影响到的功能,从而可以筛选出优先级别较高的用例。最后,通过测试实践的积累,总结了一套高效易行的回归测试策略。

关键词: 回归测试; 测试用例; 神经网络; BP网络

中图分类号: TN711?34 文献标识码: A 文章编号: 1004?373X(2015)19?0114?03

Abstract: Regression testing means after modifying the source code, re?testing to confirm whether the discovered defect is repaired, and whether detection and modification have brought in a new bug or caused the errors in other codes which possesses a large proportion of the workload during testing procedure. The fundamental principle of neural network is analyzed, and the thought of BP algorithm is introduced into the case set selection of regression testing. The algorithm to select regression testing case package is presented. The functions which may be influenced by code modification are screened out by samples training, and the higher priority use case can be screened out. A set of regression testing strategy with high efficient and easy operation was summed up through the accumulation of testing practice.

Keywords: regression testing; testing case; neural network; BP network

0 引 言

软件分析,设计过程中难免有各种各样的错误,需要通过测试查找错误,以保证软件的质量。软件测试是由人工或计算机来执行或评价软件的过程,验证软件是否满足规定的需求或识别期望的结果和实际结果之间有无差别。大量统计资料表明,软件测试工作量往往占软件开发总量的40%以上。而回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。在渐进和快速迭代开发中,新版本的连续使回归测试变得更加频繁,而在极端编程方法中,更是要求每天都进行若干次回归测试。因此,研究回归测试方法,尽可能地将软件存在的问题找出来,对保证软件质量和提升测试工作效率都是非常有意义的。

1 相关工作

全文阅读

一种基于数据源分解判定业务回归测试范围的分析方法

摘 要:基于数据源分解判定业务回归测试范围是通过建立回归测试范围数据分析模型,对上线的软件版本实际变更内容与全业务功能的关联影响量化分析,获得变更内容的影响范围,为业务回归测试的范围确定提供科学、有效的数据支撑。

关键词:数据源分解 回归测试 需求版本 数据实体

中图分类号:TN967 文献标识码:A 文章编号:1674-098X(2016)12(a)-0096-02

吉林移动的业务运营支撑系统规模庞大、结构复杂、内部的关联关系复杂。由于业务发展变化迅速,信息化系统也会做频繁的版本变更,对系统变更的质量保障至关重要。

对系统版本变更的交付测试验证,是系统质量保障的重要手段,不仅仅要测试当前变更的功能,还要分析当前变更的功能有哪些关联影响,对于被影响的业务、功能,要执行业务回归测试,以减少系统上线的质量漏洞。

1 现有判定业务回归测试范围方法存在的缺点

目前业务回归测试范围的确定主要依赖于测试人员积累的经验,根据经验判断要做哪些相关业务、功能的回归测试。这些经验缺少基于可靠数据的量化分析。

通常系统版本上线时间要求都非常紧,不可能做全面的业务回归测试,而业务回归测试范围确定不准确,会导致质量验证的漏洞,严重影响系统可靠性。

全文阅读

试用自回归模型预测股票市场的收益

【摘要】很多股民梦寐以求的是能够预测未来的收益,这样他们就能够致富,可是他们大多数对于股市的了解不是很深,所以赚到钱的也不多。本文利用过去的信息来预测未来的收益,讲道理的话,如果股市是强势有效的,可能这样的的预测效果会很糟糕。我将使用日数据进行建模,所以即使在有效率的市场中我估计我也可能会做出有一定预测能力的模型来,因为使用日数据,言外之意就是给市场的反应时间特别短。如果大家能够了解,单单使用收益的过去值去预测未来,不是很靠谱的话,那么应该更依靠真实的动态因果关系来对未来做估计。

【关键词】自回归 F统计量 显著水平 预测

很多人梦寐以求的是能够预测明天股票市场的收益,这样他就可以轻松致富了。但是从专业角度考虑就是,如果人们能够对股市未来的超额收益做出预测,就说明市场是无效的,或效率不高的,打个比方最近央行降息,可能会对股市产生积极作用,如果市场效率不高,市场在一定时期内会为了消化这个信息而产生收益的持续相关性,这样人们就可以利用前期的收益信息来预测未来。如果市场效率很高,市场就会在短时间内消化信息,导致人们不能利用过去的信息来预测未来。

下面关于这个问题我将展开讨论,我运用的是我国股市2014年12月18日到2015年10月19日的收盘价数据,总共有201个交易日,所以下图的横坐标的最后一个为201,下面是我给出的它的走势图。

对上证指数的ADF检验的P值为0.6210,所以在10%的显著水平下不能决绝具有单位根的原假设,所以我认为上证指数具有随机游走趋势。

如果人们想利用上面的数据建立一个自回归模型,那么这个模型的预测能力可能不是很好,因为在随机游走序列中大家可以直接拿昨天的数据作为今天的预测值,这样效果会更好些。同时,如果一组数据是随机游走的,那么关于参数的最小二乘统计量的统计检验是不可靠的,如果模型是自回归的,那么其参数的最小二乘估计也是非一致的,那是因为非平稳序列的数据的自回归模型的参数有特殊分布(和正态分布不同)。另外大家要考虑到,人们总是希望能够预测股市的未来收益,而不是股市的水平值。所以基于以上两点理由,应该对数据进行差分,使其变为平稳序列,这样就可以利用最小二乘方法进行建模了。

在建立自回归模型之前,请读者先看一下一阶差分之后的数据,此时的数据反应的是股市的收益而不是水平值,由于差分,数据由201个变为200个了。

直观地看这个图,读者可以发现我们不能像在水平值图里的那样找到什么趋势,未来的收益好像难以预测,是的,如果未来那么容易预测,大家早就可以致富了。这个反映各期收益的图才是真正对于你赚钱与否有意义的图,那个反映水平值的图,多少带有欺骗性。

全文阅读