软件在运行过程中可能会产生各种各样的问题,也可能带来不同程序的严重后果。软件测试是保证软件质量的最重要的手段。软件测试的概念IEEE定义为:使用人工或自动手段来运行或测定某个系统过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。
尽管面向对象技术的基本思想保证了软件应该有更高的质量,但无论采用什么样的编程技术,编程人员的错误都是不可避免的,而且由于面向对象技术开发的软件代码重用率高,更需要严格测试,避免错误的繁衍。因此,软件测试在面向对象编程里更具有它的重要性。
典型的面向对象程序具有继承、封装和多态的新特性,这使得传统的测试策略必须有所改变。封装是对数据的隐藏,外界只能通过被提供的操作来访问或修改数据,这样降低了数据被任意修改和读写的可能性,降低了传统程序中对数据非法操作的测试。继承是面向以对程序的重要特点,继承使得代码的重用率提高,同时也使错误传播的概率提高。多态性使得面向对象程序对外呈现出强大的处理能力。但同时去使得程序内“同一”函数的行为复杂化,测试时不得不考虑不同类型具体执行的代码和产生 的行为。
功能测试:测试是否满足开发要求,是否能够提供设计所描述的功能,是否用户的需求都得到满足。功能测试是系统测试最常用和必须的测试,通常还会以正式的软件说明书为测试标准。
强度测试及性能测试:测试系统的能力最高实际限度,即软件在一些超负荷的情况,功能实现情况,如要求软件某一行为的大量重复、输入大量的数据、对数据库大量复杂性的查询等。测试软件的运行性能。这种测试常常与强度测试结合进行,需要事先对被测试软件提出性能指标,如传输连接的最长时限、传输的错误率、计算的精度 、记录的精度、响应的时限和恢复时限等。