基于TestBed的软件动态测试分析

合集下载

动态分析在软件测试中的应用

动态分析在软件测试中的应用

动态分析在软件测试中的应用在软件测试中,动态分析是一种关键的技术,能够帮助开发团队发现和解决软件中的错误和缺陷。

动态分析技术基于运行时数据,通过检测和监视软件的执行过程,帮助开发人员理解和优化软件的行为。

本文将介绍动态分析在软件测试中的应用,并探讨其优势和限制。

动态分析在软件测试中能够帮助开发人员发现潜在的错误和缺陷。

通过监视程序的运行过程,动态分析能够检测到不正确的操作、内存泄漏、资源竞争等问题。

这些问题在静态分析(分析源代码)中可能未被检测到,因为静态分析无法模拟和捕获软件的真实执行环境。

动态分析通过执行软件,可以捕获到运行时的状态和行为,从而提供更准确的检测和分析结果。

动态分析还可以帮助开发人员理解和优化软件的行为。

通过动态分析,开发人员可以观察程序的执行路径、函数调用关系和数据流转情况。

这些信息对于理解软件的内部工作原理和优化性能至关重要。

通过了解程序的执行过程,开发人员可以做出有针对性的改进,提高软件的效率和稳定性。

动态分析在软件测试中还可以帮助开发人员生成测试用例和执行测试。

动态分析技术可以根据监视程序的执行情况,自动生成具有高覆盖率的测试用例。

这些测试用例能够模拟和复现真实的运行场景,提高软件测试的质量和效率。

同时,动态分析还可以帮助开发人员执行测试,评估软件在不同输入和环境下的行为和性能。

然而,动态分析在软件测试中也存在一些限制。

动态分析需要耗费大量的计算资源和存储空间。

对于大型的软件系统,动态分析可能会导致测试时间很长,甚至超过开发人员的耐心和时间限制。

动态分析无法覆盖所有的测试场景。

由于软件的执行路径和输入参数可能有无穷多种组合,动态分析只能检测到有限的情况。

因此,开发人员仍然需要结合其他测试技术,如静态分析和模糊测试,来完善软件测试的覆盖度。

总的来说,动态分析在软件测试中发挥着重要的作用。

它能够帮助开发人员发现和解决错误和缺陷,理解和优化软件的行为,生成测试用例和执行测试。

软件测试中的动态测试技术

软件测试中的动态测试技术

软件测试中的动态测试技术在软件测试中,动态测试技术被广泛应用来评估软件系统的功能、性能和可靠性等方面。

动态测试是指在实际运行软件时,通过输入测试数据并观察程序的输出行为来验证程序的正确性和性能。

一、单元测试单元测试是动态测试中最基础也是最重要的一种技术。

它主要用于验证程序中的最小单元——函数、方法和模块的正确性。

通过对这些小单元进行详细的测试,可以确保整个软件系统在集成和运行时能够正常工作。

单元测试可以通过编写测试用例来模拟各种情况,并对程序的边界条件进行测试,以达到全面评估软件功能的目的。

二、集成测试集成测试是将已经通过单元测试的模块组合起来进行测试,以验证它们在协同工作时的正确性和稳定性。

在集成测试中,我们主要关注模块间的接口和数据交互,确保各个模块能够正确地传递数据和交互信息。

集成测试可以通过构建适当的测试环境,并模拟真实的使用场景,以评估整个软件系统在不同情况下的表现和可靠性。

三、系统测试系统测试是对整个软件系统进行的测试,旨在评估系统在不同环境和条件下的性能和可靠性。

在系统测试中,我们通常会模拟真实的用户行为,通过输入各种数据和操作来测试系统的稳定性和响应能力。

系统测试可以帮助我们发现潜在的错误和性能问题,并评估软件系统是否满足用户需求和期望。

四、性能测试性能测试是一项重要的动态测试技术,用于评估软件系统在不同负载和压力下的性能表现。

性能测试包括负载测试、压力测试和稳定性测试等,旨在验证系统在正常和极限情况下的性能和稳定性。

通过性能测试,可以发现系统在并发用户和高负载情况下的处理能力,以及资源占用情况和响应时间等指标,从而为系统的性能调优提供依据。

总结:软件测试中的动态测试技术是保证软件质量的重要手段之一。

通过单元测试、集成测试、系统测试和性能测试等动态测试技术,可以全面评估软件系统的功能、性能和可靠性等方面。

同时,我们还需要根据实际情况选择合适的测试工具和方法,并结合其他测试技术如静态测试等,以提高测试效率和准确性。

浅谈Testbed在嵌入式软件单元测试的应用

浅谈Testbed在嵌入式软件单元测试的应用

浅谈Testbed在嵌入式软件单元测试的应用嵌入式软件作为嵌入式系统的重要组成部分,嵌入式软件质量问题可能会带来设备的损坏和人员的伤亡,因而用户对其质量有较高的要求。

软件测试是对软件质量检验的一个非常重要的手段。

而软件测试中动态测试最基础的测试就是单元测试。

如何开展单元测试以及如何提高单元测试的效率是一个值得研究的问题。

1 软件单元测试的要求及重点软件单元测试是对软件基本组成单元进行测试,测试软件单元是否正确地实现规定的功能,是否满足软件性能和接口要求。

并验证程序与详细设计说明的一致性。

因此在单元测试时,需要模拟被测单元与其他模块之间的交互,开发驱动模块和桩模块两种辅助模块,构建一个可执行的环境,驱动模块用于模拟被测单元的上层模块,测试执行时由驱动模块调用被测单元使其运行;桩模块用于模拟被测单元在执行过程中所调用的模块。

单元测试重点考虑的测试类型有:(1)接口测试。

接口测试主要检查实参与形参的数目是否相等、实参与形参的属性是否匹配、实参与形参的单位是否一致、传到被调用模块的实参的属性是否与形参的属性匹配、是否把常量当作变量传递等内容。

(2)功能测试。

功能测试主要是对照软件单元的设计说明,验证软件是否完成了所需的功能。

(3)重要执行路径测试。

应设计测试用例以发现错误的计算、不正确的比较和不正常的控制流向等错误。

在计算中比较常见的错误是:误解或错误处理算术运算的优先次序、混用不同类的操作、计算精度不够等。

另外在控制软件执行流程的比较操作中比较常见的错误有:不同数据类型的比较、不正确的逻辑操作符或不正确的优先次序、因精度不够使本应相等的数不相等(如浮点数)等。

(4)软件单元的局部数据结构测试。

软件单元的局部数据结构是一个主要的错误来源,应设计测试用例来发现不正确的或不一致的数据说明、初始化有错或没有赋初值、不正确的变量名、不一致的数据类型、上溢/下溢或引用错误等类型的错误。

