QQ登录

只需一步,快速开始

登录 立即注册

固体力学有限元软件测试用例设计方法研究

[复制链接]
查看: 1031|回复: 3
tianma 发表于 2016-8-29 21:48:04
固体力学有限元软件的加速成熟需要软件测试技术的支持,软件工程中的测试用例设计技术可以有效地提高软件质量。本文选择了三种常用的测试用例设计方法:等价类划分法、边界值分析法和错误推测法,介绍了其基本概念和主要技术。然后依据固体力学有限元软件的基本需求,详细介绍了三种方法的实际应用,给出了测试用例集。这些方法已经在自主研发的工程力学软件PANDA中得到了很好的应用。
0 引言
    发展自主CAE软件,对于提高我国装备制造业产品核心竞争力和自主创新能力具有重大意义。CAE软件从科学计算程序走向成熟需要经历软件验证与确认的考验。国外在经历了上世纪70、80年代的科学计算程序研发的成熟期之后,又对软件的验证与确认(verification &validation,简称v&v)进行了深入的研究和应用,从而在本世纪初形成了成熟的软件产品。以CFD软件(计算流体力学软件)为例,1992年NASA对CFD软件的研究进行资助,研究内容包括CFD算法、应用、网格生成、可视化,湍流模型、验证与确认等。这项研究的总投资为1399.8万美元,其中验证与确认的投资为713.5万美元,占总投资的51%。由此可见,软件的验证与确认是CFD软件走向成熟的重要因素。
    固体力学有限元软件是一类非常重要的CAE软件,ANSYS、NASTRAN等通用有限元软件已经在工程领域得到了广泛的认可。这些通用有限元软件已经有了几十年的口碑积累、广泛的客户应用确认以及数万工程实例的测试验证,从而证明了其计算结果的可信性。为了赶超国外的通用有限元软件,我国自主研发有限元软件必须加速证明其软件的成熟性和可信性。评估数值模拟输出结果的可靠度,研究数值模拟结果误差和不确定度评估的科学方法,已经促进了科学计算程序验证和确认学术研究和相关活动的开展展。在2012年计算力学自主软件基金资助情况通报及研讨会上,“计算力学软件工程化的测试、验证与标准化”被国家自然科学基金委数理科学部作为“计算力学软件”的主要资助方向。
    CAE是软件工程,应该在CAE软件研发过程中合理的使用软件工程的技术和方法。计算力学软件作为应用软件的一类,在研发过程中推行软件质量工程方法,需要遵循软件工程中的一些基本原则。在软件工程中,软件验证与确认的主要方法包括软件测试、软件评审和软件形式化正确性证明,软件测试是其中最重要的方法。本文主要讨论了在固体力学有限元软件的研制过程中,如何使用软件工程中的测试用例设计方法设计出高质量的测试用例,重点阐述了等价类划分法、边界值分析法、错误推测法。
1 测试用例设计方法介绍
    测试是为评价、改进产品质量,标识产品的缺陷和问题而进行的活动。测试工作的价值是为开发者指出提升软件质量的方向,为使用者提供使用软件的信心。软件测试中最重要的因素是设计和生成有效的测试用例,测试用例的设计和选择也是测试工作中技术含量较高的一项内容,具有很强的专业性。设计测试用例的唯一规则是:覆盖所有特征,但并不创建太多测试用例。根据固体力学有限元软件的特点,本文主要介绍等价类划分法、边界值分析法、错误推测法。
1.1 等价类划分法
    等价类划分法是一种最常见的测试用例设计方法,它是把所有可能的输入数据划分成若干子集,假设这个子集的各个输入数据对于发现程序中的错误都是等效的,也就是说测试某等价类的代表值就等于对这一类中其它值进行了测试。因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据,取得较好的测试结果。等价类划分法的关键就是合理定义输入数据的分类或子集,等价类的含义就是指某个输入数据的子集。等价类一般可以分为两个类型:有效等价类和无效等价类。
1.2 边界值分析法
    大量的测试经验证明,许多错误会出现在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。所谓边界条件,是指输入和输出等价类中那些处于边界上、或刚超过边界、或刚在边界以下的状态。边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。
1.3 错误推测法
    错误推测法是基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。采用错误推测方法时,应尽量列举程序中所有可能出现的错误和值得怀疑的地方,从中作出选择,以设计测试用例。错误推测法在一些复杂软件的测试中往往有着意想不到的效果。
