For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
由于面向对象技术具有封装、继承、多态等新的特性,带来了传统程序设计所不存在的错误,导致原来行之有效的软件测试技术对面向对象技术开发的软件有些力不从心。
面向对象软件测试与传统软件测试有以下不同:
测试关注的对象不同
传统测试的对象是软件的功能模块,而面向对象测试关注的则是作为一个整体的“对象”。所以,面向对象的测试方法更注重于软件的实质。
封装性测试
面向对象程序设计通过封装对象的属性和方法,有效地防止外界对封装的数据的破坏,避免程序各部分对数据的滥用,在一定程度上简化了类的使用,避免了不合理的操作,阻止了错误的扩散,但是,封装使得类的属性和状态对外不可见,这就给测试用例的生成造成困难。为了能够观察到这些属性和状态,以确定程序执行的结果是否正确,需要在类的定义中增加一些专门的函数来返回执行的结果,这样一来就增加了测试的工作量。
继承性测试
面向对象程序设计的继承性使得一个函数可能被封装在多个类中,子类中还可以对继承重新定义。这种继承特性,让人有一种错觉,就是如果子类继承了父类之后没有重新定义就不需要测试。根据Weyuker的不可分解性公理——对一个程序进行充分的测试,并不表示其中的成分都得到了测试。因此,在父类得到充分的测试后,继承该父类的子类需要重新测试。当然,如果类的方法被重新定义,那么不仅对该方法自身及其所在的类要重新测试,还要对所有继承该类的子类重新测试。
多态性测试
面向对象程序设计的多态性使得同一消息可以根据发送消息对象的不同采用多种不同的行为方式。多态性增加了系统运行中可能的执行路径,因此,它增加了测试用例选取的难度和数量。
总之,面向对象的封装、继承和多态等新特性,使得面向对象软件测试和传统测试有很大不同,针对面向对象软件测试应当考虑这些特性,制定更合适的测试策略,设计更完善的测试用例,才能更好地完成测试任务。
东莞达内IT培训免费试听课程火热报名中,带你轻松入行,26大课程全国45个城市,129家中心均可就近学习,学完后,达内老师会帮助进行面试辅导,在面试前,就带你跨过可能存在的坑,让你入职更加顺利
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请添加3216764521学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。