(5)错误处理路径测试。

一般软件错误处理路径测试应考虑下面几种可能的错误:对错误的描述不易理解、指出的错误并不是所遇到的错误、出错时还没有进行出错处理就先进行系统干预、错误边界条件的处理不正确、描述错误的信息不正确从而不足以确定出错的原因等。

软件测试中的动态测试技术

软件测试中的动态测试技术

软件测试中的动态测试技术软件测试是软件开发过程中不可或缺的一环,它的目的是验证和验证软件系统的正确性和可靠性。

在测试的过程中,我们常常使用动态测试技术来检查程序在运行时的行为。

本文将讨论软件测试中的动态测试技术,包括黑盒测试、白盒测试和灰盒测试。

1. 黑盒测试黑盒测试是一种基于功能需求的测试方法,测试人员只需要关注输入和输出,而不需要关心内部实现细节。

这种测试技术主要用于检查系统是否按照规格说明书的要求工作。

黑盒测试的一个重要方法是边界值分析,在此方法中,测试人员选择输入的边界值,并检查系统对这些边界值的处理。

举例来说,假设我们正在测试一个银行系统的转账功能。

在黑盒测试中,我们可以输入不同金额的转账,如小于账户余额、等于账户余额和大于账户余额,以确保系统能够正确处理这些情况。

2. 白盒测试白盒测试是一种基于程序内部结构的测试方法,测试人员需要了解系统的内部逻辑和算法。

在白盒测试中,测试人员可以检查程序中的语句覆盖率、分支覆盖率和路径覆盖率等指标来评估测试的质量。

白盒测试的一个重要技术是代码注入,测试人员可以在程序中插入特定的代码来检查系统的响应和输出。

比如,我们测试一个排序算法的实现。

在白盒测试中,我们可以检查算法对不同大小的输入数据的排序情况,以及各种边界情况的处理。

3. 灰盒测试灰盒测试是黑盒测试和白盒测试的结合,综合了功能需求和内部结构的测试方法。

灰盒测试测试人员需要有一定的系统内部知识,但不需要详细了解每个细节。

灰盒测试通常通过关注系统的功能特性和结构特性来设计测试用例。

举例来说,假设我们测试一个电子商务网站的购物功能。

在灰盒测试中,我们可以结合用户的需求和系统的内部逻辑来设计测试用例。

我们可能会检查系统对购物车的处理、订单的生成和支付过程的处理等。

总结:软件测试中的动态测试技术主要包括黑盒测试、白盒测试和灰盒测试。

黑盒测试关注系统的功能需求,通过输入输出验证系统的正确性;白盒测试关注系统的内部结构,通过检查代码覆盖率和路径覆盖率等指标评估测试质量;灰盒测试结合了功能需求和内部结构,通过设计合适的测试用例来验证系统的正确性和可靠性。

软件测试中的静态和动态分析方法

软件测试中的静态和动态分析方法

软件测试中的静态和动态分析方法在软件开发的过程中,进行测试是非常重要的一环。

测试可分为静态分析和动态分析两种方法。

本文将详细介绍软件测试中的静态和动态分析方法。

静态分析是指在不运行程序的情况下,通过对软件代码、设计文档和需求规格进行检查和分析,来发现潜在的问题。

静态分析方法主要通过以下几种方式来实现。

首先,代码审查是一种常见的静态分析方法。

代码审查通过对软件代码的仔细检查,发现并更正其中的错误和缺陷。

代码审查可以分为个人审查和团队审查两种形式,其中个人审查是由开发人员自己负责检查自己的代码,团队审查是由团队成员相互审查彼此的代码。

代码审查可以帮助开发人员及时纠正错误,提高代码的质量和可靠性。

其次,静态分析工具也是进行代码静态分析的重要手段。

静态分析工具可以自动地对代码进行检查,发现其中的潜在问题,并生成相应的报告。

这些工具可以帮助开发人员快速发现代码中的潜在问题,提高软件质量。

常见的静态分析工具有Lint、PMD等。

此外,软件设计文档和需求规格也是进行静态分析的重要依据。

通过对软件设计文档和需求规格进行仔细检查,可以发现其中的逻辑错误和不一致之处。

静态分析通过对文档的分析来发现潜在的问题,并及时进行修正,以确保软件设计和需求的正确性。

与静态分析相对应的是动态分析方法。

动态分析是在软件运行的过程中,通过监视软件的行为和输出结果来发现问题。

动态分析方法主要包括以下几种形式。

首先,黑盒测试是一种常见的动态分析方法。

黑盒测试是基于对功能需求的理解和分析,设计测试用例,然后运行软件并观察其输出结果来验证是否符合预期。

黑盒测试可以帮助发现功能缺陷和逻辑错误,并检验软件系统是否符合用户需求。

其次,白盒测试是另一种常见的动态分析方法。

白盒测试是基于对软件内部结构的理解和分析,设计测试用例,并通过监视程序的执行路径来判断覆盖程度和代码执行情况。

白盒测试可以帮助发现代码中的逻辑错误、边界问题和性能问题等。

此外,动态分析还包括性能测试和安全测试等方法。

Testbed中文简介

Testbed中文简介

LDRA Testbed/TBrun 软件测试产品功能介绍一、静态分析功能1、编程标准编程标准验证是高可靠性软件开发不可缺少的软件质量保证方法,使用LDRA Testbed 自动地验证应用软件是否遵循了所选择的编程规则。

编程规则由软件项目管理者根据自身项目的特点并参考现有的成熟的软件编程标准制定,如DERA(欧洲防务标准),MISRA(汽车软件标准),LDRA Testbed依据此规则搜索应用程序,并判断代码是否违反所制定的编程规则。

LDRA Testbed报告所有违反编程规则的代码并以文本方式或图形反标注的方式显示。

测试人员或编程人员可根据显示的信息对违反编程规则的代码进行修改。

2、软件度量分析、质量标准验证对于软件开发工程师、项目负责人及高级管理者来说,软件质量的管理与监控是非常困难的且费时。

LDRA Testbed 很好地解决了这一问题,使得管理者很容易地收集正在开发的软件系统的相关信息并判断软件是否满足软件质量标准要求,从而达到对软件项目的质量跟踪与控制,用户可基于现行软件标准自行定义适合本系统或项目的软件质量模型。

LDRA Testbed 支持下列主要软件度量元分析:* 控制流结点度量(Control Flow Knots);* LCSAJ 密度度量(LCSAJ Density);* 扇入/扇出度量;* 循环深度度量;* McCabe 圈复杂度;* Halstead软件科学度量;* McCabe Essential复杂度;* 注释行度量;* 代码可达性度量;* 等等。