2 测试用例设计
    利用本文介绍的测试用例设计方法,对固体力学有限元程序进行测试用例设计。为简单起见,可以从最基本的功能需求开始设计测试用例,然后使用增量测试,逐步增加功能需求。软件测试的依据是软件需求规格说明,固体力学有限元程序的最基本功能需求列表参见下表。


http://fans.SolidWorks.com.cn/blog/?387
楼主  tianma 发表于 2016-8-29 21:48:23

2.1 等价类划分法

    进行等价类划分时,最基本的是有效等价类和无效等价类划分,常用有四种方法。

    (1)如果输入条件规定了取值范围,可定义一个有效等价类和两个(或一个)无效等价类。

    例如弹性模型的取值范围为(0.0,∞),有效等价类208e9,无效等价类为-100.O。

    (2)如果规定了输入数据的个数,则类似地可以划分出一个有效等价类和两个无效等价类。例如单元的引用结点编号应该为8个整数,有效等价类可以为1 2 3 4 5 6 7 8,无效等价类为7个整数;9个整数。

    (3)如规定了输入数据的一组值,且程序对不同输入值做不同处理,则每个允许的输入值是一个有效等价类,并有一个无效等价类(所有不允许的输入值的集合)。

    例如单元的引用结点编号应该为定义过的结点编号,有效等价类可以为1,无效等价类为-1。

    (4)如果规定了输入数据必须遵循的规则,可确定一个有效等价类(符合规则)和若干个无效等价类。

    例如结点编号不能重复,等效等价类可以为无重复的编号,无效等价类可以设置重复编号。

    使用等价类划分法进行测试用例设计,主要包括以下五步:

    (1)根据功能需求列表,进行逐项分析,得到每项需求需要的输入数据。

    (2)对每个输入数据进行分析,考虑其输入的特点和要求,进行等价类划分。

    (3)形成等价类表,为每一等价类规定一个唯一的编号。

    (4)设计一个测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类,重复这一步骤,直到所有有效等价类均被测试用例所覆盖。


http://fans.SolidWorks.com.cn/blog/?387
楼主  tianma 发表于 2016-8-29 21:48:44

(5)设计一个新测试用例,使其只覆盖一个无效等价类,重复这一步骤直到所有无效等价类均被覆盖。

2.2 边界值分析法

    进行边界值分析时,最常考虑以下五种情况。

    (1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。

    例如泊松比的边界值-1.01,-1.0,-0.99,0.49,0.50,0.51。

    (2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据。

    例如载荷个数的边界值O个载荷,1个载荷

    (3)将规则1)和2)应用于输出条件,即设计测试用例使输出值达到边界值及其左右的值。

    (4)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。

    例如选取结点编号时,选取最小的编号和最大的编号。

    (5)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。

    例如单元的几何形状的要求。

    可以在等价类划分的基础上,进一步考虑边界值分析方法。将等价类划分法没有考虑到的情况,进一步增加到测试用例表中。

2.3 错误推测法

    错误推测法往往是人们自发使用的一种软件测试用例设计方法,这种方法也有可以借鉴的使用步骤,一般分为四个步骤。

    (1)使用头脑风暴考虑可能出现的错误,并列出来。

    (2)仔细分析每个错误出现的原因,形成错误列表。

    (3)有针对性的设计测试用例。

    (4)总结哪些错误可以成为等价类分析的条件。以后纳入等价类划分法当中。

    例如ERROR-2“有的单元忘记指定材料”,可以总结为输入条件是材料列表中的单元编号必须覆盖全部单元编号,然后纳入等价类划分法中。

3 总结

    工程化、标准化的计算力学软件研发模式已经是许多专家达成的共识,软件工程作为软件技术科学提供了大量的方法供有限元程序研制参考。本文介绍了三种软件测试用例设计方法:等价类划分法、边界值分析法和错误推测法,并且基于固体力学有限元程序的基本需要进行了详细的使用描述。这些方法已经在自主工程力学计算软件PANDA的研制中得到了应用,很好的提高了软件质量。


http://fans.SolidWorks.com.cn/blog/?387
楼主  tianma 发表于 2016-8-29 21:49:23
大家可以参考一下
http://fans.SolidWorks.com.cn/blog/?387
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|京ICP备11009482号-2  

400 - 818 - 3535 (中国地区咨询电话) | 达索析统(上海)信息技术有限公司北京分公司

京ICP备11009482号-2 | 电话:01065362288

北京市朝阳区建国路79号华贸中心2号写字楼707-709室,邮编:100025

GMT+8, 2019-12-9 06:03 , Processed in 0.104127 second(s), 37 queries .

Copyright © 2002-2018 Dassault Systèmes - All rights reserved

快速回复 返回顶部 返回列表