您的位置:网站首页 > app开发 > 郑州软件开发 > 正文

软件开发在类级别上的测试方法

作者:知网科技 日期:2020/6/17 人气:
标签:


 

       郑州软件公司认为软件测试从“小型”测试开始,慢慢进展到“大型”测试。对面向对象系统的小型测试着重于单个类和类封装的方法。随机测试和划分是在面向对象测试中测试类的方法。

 

       1.对面向对象类的随机测试

 

       通常的结构化的设计方法,用的“是面向作业的设计方法,它把系统分解以后,提出一组作业,这些作业是以过程实现系统的基础构造,把问题域的分析转化为求解域的设计,分析的结果是设计阶段的输入”。

 

       而面向对象设计(OOD)采用“造型的观点”,以OOA为基础归纳出类,并建立类结构或进一步构造成类库,实现分析结果对问题空间的抽象。OOD归纳的类,可以是对象简单的延续,可以是不同对象的相同或相似的服务。由此可见,OOD不是在OOA上的另一思维方式的大动干戈,而是OOA的进一步细化和更高层的抽象。所以,OOD与OOA的界限通常是难以严格区分的。OOD确定类和类结构不仅是满足当前需求分析的要求,更重要的是通过重新组合或加以适当的补充,能方便实现功能的重用和扩增,以不断适应用户的要求。因此,对OOD的测试,本文建议针对功能的实现和重用以及对OOA结果的拓展,从如下3方面考虑。

 

       1)对认定的类的测试

 

       郑州苹果软件开发认为OOD认定的类可以是OOA中认定的对象,也可以是对象所需要的服务的抽象,对象所具有的属性的抽象。认定的类原则上应该尽量基础性,这样才便于维护和重用。测试认定的类的一些准则如下。

 

       (1)是否涵盖了  OOA中所有认定的对象。

 

       (2)是否能体现OOA中定义的属性。

 

       (3)是否能实现  OOA中定义的服务。

 

       (4)是否对应着一个含义明确的数据抽象。

 

       (5)是否尽可能少地依赖其他类。

 

       (6)类中的方法C++--类的成员函数)是否单用途。

 

       2)对构造的类层次结构的测试

 

        郑州android开发认为为了能充分发挥面向对象的继承共享特性,OOD的类层次结构,通常基于m)A中产生的分类结构的原则来组织,着重体现父类和子类问一般性和特殊性。在当前的问题空间,对类层次结构的主要要求是能在解空间构造实现全部功能的结构框架。为此,测试如下方面。

 

       (1)类层次结构是否涵盖了所有定义的类。

 

       (2)是否能体现OOA中所定义的实例关联。

 

       (3)是否能实现OOA中所定义的消息关联。

 

       (4)于类是否具有父类没有的新特性。

 

       (5)子类间的共同特性是否完全在父类中得以体现。

 

       3)对类库支持的测试

 

       对类库的支持虽然也属于类层次结构的组织问题,但其强调的重点是再次软件开发的重用。由于它并不直接影响当前软件的开发和功能实现,因此,将其单独提出来测试,也可作为对高质量类层次结构的评估。测试点如下。

 

       (1)一组子类中关于某种含义相同或基本相同的操作,是否有相同的接口(包括名字和参数表)。

 

       (2)类中方法(C++——类的成员函数)功能是否较单纯,相应的代码行是否较少(建议为不超过30行)。

 

       (3)类的层次结构是否是深度大、宽度小。

 

       郑州安卓软件开发认为为了提供时这些方法的简略性说明,考虑一个银行应用,其中account类有下列操作:open,setup,deposit,withdraw balance,summarize,creditLimit和close,每一个操作均可应用于account,但是,该问题的本质包含了一些限制(如账号必须在其他操作可应用前被打开,在所有操作完成后才关闭)。即使有了这些限制,也存在操作的很多排列。一个account实例的最小的行为生命历史包括下面操作:

 

       open·setup·deposit·withdraw·close

 

       这表示了对account的最小测试序列,然而,在下面序列中可能发生大量的其他行为:
 

       open·setup·deposit·[deposit|withdraw|balance|summarize|creditLimit] n·withdraw·close

 

       一系列不同的操作序列可以随机产生,例如:

 

       测试用例#rl:
 

       open·setup·deposit·deposit·balance·summarize·ithdraw·close

 

       测试用例#rZ:
 

       open·setup·deposit·withdraw·deposit·balance·credltLltmt·withdraw·close
 

       执行这些和其他的随机顺序测试以测试不同的类实例生命历史。

 

       2.在类级别上的划分测试

 

       采用划分测试可以来减少测试类所需的测试用例的数量。传统软件的等价划分基本相同师式输人和输出被分类,测试用例被设计以处理每个类别。但是,划分类别是如何导出的呢?

 

       基于状态的划分是根据类操作改变类的状态的能力来划分类操作的。再次考虑account类,状态操作包括 dePosit o withdraw,而非状态操作包括 balance、summarize和 credit-Limit。测试被以这样一种方式来设计:分别独立测试改变状态的操作和不改变状态的操作,因此:

 

       测试用例#pl:open·setup·deposit·deposit·withdraw·withdraw·close

 

       测试用例#pZ:open·setup·deposit·su。arlze·credltLlmlt·withdraw·close

 

       测试用例#PI改变状态,而测试用例#pZ测试不改变状态的操作(除了那些在最小序列中的操作)。

 

       基于属性的划分是根据操作使用的属性来划分类操作。对 account类,用属性 balance和redit limit来定义划分,操作被分为 3个类别:①使用。redit liwht的操作。②修改credt limit的操作。③不使用或不修改。redit limit的操作。然后对每个划分设计测试序列。

 

       郑州ios开发认为基于类别的划分是根据各自完成的类属函数来划分类操作。例如,在account类中的操作可被分类为初始化操作(open、setup)、计算操作(deposit、withdraw)、查询操作(balance、summarize、credltLlmit)和终止操作(close)。

       转载请注明出处:郑州知网软件  http://www.nwisdom.com


(())
顶一下
参与讨论
姓名: 验证码:看不清楚,换一个
最新评论

联系我们

软件开发: 15838307519(司经理)

网络营销: 13676968269(王经理)

网络建设: 13073737771(郭经理)

24小时服务电话: 0371-56683330

了解更多APP开发

+好友