3、静态数据流分析LDRA Testbed 分析软件中全局变量、局域变量及过程参数的使用状况,并以图形显示、HTML或ASCII文本报告方式表示,清晰地识别出变量使用引起的软件错误,此种方法既可使用于单元级,亦可使用于集成级、系统级。

研究结果表明这种技术,即为软件测试工程师所熟知的数据流分析技术(Data Flow Analysis),是查找软件错误最有效的途径或方法之一。

基于TESTBED的嵌入式软件测试方法

基于TESTBED的嵌入式软件测试方法

基于TESTBED的嵌入式软件测试方法发布时间:2021-12-04T10:59:19.632Z 来源:《中国科技信息》2021年11月上31期作者:王新[导读] 软件研制过程中为保证软件质量,一般都会开展不同级别的软件测试,测试作为重要的验证方法普遍使用,利用测试工具进一步提高测试的效率及保证测试的有效性。

本文通过基于VxWorks操作系统的嵌入式软件的测试描述,提供一种使用TESTBED开展软件测试的方法。

陕西宝成航空仪表有限责任公司王新陕西宝鸡 721006摘要:软件研制过程中为保证软件质量,一般都会开展不同级别的软件测试,测试作为重要的验证方法普遍使用,利用测试工具进一步提高测试的效率及保证测试的有效性。

本文通过基于VxWorks操作系统的嵌入式软件的测试描述,提供一种使用TESTBED开展软件测试的方法。

关键词:软件测试 VxWorks TESTBED 引言随着系统集成度越来越高,软件在系统中占比不断提高,复杂度增大,软件研制成本不断增大。

软件测试作为保证软件质量的重要手段,贯穿于整个研制过程中。

利用测试工具可配置、自动化等手段可解放开发人员和测试人员,提高测试效率和保证测试质量。

1软件概述本软件运行于PowerPc处理器,利用实时操作系统VxWorks多任务调度策略[1]实现数据采集、数据处理和数据输出功能,集成开发环境为Wind River Workbench 3.2。

2TESTBED概述TESTBED作为专业性测试工具,支持Workbench、Keil、Borland C/C++3.1等多种编译运行环境下的软件测试工作,广泛应用于航空、航天、工业等领域。

其提供编程标准验证、软件度量分析、质量标准验证、静态数据流分析等静态分析;源代码自动插装、覆盖率分析、断言分析、测试用例分析等动态分析功能;并提供图形化结果显示[2],充分满足各种测试需求。

3软件测试概述软件测试目的为验证软件满足质量特性要求,发现软件错误,为软件产品质量的评价提供依据。

软件测试中的静态和动态分析

软件测试中的静态和动态分析

软件测试中的静态和动态分析在软件开发的过程中,测试是一项至关重要的工作。

通过测试,我们能够发现软件中的缺陷和问题,并及时解决,保证软件的质量和可靠性。

在软件测试中,静态和动态分析是两个基本的测试方法,它们通过不同的方式对软件进行分析和评估。

本文将介绍软件测试中的静态和动态分析方法,并探讨它们的优缺点及应用场景。

一、静态分析静态分析是一种通过对源代码、设计文档、规范和编码规则进行检查和分析的方法。

它主要关注代码的结构、语法和逻辑错误,而不需要实际运行程序。

在静态分析中,我们使用各种工具和技术来自动化检查和评估代码的质量。

以下是几种常见的静态分析方法:1. 代码审查代码审查是一种基于人工的静态分析方法,通过对代码进行系统性和结构化的检查,以发现潜在的错误和问题。

代码审查可以分为两种方式,一是以小组方式进行,多人共同审查代码,发现问题并进行讨论;另一种是通过使用代码审查工具进行自动化的分析和评估。

代码审查能够有效地发现代码中的潜在问题,提高代码的质量。

2. 静态代码分析工具静态代码分析工具是一种自动化的静态分析方法,可以通过扫描源代码来检测代码中的缺陷和问题。

这些工具能够检测出潜在的安全漏洞、内存泄漏、死代码等问题。

常见的静态代码分析工具有PMD、FindBugs、CheckStyle等。

使用这些工具,能够大大提高代码的质量和可靠性。

静态分析的优点是能够在早期发现问题,减少后期修复问题的成本。

它可以有效地发现潜在的错误和问题,提高代码的质量和可维护性。

然而,静态分析也存在一些局限性。

它无法覆盖所有的代码路径,有可能遗漏一些潜在的问题。

此外,静态分析只能检测代码的语法和结构问题,无法检测运行时错误。

二、动态分析动态分析是通过运行程序并监控其行为来进行的分析方法。

它主要关注程序的运行时行为,通过观察程序的运行结果来判断软件的正确性和可靠性。

以下是几种常见的动态分析方法:1. 单元测试单元测试是一种最常见的动态分析方法,它通过对软件的各个功能模块进行独立测试,以确保每个模块的功能正确。

基于LDRA Testbed软件的单元测试

基于LDRA Testbed软件的单元测试

基于LDRA Testbed软件的单元测试单元测试是软件开发过程中不可或缺的一环,它能够发现代码中的错误和缺陷,提高软件质量和可靠性。

LDRA Testbed软件是一个集成开发环境(IDE),能够帮助开发人员进行单元测试和代码分析。

本文将介绍LDRA Testbed软件的基本原理、功能、应用和优点。

一、基本原理LDRA Testbed软件的基本原理是将代码分析为结构章程(Structural Coverage),并将其转换为函数测试用例。

开发人员可以使用该软件生成测试用例,以测试单元代码是否符合预期要求。

这些测试用例能够包含各种测试类型,如基本路径覆盖、条件覆盖、分支覆盖等。

通过这些测试用例,开发人员能够发现代码中的错误和缺陷,提高软件质量和可靠性。

二、功能LDRA Testbed软件能够实现以下功能:1.静态分析:能够分析代码并检查其是否符合规范。

这个过程能够发现一些潜在的安全漏洞和重构机会。

2.代码覆盖率:能够帮助开发人员检查测试用例是否完全覆盖单元代码,并生成测试报告。

3.自动化测试:能够快速、准确地测试代码,提高软件生产效率。

4.符号执行:通过符号计算机程序运行,能够模拟软件运行过程,发现软件问题。

5.程序执行跟踪:能够记录代码执行时的控制流,与图形界面结合,更容易定位问题。

6.缺陷管理:能够管理问题和工件,建立组织工件和缺陷报表的能力。

三、应用LDRA Testbed软件适用于以下场景:1.嵌入式开发:对于嵌入式系统,测试时要求测试代码的完整性、效率、可靠性和正确性,LDRA Testbed软件能够帮助开发人员实现这些要求。

