一、模型建立的方法 GMS软件有三种建立确定性模型的方法,包括概念模型法、网格法和Solids法。
本书中所选择的方法为Solids法。不管是利用网格法或者概念模型法建模,对含水层结构进行合理的概化是其中一个重要环节,所建模型的准确性很大程度上取决于对实际水文地质条件的正确判断。
若轻视对具体水文地质条件的研究,过多依赖模拟技术建立的模型,通常与实际问题相差甚远,也没有使用价值(魏加华等,2003)。当地层出现尖灭、垂向上具有多元结构、水文地质条件比较复杂时,前两种方法不能准确描述此类地层结构,也不能验证基于地质统计学插值求得的含水层顶底板高程是否与实际的钻孔资料相符。
GMS中的实体模块Solids利用钻孔资料可以建立地层的三维结构可视化模型,Solids模型定义了地层结构的空间分布,可以切割生成三维显示任意方向的地层剖面(王丽霞等,2011)。二、模型建立的步骤 利用Solids建模的步骤:(1)在钻孔模块(borehole)中定义钻孔的坐标位置及垂向上的层位(horizon)。
层位即不同地层的交线或岩性分界线。由于地层沉积通常是连续的,因此层位按照一定的次序排列。
然而实际地层一般比较复杂,钻孔资料常出现地层缺失现象,遇到此种情况,将缺失的层位空出,使Solids得到的剖面和实际地层剖面相符合。(2)根据实际的钻孔资料将相应的层位用弧线连接,同时注意地层尖灭的标示。
层位连接后生成不同多边形,每个多边形表示相应的地层或岩性。(3)在地图模块Maps中定义不规则三角网格TIN,来表示地层单元插值的表面边界。
(4)在实体模块Solids选择恰当的插值方法,由horizons生成其相应地层的Solids。如果有N个horizons则有N-1个Solids,Solids生成后即可以在模型上切割任意剖面来检验模型的三维空间结构。
(5)根据Solids数来确定所需网格的最小层数,生成三维网格并进行MODFLOW的初始化。将Solids记录的地层空间信息转成MODFLOW中含水层的顶底板标高,至此地下水三维空间结构模型建立完成。
三、建模过程中可能遇到的问题及解决方法 地下水三维可视化模型建立,首先要基本查明灌区的水文地质条件。了解灌区的地貌、地质条件、构造发育、各地层厚度等信息,需要收集和整理地下水的相关资料,包括灌区水文地质报告、构造图、地质地貌图、水文地质剖面图、电子版地理底图、等高线图、含水层顶底板高程等值线图以及钻孔数据资料等。
再结合水文地质条件对含水层资料进行整理和概化。利用GMS建立地下水三维可视化模型时,尤其是在大区域建模中,可能出现3类问题(张永波等,2007;孙红梅等,2008)。
1.由于钻孔分布不均匀而导致的地层缺失 在大区域建模中,由于研究区范围较大,各部分研究程度不同,一般会引起钻孔分布的不均匀。通过不均匀分布的钻孔资料建立水文地质结构模型,可能致使部分地层产生缺失,导致结构模型失真。
另外,钻孔分布均匀程度是一个相对概念,对于地形平缓、地层结构相对简单的地区,少量钻孔基本可以比较清楚地反映地层结构;对于地形起伏较大、地层结构比较复杂、构造比较发育的地区,需要较多的有效钻孔,才可能准确揭示地层分布及构造发育状况,然而实际工作中完全实现是不可能的。对于此种问题,根据研究区的地质地貌图、构造分布图及前人绘制的剖面图,对已有的钻孔数据资料进行分析和整理,在具有控制点作用的位置可以适当虚拟部分钻孔数据或者各层面的高程数据,以准确反映该区域地层结构和构造。
采用扩充后的钻孔数据资料建立水文地质结构模型,可以弥补由于钻孔资料缺乏而导致的部分地层的缺失。2.由于钻孔不够深而引起的下伏地层抬升 在钻探工作中,往往有些钻孔深度不够,不能完整地揭露地层。
根据这样的钻孔数据建立水文地质结构模型时,系统默认将钻孔底部的标高作为上一层的底部界面。这样就造成下伏地层的抬升。
对于这种情况,根据前人绘制的地层等厚度线及剖面图,结合四周钻孔数据对该钻孔资料进行修正,修正后的钻孔资料可以比较准确地反映地层结构。采用修正后的数据资料建立水文地质结构模型,可以有效地控制下伏地层的抬升。
3.由于钻孔资料过细而引起的地层混杂 在野外纪录的钻孔资料中,局部有透镜体形成的地层,透镜体分布的连续性相对较差。采用过细的资料建模,计算机不能分辨透镜体及连续地层,容易出现地层混杂,即将某个钻孔的透镜体地层和另一个或其他几个钻孔的连续地层分界面相连接,导致生成错误的地层结构。
对于这种情况,根据该区域剖面图整理资料时,将透镜体区分出来,忽略较小的透镜体,针对较大的透镜体则另外生成地层结构。此外,在插值计算中,由于计算方法的不同,产生的结果也许会有很大差异,这需要在进行插值计算时,根据不同的具体条件选择适当的插值方法。
—般说来建立数学模型的方法大体上可分为两大类、一类是机理分析方法,一类是测试分析方法.机理分析是根据对现实对象特性的认识、分析其因果关系,找出反映内部机理的规律,建立的模型常有明确的物理或现实意义.
模型准备 首先要了解问题的实际背景,明确建模的目的搜集建模必需的各种信息如现象、数据等,尽量弄清对象的特征,由此初步确定用哪一类模型,总之是做好建模的准备工作.情况明才能方法对,这一步一定不能忽视,碰到问题要虚心向从事实际工作的同志请教,尽量掌握第一手资料.
模型假设 根据对象的特征和建模的目的,对问题进行必要的、合理的简化,用精确的语言做出假设,可以说是建模的关键一步.一般地说,一个实际问题不经过简化假设就很难翻译成数学问题,即使可能,也很难求解.不同的简化假设会得到不同的模型.假设作得不合理或过份简单,会导致模型失败或部分失败,于是应该修改和补充假设;假设作得过分详细,试图把复杂对象的各方面因素都考虑进去,可能使你很难甚至无法继续下一步的工作.通常,作假设的依据,一是出于对问题内在规律的认识,二是来自对数据或现象的分析,也可以是二者的综合.作假设时既要运用与问题相关的物理、化学、生物、经济等方面的知识,又要充分发挥想象力、洞察力和判断力,善于辨别问题的主次,果断地抓住主要因素,舍弃次要因素,尽量将问题线性化、均匀化.经验在这里也常起重要作用.写出假设时,语言要精确,就象做习题时写出已知条件那样.
模型构成 根据所作的假设分析对象的因果关系,利用对象的内在规律和适当的数学工具,构造各个量(常量和变量)之间的等式(或不等式)关系或其他数学结构.这里除需要一些相关学科的专门知识外,还常常需要较广阔的应用数学方面的知识,以开拓思路.当然不能要求对数学学科门门精通,而是要知道这些学科能解决哪一类问题以及大体上怎样解决.相似类比法,即根据不同对象的某些相似性,借用已知领域的数学模型,也是构造模型的一种方法.建模时还应遵循的一个原则是,尽量采用简单的数学工具,因为你建立的模型总是希望能有更多的人了解和使用,而不是只供少数专家欣赏.
模型求解 可以采用解方程、画图形、证明定理、逻辑运算、数值计算等各种传统的和近代的数学方法,特别是计算机技术.
模型分析 对模型解答进行数学上的分析,有时要根据问题的性质分析变量间的依赖关系或稳定状况,有时是根据所得结果给出数学上的预报,有时则可能要给出数学上的最优决策或控制,不论哪种情况还常常需要进行误差分析、模型对数据的稳定性或灵敏性分析等.
模型检验 把数学上分析的结果翻译回到实际问题,并用实际的现象、数据与之比较,检验模型的合理性和适用性.这一步对于建模的成败是非常重要的,要以严肃认真的态度来对待.当然,有些模型如核战争模型就不可能要求接受实际的检验了.模型检验的结果如果不符合或者部分不符合实际,问题通常出在模型假设上,应该修改、补充假设,重新建模.有些模型要经过几次反复,不断完善,直到检验结果获得某种程度上的满意.
模型应用 应用的方式自然取决于问题的性质和建模的目的,这方面的内容不是本书讨论的范围。
应当指出,并不是所有建模过程都要经过这些步骤,有时各步骤之间的界限也不那么分明.建模时不应拘泥于形式上的按部就班,本书的建模实例就采取了灵活的表述方式
业务用例模型(business use-case model),在RUP中定义为:业务用例模型是说明业务预期功能的模型。
作为一个核心输入模型,业务用例模型用于确定组织的各个角色和可交付工件。从业务用例模型的定义可以看出,它是企业最核心,最概括的业务说明。
它主要是由业务用例和业务主角构成的,其主要目的是说明客户和合作伙伴是如何开展业务的,它描述业务的主要方式是通过业务用例的方式。下图为RUP中业务用例模型的图示。
从图中我们也可以很清楚的看出业务用例模型包括一组的业务用例。这是因为企业中的业务通常都会由多个的业务用例的多个实例构成。
这些业务用例形成的企业工作流程可能会由业务主角所引发,也可能会由业务规则②所引发。②业务规则(Business Rules):业务规则是必须遵守的政策或条件的声明。
业务用例模型实际上就是企业经营业务的一种描述,为了建立完整、准确的企业用例模型,应该将注意力专注于企业的业务做了些什么事情,而不应该集中于如何做。虽然这样可能会产生一些业务用例相冲突,相重复的情况,但是RUP的思想在于迭代,这项工作完全可以在接下去的迭代周期内完善。
业务用例模型是和企业业务最贴近的计算机模型。它的很多思想和企业日常经营如出一辙。
在企业的日常活动中,业务的种类可能有很多种。在一些讲述ERP思想的文章中,通常会强调三类:一种是和主营业务密切相关的工作,例如银行的营业部、信贷部、押汇部等。
这种工作通过人的劳动,将一种资源转变为另一种资源,产生价值。一种是管理型的工作,例如公司的管理层,财务部门等。
这种工作本身并不产生价值,但是它通过指导、管理、检测第一种工作,加大第一种工作的产出价值。还有一种称为支持工作,例如系统管理、安全等。
它并不是很重要,具有支持其他工作的性质。业务模型同样可以使用这种分类。
通过这种分类,可以更好的把握核心业务用例,为下一步的工作打好基础。有很多业务用例是由业务主角触发的,RUP中也把和业务主角有关联关系的业务用例称为核心业务用例(Core Business Use Case)。
这强调了构建业务模型的目的是为了提供以用户为中心的服务。这也是我们建立业务用例的时候应该注意的。
当然,有时候业务用例的触发是为了产生用户需要的结果。例如企业的市场调查行为就不是由业务主角触发,而是企业积累了大量用户请求的结果。
而对于管理型、支持型的,不直接和业务主角的客户类发生联系,但是也有其特定的业务主角,如管理型的业务用例需要和董事会为发生联系,支持型的业务用例可能和供应商发生联系。在建立了基本的业务用例模型之后,对此模型进行精化是非常有必要的,这时候,在上一章中我们介绍的用例的扩展关系和使用关系就有了用武之地。
除了这两种关系,还有一种新的关系。业务建模中使用关系泛化关系(Generalization):根据我的理解,可以把它看作我们比较熟悉的继承关系很相似的一种关系。
Generalization一词含有一般化、概括的意思。它是一个相对抽象的词。
虽然它和继承关系非常相似,但是它们在使用环境和产生目的方面都有相异之处。下图描述了四个业务实体之间的泛化关系: 当你去麦当劳的时候(不要误会,我并不是很经常去的),会选择麦香鸡汉堡、麦香鱼汉堡或是吉士汉堡。
但是分别对这三种汉堡建立业务实体就非常没有意义。所以可以将它们概括为汉堡这个业务实体。
同样的道理,企业的业务流程中也可以概括出一些共有的属性和行为。为了避免多次说明同一个工作流程,您可以将共有的行为放在一个单独的业务用例中。
称为父用例,执行子用例的用例实例将遵循父用例的事件流,同时插入附加行为或修改在子用例事件流中定义的行为。方法的选择以上的原理我采用了UP的方法。
但是除了UP方法,还有XP、FDD等方法。所以在做业务建模的时候,也要根据不同的方法选择适当的工件。
例如素材和功能。方法的好坏并不是我们这片文章讨论的重点,我会在另一篇文章中讨论方法。
再一次需要强调的是,上面讨论的RUP的工件只是为了学习,所以才定义了比较复杂的工件,区分了它们之间的区别。但是在实际中,并不需要这么多的工件,那只会使你的项目涉众和开发人员糊涂。
这些工件的区别只要在你心中就可以了。
1. 等价类划分
常见的软件测试面试题划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.
2. 边界值分析法
边界值分析方法是对等价类划分方法的补充。测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.
使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.
3. 错误推测法
基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.
错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结。还有, 输入数据和输出数据为0的情况。输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况。可选择这些情况下的例子作为测试用例.
4. 因果图方法
前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型). 因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况.
5. 正交表分析法
有时候,可能因为大量的参数的组合而引起测试用例数量上的激增,同时,这些测试用例并没有明显的优先级上的差距,而测试人员又无法完成这么多数量的测试,就可以通过正交表来进行缩减一些用例,从而达到尽量少的用例覆盖尽量大的范围的可能性。
6. 场景分析方法
指根据用户场景来模拟用户的操作步骤,这个比较类似因果图,但是可能执行的深度和可行性更好。
白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果
黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题
详细的描述一个测试活动完整的过程。1. 项目经理通过和客户的交流,完成需求文档,由开发人员和测试人员共同完成需求文档的评审,评审的内容包括:需求描述不清楚的地方和可能有明显冲突或者无法实现的功
可以采用软件测试常用的基该方法:等价类划分法、边界值分析法、错误推测法、因果图法、逻辑覆盖法等设计测试用例。视软件的不同性质采用不同的方法。如何灵活运用各种基该方法来设计完整的测试用例,并最终实现暴露隐藏的缺陷,全凭测试设计人员的丰富经验和精心设计。
编写测试用例文档应有文档模板,须符合内部的规范要求。测试用例文档将受制于测试用例管理软件的约束。 软件产品或软件开发项目的测试用例一般以该产品的软件模块或子系统为单位,形成一个测试用例文档,但并不是绝对的。
测试用例文档由简介和测试用例两部分组成。简介部分编制了测试目的、测试范围、定义术语、参考文档、概述等。测试用例部分逐一列示各测试用例。每个具体测试用例都将包括下列详细信息:版本号、模块名称、用例编号、用例名称、用例级别、预知条件、验证步骤、期望结果(含判断标准)、测试结果、测试时间、测试人员等。
扩展资料
测试执行过程中,应该注意及时更新测试用例。往往在测试执行过程中,才发现遗漏了一些测试用例,这时候应该及时的补充;往往也会发现有些测试用例在具体的执行过程中根本无法操作,这时候应该删除这部分用例;也会发现若干个冗余的测试用例完全可以由某一个测试用例替代,那么删除冗余的测试用例。
总之,测试执行的过程中及时地更新测试用例是很好的习惯。不要打算在测试执行结束后,统一更新测试用例,如果这样,往往会遗漏很多本应该更新的测试用例。
参考资料来源:百度百科-测试用例设计
参考资料来源:百度百科-测试用例
第一、模型准备 首先要了解问题的实际背景,明确建模目的,搜集必需的各种信息,尽量弄清对象的特征。
第二、模型假设 根据对象的特征和建模目的,对问题进行必要的、合理的简化,用精确的语言作出假设,是建模至关重要的一步。如果对问题的所有因素一概考虑,无疑是一种有勇气但方法欠佳的行为,所以高超的建模者能充分发挥想象力、洞察力和判断力,善于辨别主次,而且为了使处理方法简单,应尽量使问题线性化、均匀化。
第三、模型构成 根据所作的假设分析对象的因果关系,利用对象的内在规律和适当的数学工具,构造各个量间的等式关系或其它数学结构。这时,我们便会进入一个广阔的应用数学天地,这里在高数、概率老人的膝下,有许多可爱的孩子们,他们是图论、排队论、线性规划、对策论等许多许多,真是泱泱大国,别有洞天。
不过我们应当牢记,建立数学模型是为了让更多的人明了并能加以应用,因此工具愈简单愈有价值。 第四、模型求解 可以采用解方程、画图形、证明定理、逻辑运算、数值运算等各种传统的和近代的数学方法,特别是计算机技术。
一道实际问题的解决往往需要纷繁的计算,许多时候还得将系统运行情况用计算机模拟出来,因此编程和熟悉数学软件包能力便举足轻重。 第五、模型分析 对模型解答进行数学上的分析。
"横看成岭侧成峰,远近高低各不"。能否对模型结果作出细致精当的分析,决定了你的模型能否达到更高的档次。
还要记住,不论那种情况都需进行误差分析,数据稳定性分析。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
蜀ICP备2020033479号-4 Copyright © 2016 学习鸟. 页面生成时间:4.272秒