[高等教育]软件测试基础课件5.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[高等教育]软件测试基础课件5

面向对象的软件测试与传统软件测试 面向对象技术的特点给测试带来的新问题具体表现为: (1)封装把数据及对数据的操作封装在一起,限制了对象属性对外的透明性和外界对它的操作权限,在某种程度上避免了对数据的非法操作,有效防止了故障的扩散。但同时,封装机制也给测试数据的生成、测试路径的选取以及测试结构的分析带来了困难。 (2)继承实现了共享父类中定义的数据和操作,同时也可定义新的特征。子类是在新的环境中存在,所以父类的正确性不能保证子类的正确性。继承使代码的重用率得到了提高,但同时也使故障的传播几率增加。 (3)多态和动态绑定增加了系统运行中可能的执行路径,而且给面向对象软件带来了严重的不确定性,给测试覆盖率的活动带来新的困难。 1 数据成员是否满足数据封装的要求 数据封装是数据和数据有关的操作的集合。 检查数据成员是否满足数据封装的要求,基本原则是数据成员是否被外界(数据成员所属的类或子类以外的调用)直接调用。 当改变数据成员的结构时,是否影响了类的对外接口,是否会导致相应外界必须改动。 值得注意,有时强制的类型转换会破坏数据的封装特性。 8.2 类测试 例如:   class Hiden   {private:   int a=1;   char *p= hiden;}   class Visible   {public:   int b=2;   char *s= visible;}   …..   …..   Hiden pp;   Visible *qq=(Visible *)pp;   在上面的程序段中,pp的数据成员可以通过qq被随意访问。 1. 继承的成员函数是否都不需要测试? 对父类中已经测试过的成员函数,两种情况需要在子类中重新测试:a)继承的成员函数在子类中做了改动;b)成员函数调用了改动过的成员函数的部分。 2. 对父类的测试是否能照搬到子类? 延用上面的假设,Base::Redefined()和Derived::Redefined()已经是不同的成员函数,它们有不同的服务说明和执行。 应该对 Derived::Redefined()重新测试分析,设计测试用例。但由于面向对象的继承使得两个函数有相似,故只需在 Base::Redefined()的测试要求和测试用例上添加对Derived::Redfined()新的测试要求和增补相应的测试用例。 例如:   Base::Redefined()含有如下语句   if (value0) message (less);   else if (value==0) message (equal);   else message (more);   Derived::Redfined()中定义为   if (value0) message (less);   else if (value==0) message (It is equal);   else   {message (more);   if (value==88)message(luck);}   在原有的测试上,对Derived::Redfined()的测试只需做如下改动:将value==0的测试结果期望改动;增加value==88的测试。 面向对象软件测试模型 面向对象测试的模型 面向对象分析OOA的 测试 OOA直接映射问题空间,全面的将问题空间中实现功能的现实抽象化。 将问题空间中的实例抽象为对象,用对象的结构反映问题空间的复杂实例和复杂关系,用属性和服务表示实例的特性和行为。 OOA对问题空间分析抽象的不完整,最终会影响软件的功能实现,导致软件开发后期产生大量原本可避免的修补工作; 冗余的对象或结构会影响类的选定、程序的整体结构或增加程序员不必要的工作量。 面向对象测试的模型 面向对象设计OOD的测试 OOD确定类和类的结构不仅满足满足当前需求分析的需求,更重要的是通过重新组合或加以适当的补充,能方便实现功能的重用和扩增。 对OOD的测试针对功能的实现和重用以及对OOA结果的拓展。 ——对认定的类测试(是否涵盖了OOA中所有认定的对象;是否能体现OOA中定义的属性;是否能实现OOA中定义的服务;是否对应着一个含义明确的数据抽象;是否尽可能少的依赖其他类;类中的方法是否单用途) ——对构造的类层次结构的测试(类层次结构是否涵盖了所有定义的类;是否能体现OOA中定义的实例关联;是否能实现OOA中定义的消息关联;子类是否具有父类没有的新特性;子类间的共同特性是否完全在父类中得以体现) ——对类库的支持的测试 面向对象测试的模型 面向对象程序是把功能的实现分布在类中。能正确实现功能的类,通过消息传递来协同实现设计要求的功能。这种程序架构能将出现的错误精确的确定在某一具体的类。 对O

文档评论(0)

jiupshaieuk12 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档