2.医疗设备:对于一些医疗设备,在测试代码时要求高度安全性和健壮性,使用LDRA Testbed软件可以有效提高测试效率。

3.汽车电子:对于汽车电子产品,要求测试涵盖复杂的逻辑,同时需要高效且可靠。

使用LDRA Testbed能够加快开发和测试速度,帮助开发人员更好地实现目标。

基于Testbed_的单元测试方法及实例分析

基于Testbed_的单元测试方法及实例分析
等标准 [4] 。 值得一提的 LCSAJ 覆盖是 LDRA 特有的
覆盖分析,是对形成的线性代码( start 和 finish 配对)
进行覆盖统计,消除了路径覆盖测试用例成几何倍
数,仅需 N + 1( N 为条件个数) 个测试用例即可达到
100%覆盖。 覆盖率配置可以在 Testbed 中进行定义,
此桩函数中增加 m_mapFilter 的初始化代码,确保集
合不为空; 第二 个 即 打 桩 的 ST _ FILER1553B:: ST _
FILER1553B( int,int,int) 构造函数,确保能够初始化
成功;第三个即打桩的 ST _FILER1553B 的 operator <
操作符函数,不然默认的桩函数总是返回 false。 再次
qq_last_test_case、ldra_qq_test_case_number 等 进 行
作者简介:张晓明(1985— ) ,男,陕西礼泉人,高级工程师,本科;研究方向:航空电子技术。
— 51 —
第 19 期
2023 年 10 月
无线互联科技·软件开发
判断区分。
1. 6 系统函数打桩
系统函数一般不用打桩,直接调用即可,如果确有
\ lib \ libQt5Cored. a” 。
2. 2 设计测试用例
因为是针对类的函数测试,必然要调用类的构造
和 析 构 函 数, 又 因 为 是 单 元 测 试, 所 以 必 须 对
C1553::C1553( ) 构造函数和 C1553:: ~ C1553 ( ) 析
构函数这两个函数打桩。
第 19 期
2023 年 10 月
无线互联科技
Wireless Internet Science and Technology

LDRATestbed动态分析

LDRATestbed动态分析

LDRATestbed动态分析LDRA Testbed 动态分析® LDRA Tool Suite Technical Descriptionv7.3.1LDRA Product Brochure v6.1什么是动态分析动态分析使用测试数据集去执行软件,来观察软件的行为,生成测试覆盖报告。

对源代码的这种评估分析能保证达到测试标准的要求,并且辅助捕捉/回放工具的使用。

LDRA Testbed动态分析为苛刻性代码分析提供达到质量标准的手段,能改进代码效率,最小化回归测试成本,并且侦测软件中的缺陷。

在软件开发和维护期,使用动态分析技术有助于提高程序的健壮性和可靠性。

优点是什么?•执行高质量测试•减少回归测试成本•鉴别软件异常和缺陷•产生全面的可度量的测试数据集合,包含测试输出•降低维护费用至最少•识别系统/程序不必要,可移除的部分•确保系统可靠,零缺陷何时使用动态分析?动态分析通过在测试中选择测试数据探究应用软件的语义。

从应用软件静态分析中构建的控制流和数据流模型与运行时刻产生的实际控制流和数据流相比较,这就能检查出是静态分析出错还是动态分析出错。

动态分析对高可靠性的软件应用非常有效,是安全苛刻性的航空电子软件测试的首要方法,广泛地用于军方,安全和任务苛刻的软件。

除了上面提到的安全苛刻性工业领域,动态分析也适用于金融和通信领域。

关键在于工具能带来有效的改进过程,它包括实际的成本节省,对客户投资的回报,从而导致巨大的竞争优势。

LDRA 工具包的动态覆盖分析动态分析的结果可以根据设计需求达到的不同要求进行选择。

最通常的要求是达到控制流覆盖水平。

LDRA 工具包使用以下几种类型的覆盖:可度量的覆盖有下列级别:•语句覆盖•分支/判定覆盖•LCSAJ 覆盖•MC/DC 覆盖•动态数据流覆盖。

用Testbed做软件单元测试时一些常见问题的处理

用Testbed做软件单元测试时一些常见问题的处理

TECHNOLOGY 技术应用摘要:随着我国经济的发展,计算机发展越来越迅猛,测试工具的功能也逐渐强大,同样的,软件测试技术也越来越发达。

单元测试是软件测试的组成部分,也是软件测试的基本要点,是给软件查漏补缺,保证软件质量的必要步骤。

论文以LDRA Testbed测试工具为基础,就单元测试的基本概念和单元测试在工作中的基本方法来结合实际的案例,进行全方位稳妥有效的分析,以期提高测试的覆盖率。

反复的实验结果可以得出结论,在经过严谨的单元测试后,LDR Testbed进行时有效的提高了软件的质量。

关键词:单元测试;LDRA Testbed;用例设计;覆盖率一、前言众所周知,互联网计算机时代的开启了第三次工业革命,各国都大力发展互联网产业,随着经济的发展和科学技术的发展,软件行业也取得了较大的发展,二者相互影响相互促进,相辅相成。

软件行业的发展进程中,有一个重要的影响因素决定着软件质量的高低,这就是软件测试,相对应的,软件测试行业也取得了长足发展,且为了满足软件开发与运行的需求,也不断的在提升其自身技术水平[1]。

软件测试的工作方式就是将已经开发好的软件程序按照常规状态运行,在其运行状态中查明发生的错误,软件的漏洞,查漏补缺,一方面也可以做出软件质量的评估,这样就可以最大程度的减少损失,防止软件正式推向市场后出现问题,最终导致难以挽回的后果。

如果能在软件开发的前期发现并且改正存在的一些错误,可以节省很多成本,最简单直接的就是单元测试。

因为软件市场的多样化越来越明显,出现的问题也越来越多,所以为了应对这些问题,各种功能的测试工具被开发出来投入使用,其中类似LDRA Testbed等工具较为突出,拥有着更精确更高效的能力,能够保证软件的正确性。

主要是为了检测C语言和C++,已经取得了很优秀的成绩,并且在相应领域做出了突出的表现并且占据了一定的地位。

本文就LDRA Testbed来展开研究和分析。

二、单元测试为了对软件进行全方位测试,必须对软件中的每一个小部分做出检测,这一小部分就是程序模块,而用来测试程序模块的就是单元测试。

自动采集Testbed工具中软件质量因素的方法研究与应用

自动采集Testbed工具中软件质量因素的方法研究与应用

因此考虑利用Excel自带的工具完成网页数据采集工作。

数据采集完成后,通过Excel自带的统计模块完成数据分析工作,并将数据分析结果形成结论和自主定义的数据报表。

