2017.8.11测试理论知识 | 面向对象的集成测试和系统测试

Posted 软件测试资源站

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2017.8.11测试理论知识 | 面向对象的集成测试和系统测试相关的知识,希望对你有一定的参考价值。


第35贴:面向对象的集成测试

传统的集成测试,是通过各种集成策略集成各功能模块进行测试,一般可以在部分程序编译完成的情况下进行。而对于面向对象程序,相互调用的功能是散布在程序的不同类中,类通过消息相互作用申请和提供服务。类的行为与它的状态密切相关,状态不仅仅是体现在类数据成员的值,也许还包括其他类中的状态信息。由此可见,类相互依赖极其紧密,根本无法在编译不完全的程序上对类进行测试。所以,面向对象的集成测试通常需要在整个程序编译完成后进行。此外,面向对象程序具有动态特性,程序的控制流往往无法确定,因此也只能对整个编译后的程序做基于黑盒子的集成测试。


面向对象的集成测试能够检测出相对独立的单元测试无法检测出的那些类相互作用时才会产生的错误。基于单元测试对成员函数行为正确性的保证,集成测试只关注于系统的结构和内部的相互作用。

面向对象的集成测试可以分成两步进行:先进行静态测试,再进行动态测试。

静态测试主要针对程序的结构进行,检测程序结构是否符合设计要求。现在流行的一些测试软件都能提供一种称为“可逆性工程”的功能,即通过原程序得到类关系图和函数功能调用关系图,例如International Software Automation公司的Panorama-2、Rational公司的Rose C++ Analyzer等,将“可逆性工程”得到的结果与OOD的结果相比较,检测程序结构和实现上是否有缺陷。换句话说,通过这种方法检测OOP是否达到了设计要求。


动态测试设计测试用例时,通常需要上述的功能调用结构图、类关系图或者实体关系图为参考,确定不需要被重复测试的部分,从而优化测试用例,减少测试工作量,使得进行的测试能够达到一定覆盖标准。测试所要达到的覆盖标准可以是:达到类所有的服务要求或服务提供的一定覆盖率;依据类间传递的消息,达到对所有执行线程的一定覆盖率;达到类的所有状态的一定覆盖率等。同时也可以考虑使用现有的一些测试工具来得到程序代码执行的覆盖率。


具体设计测试用例,可参考下列步骤:

1. 先选定检测的类,参考OOD分析结果,仔细出类的状态和相应的行为,类或成员函数间传递的消息,输入或输出的界定等。

2. 确定覆盖标准。

3. 利用结构关系图确定待测类的所有关联。

4. 根据程序中类的对象构造测试用例,确认使用什么输入激发类的状态、使用类的服务和期望产生什么行为等。

值得注意,设计测试用例时,不但要设计确认类功能满足的输入,还应该有意识的设计一些被禁止的例子,确认类是否有不合法的行为产生,如发送与类状态不相适应的消息,要求不相适应的服务等。根据具体情况,动态的集成测试,有时也可以通过系统测试完成。


第36贴:面向对象的系统测试

通过单元测试和集成测试,仅能保证软件开发的功能得以实现。但不能确认在实际运行时,它是否满足用户的需要,是否大量存在实际使用条件下会被诱发产生错误的隐患。为此,对完成开发的软件必须经过规范的系统测试。换个角度说,开发完成的软件仅仅是实际投入使用系统的一个组成部分,需要测试它与系统其他部分配套运行的表现,以保证在系统各部分协调工作的环境下也能正常工作。 

 

系统测试应该尽量搭建与用户实际使用环境相同的测试平台,应该保证被测系统的完整性,对临时没有的系统设备部件,也应有相应的模拟手段。系统测试时,应该参考OOA分析的结果,对应描述的对象、属性和各种服务,检测软件是否能够完全“再现”问题空间。系统测试不仅是检测软件的整体行为表现,从另一个侧面看,也是对软件开发设计的再确认。


这里说的系统测试是对测试步骤的抽象描述。它体现的具体测试内容包括:


•功能测试:测试是否满足开发要求,是否能够提供设计所描述的功能,是否用户的需求都得到满足。功能测试是系统测试最常用和必须的测试,通常还会以正式的软件说明书为测试标准。

•强度测试:测试系统的能力最高实际限度,即软件在一些超负荷的情况,功能实现情况。如要求软件某一行为的大量重复、输入大量的数据或大数值数据、对数据库大量复杂的查询等。

•性能测试:测试软件的运行性能。这种测试常常与强度测试结合进行,需要事先对被测软件提出性能指标,如传输连接的最长时限、传输的错误率、计算的精度、记录的精度、响应的时限和恢复时限等。

•安全测试:验证安装在系统内的保护机构确实能够对系统进行保护,使之不受各种非常的干扰。安全测试时需要设计一些测试用例试图突破系统的安全保密措施,检验系统是否有安全保密的漏洞。

•恢复测试:采用人工的干扰使软件出错,中断使用,检测系统的恢复能力,特别是通讯系统。恢复测试时,应该参考性能测试的相关测试指标。

•可用性测试:测试用户是否能够满意使用。具体体现为操作是否方便,用户界面是否友好等。

•安装/卸载测试(install/uninstall test)等等。


系统测试需要对被测的软件结合需求分析做仔细的测试分析,建立测试用例。




END

以上是关于2017.8.11测试理论知识 | 面向对象的集成测试和系统测试的主要内容,如果未能解决你的问题,请参考以下文章

头歌-软件测试技术-面向对象测试_王铁军

面向对象函数基本知识理论篇

面向对象函数基本知识理论篇

Java 面向对象编程jQueryJavaScriptservletjavabean----理论知识

数仓初识-理论知识

工业供应链系统集成:流程组织业绩实现集成系统智能化