3 方法实现3.1 网页数据抓取通过Excel抓取网页数据的常用方法有3种。

第一,xmlhttp/winhttp法。

用xmlhttp/winhttp模拟向服务器发送请求,接收服务器返回的数据。

该方法的优点是效率高,缺点是需要借助工具模拟HTTP请求[5],需额外安装工具。

第二,IE/webbrowser法。

创建IE控件或Webbrowser控件,结合htmlfile对象的方法和属性,模拟浏览器操作,获取浏览器页面数据。

该方法优点是浏览器能看到的数据就能用代码获取。

第三,QueryTables法。

该方法为Excel自带,与第一种方法类似,通过GET或POST方式发送请求,得到服务器的response返回到单元格。

该方法的优点是Excel自带,处理table简单高效。

比较上述三种方法,发现第三种方法简单高效,可满足数据采集需求。

因此,采用第三种方法完成网页数据采集工作。

3.2 数据分析和报表生成完成网页数据采集后,开始数据分析工作。

原始数据为Quality Review Report的所有表格数据,此时,所有数据均已采集至Excel的工作表sheet1。

数据分析工作是从sheet1中提取出所需圈复杂度、扇入扇出和代码行数等软件质量因素数据,同时,获取表格中所有的函数模块,并删除重复项,确保函数模块的唯一性。

其次,将圈复杂度、扇入/扇出、代码行数等质量因素与函数模块建立映射表,数据分析完成。

获取的数据如图2所示。

根据图2中的数据可以进行统计分析,例如统计模块源代码行数≥500、模块扇出数≥7、模块圈复杂度≥10的函数个数。

通过编写算法获得统计数据报表,如表1所示。

完成图1中的数据采集工作后,表1的数据可以通过算法自动获取,也可根据实际需求进行数据增加、删除工作,从而形成不同的数据报表,满足不同场合的需求。

LDRATESTBED在航天软件测试中的应用

LDRATESTBED在航天软件测试中的应用

A pr 2007 V ol 25,N o .2航 天 控 制A erospace Contro lLDRA TESTBED 在航天软件测试中的应用李中萍 岳 海 薛 静北京航天自动控制研究所,北京100854摘 要 提出采用LDRA (Liverpoo lD ata R esearch Associates Ltd .)TESTBED 测试工具辅助完成高可靠性的军用软件测试工作,并通过测试实例阐述了该工具在航天软件测试中的应用方案。

结果证明,合理使用该工具,能够有效避免人为失误,提高软件测试的效率和信息采集的准确度。

关键词 软件测试;测试工具;LDRA TESTBED 中图分类号:V448.15 文献标识码:A 文章编号:1006 3242(2007)02 0073 05The Applicati on of LDRA TES TBED i n A erospace Soft w are TestLi Zhongpi n g Yue H a i Xue Jing B eiji n g A erosapce Auto m atic Con tro l I nstitute ,B eiji n g 100854,Ch i n aAbst ract A m ethod of aerospace soft w are test based on LDRA TESTBED is p resented.The sche m e is de scribed by the test case .The results prove t h at hum an errors can be effectively avo i d and t h e test e fficency andp recision of infor m ation acquiring are h i g h l y i m proved by using LDRA TESTBED .K ey w ords Soft w are test ;Test tools ;LDRA TESTBED 收稿日期:2006 11 15作者简介:李中萍(1973-),女,四川铜梁县人,工程师,研究方向为软件测试技术和软件工程;岳 海(1973-),男,河南扶沟人,工程师,研究方向为软件测试技术和软件工程;薛 静(1976-),女,河南孟县人,工程师,研究方向为软件测试技术和测试环境的开发。

TESTBED中文简介

TESTBED中文简介

LDRA公司是专业性软件测试工具与测试技术、咨询服务提供者,成立于1975年,具有丰富的软件测试经验,其总部位于英国利物浦,中国设有总代理上海创景计算机系统有限公司。

其旗舰产品Testbed/TBrun功能强大、功能全面、易于使用,不仅适合于主机平台软件测试,同时适合于嵌入式软件测试,已成功地应用于国内各大研究机构、软件测试部门。

LDRA Testbed/TBrun软件测试产品功能介绍一、静态分析功能1、编程标准编程标准验证是高可靠性软件开发不可缺少的软件质量保证方法,使用LDRA Testbed自动地验证应用软件是否遵循了所选择的编程规则。

编程规则由软件项目管理者根据自身项目的特点并参考现有的成熟的软件编程标准制定,如DERA(欧洲防务标准),MISRA(汽车软件标准),LDRA Testbed依据此规则搜索应用程序,并判断代码是否违反所制定的编程规则。

LDRA Testbed报告所有违反编程规则的代码并以文本方式或图形反标注的方式显示。

测试人员或编程人员可根据显示的信息对违反编程规则的代码进行修改。

2、软件度量分析、质量标准验证对于软件开发工程师、项目负责人及高级管理者来说,软件质量的管理与监控是非常困难的且费时。

LDRA Testbed很好地解决了这一问题,使得管理者很容易地收集正在开发的软件系统的相关信息并判断软件是否满足软件质量标准要求,从而达到对软件项目的质量跟踪与控制,用户可基于现行软件标准自行定义适合本系统或项目的软件质量模型。

LDRA Testbed支持下列主要软件度量元分析:*控制流结点度量(Control Flow Knots);*LCSAJ密度度量(LCSAJ Density);*扇入/扇出度量;*循环深度度量;*McCabe圈复杂度;*Halstead软件科学度量;*McCabe Essential复杂度;*注释行度量;*代码可达性度量;*等等。

3、静态数据流分析LDRA Testbed分析软件中全局变量、局域变量及过程参数的使用状况,并以图形显示、HTML或ASCII文本报告方式表示,清晰地识别出变量使用引起的软件错误,此种方法既可使用于单元级,亦可使用于集成级、系统级。

软件单元测试(静态、动态测试)设计

软件单元测试(静态、动态测试)设计

软件单元测试(静态、动态测试)设计1测试范围本文档针对XXXXX软件单元测试。

单元指单个函数或几个函数构成的功能模块。

2测试目的单元测试是针对软件设计的最小单位——程序模块(函数或功能模块),进行正确性检验的测试工作。

单元测试的依据是详细设计。

在单元测试活动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。

其目的在于发现每个程序模块内部可能存在的差错。

单元测试是软件测试的基础,如果不进行单元测试,那么缺陷会越积越多并且分布得更广、隐藏得更深,反而导致测试与改错的代价大大增加。

最糟糕的是无法估计测试与改错的工作量,使进度失去控制。

单元测试工作主要分为两个步骤静态测试和动态测试。

静态测试:静态测试包括代码检查、静态结构分析、数据流分析、控制流分析等。

它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行。

静态测试通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。

静态测试结果可用于进一步的查错,并为动态测试时的测试用例选取提供指导。

动态测试:通过设计测试用例,执行待测程序来跟踪比较实际结果与预期结果来发现错误。

经验表明,使用静态测试法能够有效的发现30%到70%的逻辑设计和编码错误。

但是代码中仍会有大量的隐性错误无法通过视觉检查发现,必须通过动态执行才能够捕捉到。

所以,动态测试也成了单元测试的重点与难点。

3测试环境静态测试:XP主机+TestBed静态测试工具动态测试:XP主机+ TBrun单元测试工具+ TBConfig单元测试配置工具(支持目标机平台xxxxxxxxxxx开发环境)+ xxxxxxxxxxx仿真环境4测试方案4.1静态测试4.1.1代码规则检查遵循标准MISRA-C:2004,利用TestBed测试工具完成。

4.1.2边界值检查确定边界情况(刚好等于、稍小于和稍大于和刚刚大于等价类边界值),在动态测试中将利用分析结果针对我们的系统在测试过程中输入一些合法数据/非法数据,主要在边界值附近选取。

基于LDRA Testbed软件的单元测试的研究报告

基于LDRA Testbed软件的单元测试的研究报告

基于LDRA Testbed软件的单元测试的研究报告LDRA Testbed是一种广泛使用的软件测试工具,主要用于单元测试、代码覆盖率分析和代码质量评估。

在本研究中,我们探讨了基于LDRA Testbed的单元测试实践,以及如何最大化其效益。

首先,我们介绍了单元测试的概念和作用。

单元测试是软件测试的一个重要组成部分,通常在开发过程的早期阶段进行。

它的目的是测试软件中的最小单元,如函数或方法,以验证它们的行为是否符合预期。

单元测试不仅能够帮助发现并修复程序中的错误,还可以提高代码的可读性、可维护性和可扩展性。

此外,对于要在多个平台上运行的软件,单元测试还可帮助我们在不同的环境下发现和修复问题。

接下来,我们介绍了LDRA Testbed的基本特性。

LDRA Testbed可以帮助进行代码静态分析、动态分析、测试覆盖率分析等多种测试形式,其支持的语言包括C、C++、Ada等多种语言。

在进行单元测试时,LDRA Testbed可以自动生成测试用例,并执行这些测试用例以进行测试和分析。

我们还介绍了LDRA Testbed在具体项目中的实践。

在研究中,我们选择了一款航空电子设备控制软件作为测试对象,并使用LDRA Testbed进行单元测试。

我们先对软件的功能单元进行了分析,并编写了相应的测试用例。

接着,我们利用LDRA Testbed对这些测试用例进行测试,并使用其生成的报告来评估测试的效果和覆盖率。

最后,我们根据测试结果对代码进行了优化和修改,以修复所有可能的缺陷。

总的来说,我们在本研究中通过实践证明了LDRA Testbed在单元测试中的高效性和实用性,其为软件测试提供了有力的辅助工具。

在今后的研究中,我们希望进一步探究如何将LDRA Testbed结合其他测试工具和技术,进一步提高软件测试的效率和质量。

在使用LDRA Testbed进行单元测试的实践中,我们收集到了以下数据:1. 测试覆盖率:LDRA Testbed生成的报告显示测试覆盖率为90%。

[word格式] 基于Testbed、TBrun的航天型号软件单元测试应用

[word格式] 基于Testbed、TBrun的航天型号软件单元测试应用

基于Testbed、TBrun的航天型号软件单元测试应用42基于Testbed,TBrun的航天型号软件单元测试应用基于Testbed,TBrun的航天型号软件单元测试应用韦全芳阳方林(上海航天电子有限公司)摘要本文首先介绍了航天型号软件单元测试的定义和软件单元测试的意义,然后,介绍了主要测试的内容,方法和通过准则,最后以测试工具Testbed,TBrun针对汇编语言举例详细阐述了单元测试的方法.通过这些例子表明单元测试能发现软件调试过程中不能发现的潜在问题,从而有效地提高了软件的可靠性,健壮性,为后续测试,软件验收和交付打下坚实基础.关键宇航天型号软件单元测试测试工具引言航天型号软件的单元测试是软件研制过程中的重要阶段和软件测试的重要环节.航天型号软件对实时性,可靠性和安全性要求较高,工作环境相对复杂,恶劣;使用者相对单一,固定;在轨运行不可维修.这些特点决定了航天型号软件要特别重视软件的测试.软件单元测试是指对软件部件中确定的能单独测试的一部分软件的测试.软件研制过程进行软件单元测试是非常重要且必需的,首先软件单元的规模较小,容易做到全面充分的测试,本阶段若发现软件中的缺陷,定位和排除这些缺陷都相对比较容易;其次软件单元测试一般是在软件实现阶段进行,在软件开发的早期发现软件的缺陷,这对改善软件的质量和可靠性来说,所花的成本最小.程序的调试不能代替单元测试,因为它们的目的是不同的.单元测试完成对最小的软件设计单元的验证工作,单元测试的输入是在编码后已经成功编译的单元.被成功地测试过的单元是单元测试的输出.对传统开发的研究表明,大约65%的软件缺陷可以在单元测试中捕获,其中的一半是白盒测试捕获的….这是因为单元测试中只包含较少的软件代码,所以软件缺陷比较容易被隔离出来,因此,对于排除软件缺陷,单元测试是最有效的一类测基于Testbed,TBrun的航天型号软件单元测试应用43试.1软件单元测试的内容,方法和通过准则担1.1单元测试的内容单元测试主要内容有:单元的功能测试,单元的接口测试,重要执行路径的测试,局部数据结构,错误处理和影响上述各条的边界条件及非法输入.1.2单元测试的方法1.2.1静态测试静态测试是不运行程序而寻找程序代码中可能存在的错误和评估程序代码的过程.其方法主要依靠人工进行的代码审查,代码走查和由软件工具自动进行的静态分析.1.2.2动态测试动态测试是在测试数据上运行程序并全面分析输出以发现错误的过程,动态测试方法一般采用黑盒测试方法和白盒测试方法.黑盒测试方法是一种按照需求规格说明设计测试●数据的测试方法,一般包括功能分解,边界值分析,判定表,因果图,随机测试,猜错法和正交试验法等;白盒测试方法按照程序内部的逻辑结构和编码结构设计测试数据的测试方法,一般包括控制流测试(语句覆盖,分支覆盖,条件覆盖,条件组合覆盖,路径覆盖等),数据流测试,程序变异,程序插桩,域测试和符号求值等.1.3单元测试的通过准则单元测试的通过准则为:软件单元功能,性能和接口与设计一致;语句覆盖率达到100%;分支覆盖率达到100%;软件单元能正确处理输入和运行中的错误;已对发现的问题进行修改并通过了测试;运行时间,程序占用空间满足要求(对实时嵌入式软件而言);完成单元测试报告.2应用实例2.1Test.bed和TBrun工具介绍.Testbed和TBrun是航天型号软件单元测试普遍采用的测试工具. Testbed用来对软件进行静态分析,首先进行软件模块结构的划分,然后给出静态分析结果:如模块数,软件代码长度,注释率,圈复杂度,扇入数,扇出数,压栈深度,整个软件的结构图和单个模块的流程图等信息.TBrun是一个使用脚本语言来构建测试用例,通过对指令的解释,执行来进行测试的一44基于Testbed,TBrun的航天型号软件单元测试应用个汇编语言单元和C语言单元测试工具.使用简捷的脚本方便地进行测试用例的构建,精确的指令解释模拟程序的正确执行,在完成对函数功能全面的验证基础上,同时还进行详细的语句和分支的覆盖率分析,提供可定制的中文测试报告:而且,TBrun还提供方便的测试用例管理,从而使整个单元测试过程更加可靠,高效,易于管理和回归测试.2.2异常输入测试下面是一段查表子程序:TAB1:MOV A,55H;查表子程序M0VCA.@A+PCRETDB55H,76H,0F4H,0ABH,09H,12H,0AOH,33H等于12H和09H,在正常输入O1H~08H范围之外,但是该段程序没有对这种异常值的输入有合理的输出,导致输出不稳定.针基于Testbed,TBrun的航天型号软件单元测试应用45对这种潜在隐患,对程序修改如下:TAB1:MOV A,55H;查表子程序MOVR0,ASUBBA,#09H;对A先进行判断JNCLOTABMOV A,R0OUT1:ADDA,#06HMOVCA,@A+PCLJMPTAB1RETLOTAB:MOVR0,#00H;异常输入的输出MOV A,R0TAB1RET:RETDB55H,76H,0F4H,0ABH,09H,12H,0AOH,33H修改后的软件对异常输入有了一个固定的输出,该输出值根据软件的功能设置,本文为了说明问题,异常输出均设为00H.对修改后的程序再进行测试,结果如图2所示,没有发生错误.8.23,测蠛用恻0氐23,I,剽诚丽删l瑾嘲6.23.2,斟试I嗣麓入6.233试8.2.4,测l漩罔婀46,六4I,罚f陡穗捌说嘲6.2.4.2,测试曩l蹦黛入采el5er0x0O奔el$e【图2异常输入结果报告46基于Testbed,TBrun的航天型号软件单元测试应用2.3编程规范检查下面是一段除法子程序:DIVE16:M0VR7,#10H;除法子程序L00P1:CLRC;被除数(R3R2RIR0)M0V A,R0;除数(R5R4)ADDA,R0;商(RIR0)M0VR0,A;余数(R3R2)M0V A,R1ADDCA,R1M0VR1,AM0V A,R2ADDCA,R2M0VR2,AM0V A,R3ADDCA,R3M0VR3,AcL00P2M0V A,R2SUBBA,R4M0VR2,AM0V A,R3SUBBA,R5M0VR3,AJNCL00P3M0V A,R2ADDA,R4M0VR2,AM0V A,R3ADDCA,R5M0VR3,A基于Testbed,TBrun的航天型号软件单元测试应用47 L00P3:CA.R2A.R4R2.AA.R3A,R5R3.AR0R7.LO0P1该子程序在KeiluVision2和W A VE6000集成开发环境下,编译器编译时无错误,无警告,实际输出与预期输出也一致.采用动态测试工具TBrun对该子程序进行测试,功能测试均正常,但”编程规范检查工具&amp;分析报告”中显示该子程序违反了编程规范¨,如图3所示,№.10下面的两行信息列出违反了规范”出口不唯一”的模块名称.No.9编程时应该有CAST~识的显式模块化(强制)No.10每个子程序一定要做到唯一入口,唯一出口(强制)一乞e8乞.且SM:q2cDIVE16:RET)一t.e~t.ASH:s6(MAIN:出口数为0)No.11中断处理程序中的压栈,出栈指令要匹配(强制)图3违反规范的内容从图3可以看出,该除法子程序的出口不唯一.根据测试结果,对原程序修改如下:DIVE16:M0VR7,#10H;除法子程序L00P1:CLRC;被除数(R3R2RIR0)M0V A,R0;除数(R5R4)ADDA,R0;商(RIR0)M0VR0,A;余数(R3R2)ZBBZNTRVBVVVCNT唧刚基于Tcstbcd,TBrun的航天型号软件单元测试应用M0V A,R1ADDCA,R1M0VR1,AM0V A,R2ADDCA,R2M0VR2,AM0V A,R3ADDCA,R3M0VR3,AJcLOOP2M0V A,R2SUBBA,R4M0VR2,AM0V A,R3SUBBA,R5M0VR3,AJNCLOOP3mOV A,R2ADDA,R4M0VR2,AM0V A,R3ADDCA,R5M0VR3,ADJNZR7,L00P1SJMPDIVERET;修改的语句,使出口唯一L00P2:CLRCM0V A,R2SUBBA,R4m0VR2,AM0V A,R3基于Testbed,TBrun的航天型号软件单元测试应用49SUBBA,R5MOVR3,ALOOP3:INCR0DJNZR7,LOOP1DIVERET:RET再对修改后的程序进行测试,发现该程序的功能没有发生改变,且符合了编程规范,如图4所示,该除法子程序模块已经不在违反规范”出口不唯一”的列表中.No.9编程时应该有CAST~识的显式模块化(强制)No.i0每个子程序一定蔓做到唯一入口,唯一出口(强制)一testne~T.ASM:60cMAIN:出口数为0)No.11中断处理程序中的压栈,出栈指令蔓匹配c强制)图4违反规范的内容3结论本文通过两个汇编子程序的单元测试实例,证明单元测试可以发现软件的一些缺陷,为纠正软件缺陷提供了依据,为航天型号软件的可靠性提供一个衡量标准,使航天型号软件的编程更加规范化,为软件的后续测试,系统验收和交付打下坚实基础.因此,航天型号软件的单元测试具有非常重要的现实意义.参考文献[1]SoftwareTestingTechniques,B,Beizer,VanNostrandReinhold,1983.[2]QJ3027—98航天型号软件测试规范.[3]TBrunfor8051ASM使用指南.[4]Q/QJA30—2005航天型号软件T程化管理要求.。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于TestBed的软件动态测试分析
作者:乔克婷
来源:《经营管理者·上旬刊》2017年第04期
摘要:本文通过实例阐述了如何运用软件测试工具TestBed进行动态测试的方法,包括测试环境的搭建,创建测试。

关键词:TestBed 动态测试
随着目前电子信息系统复杂性的不断提高,软件开发在整个系统研发中所占的比例也不断增加,而软件测试是提高软件质量的主要手段之一。

据统计表明,一些较大型的软件大约40%的开销花在软件测试上。

一些特殊的系统(如航空/航天飞行控制、核反应堆监控)甚至达70%以上。

因此软件测试是一个十分重要的环节。

TestBed/TBrun是英国LDRA Ltd公司一款功能强大的自动化软件测试工具,通过对其合理应用,可有效提高测试效率,提升软件质量和可靠性。

目前某单位已引入该测试工具,但主要用于对被测软件做静态分析,对被测软件做单元测试和集成测试还比较少。

一、引言
1.软件测试的分类。

常用的软件测试方法分为两大类:静态测试方法和动态测试方法。

静态测试方法:静态测试方法不会运行被测软件,通过人眼或机器扫描源代码,以发现源代码中错误或不规范的地方,从而保证编码的正确性。

常用的静态测试方法有代码走查和代码会审。

动态测试方法:动态测试方法需要运行被测软件,通过输入一组预先按照一定的测试准则构造的实例数据来动态运行程序,从而达到发现程序错误的过程。

动态测试又分为白盒测试(结构测试)与黑盒测试(功能测试)。

白盒测试是把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。

白盒测试的主要测量指标有分支覆盖率、语句覆盖率和过程函数覆盖率等。

黑盒测试是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合他的功能说明。

黑盒测试的测量指标主要是通过检查被测软件的输出结果是否与预期的设想的状态一致。

白盒测试盒黑盒测试都是一个完整动态测试的重要组成部分。

2.TestBed/TBrun。

针对前面提到的两种测试方法,TestBed/TBrun测试套件同时提供了静态分析和动态分析功能。

目前静态分析被我所广泛用于项目源代码规范性检查。

而对于其动态分析功能,TestBed可自动对被测软件进行代码插装,以获得被测软件的动态执行信息,供
Testbed作动态测试分析。

支持测试的软件可为PC机平台软件(VC)或嵌入式目标机平台软件(PowerPC)。

在每次测试执行后TestBed都可提供单次运行和累计的覆盖率分析数据。

TestBed还提供图形化显示动态分析的结果,包括调用图、流程图、柱状图和Kiviat图等。

二、动态测试流程
1.TestBed动态测试环境搭建。

首先是安装TestBed测试工具,软件安装光盘和key可以从档案部门借到,具体安装步骤参考TestBed自带的软件安装手册。

在使用TestBed进行动态测试之前要设置好编译环境。

安装软件时会要求配置一个缺省的编译环境(例如VC2010)。

如果需要改变编译环境(例如改为Workbench3.0),在主菜单“Configure”-》“Switch Compiler…”下,点“Add Compiler…”按照步骤添加编译环境,添加完毕后点“Select”切换,如图1所示。

图1 切换编译环境。

2.TestBed动态测试步骤。

首先根据要测试的代码选择一种动态测试。

TestBed提供了三种动态测试,即集成测试、隔离测试和单元测试。

这三种测试的区别是:单元测试只针对最小的软件单元进行测试,所以一般都只是一个函数,而且要求这个函数内不能调用其他的函数;隔离测试也是只测试一个函数,但这个函数可以调用其他的函数,对于调用的函数只能进行插桩;而集成测试可以同时测试多个函数,这些函数存在相互调用关系,对于调用的函数可以选择插桩或不插桩。

所以如果我们要测试的代码是面向对象的,我们通常都会选择集成测试,原因是测试时创建对象需要调用对象的构造函数,而销毁对象需要调用对象的析构函数。

选择测试的方法是:在“TBrun”菜单下选择“Integration Unit”(集成测试)、“Isolation Unit”(隔离测试)和“Unit Test Only”(单元测试)。

选择好后软件自动运行TBrun,打开要测试的源文件,进行必要的分析。

其次选择动态测试的类型,在TBrun的“Sequence” 菜单下勾选“White Box”为白盒测试,不勾选即为黑盒测试。

然后创建测试序列,測试序列就是一个测试用例的集合。

创建测试序列的方法是:在TBrun的“Sequence”菜单下点“New…”,输入测试序列的名字并选择勾选是否统计代码覆盖率。

接着创建测试用例,方法是:在TBrun的“Test Case”菜单下点“Create New Test Case”,选择要测试的函数,然后设置该函数中涉及到的全局变量的值进入测试用例的参数输入界面。

设置测试用例的输入参数的值,在输出参数里输入函数运行结束后的期望值。

如果是集成测试或隔离测试中需要对调用函数插桩,其方法是:在“Procedure Calls & Member Functions”列表里右键点击要插桩的被调函数,选择“Create Managed Stub”,然后右键点Test Case,选择“Stub Management”,再右键点插桩函数选“Set Code Segment”,在弹出的对话框中输入插桩的代码。

最后运行测试用例查看测试结果,如果测试用例的结果与期望值一致Status为PASS,否则为FAIL。

经过以上的步骤,一个测试用例就执行完毕。

在TBrun界面上可以看到这个测试用例的语句覆盖率和分支覆盖率。

接下来可以修改这个测试用例重新执行或创建新的测试用例。

3.TestBed的动态测试原理。

TestBed对被测软件进行动态测试时,其测试原理如图2所示,这里被测软件的编译环境为VC2010。

相关说明如下:(1)TestBed创建的驱动程序工程默认在C:\LDRA_Workarea\Tbwrkfls目录下,工程后缀名为.dsp,其驱动程序源文件在C:\LDRA_Workarea\Tbwrkfls \___seqwrkfls目录下,文件后缀名为.cpp。

(2)如果出现编译错误,可以通过新建一个临时的VC工程,把TestBed生成的驱动程序源文件添加进来进行调试解决。

(3)如果出现链接错误,在TBrun的Configure菜单下点“Driver Build & Execution Options”,在弹出对话框的“Build”选项页下修改Build命令和链接命令以增加必要的库来解决。

图2 TestBed动态测试原理。

参考文献:
[1] 古乐.软件测试技术概论.清华大学出版社. 2004.04.
[2] 蔡建平等.软件测试方法与技术. 清华大学出版社. 2014.01.
[3] [美]Paul C.Jorgensen. Software Testing. 人民邮电出版社. 2012.02.。

相关文档
最新文档