软件开发流程的新兴观念是将软件测试的角色,提升为系统开发时每一个阶段都必须要持续且反复进行的重要任务,确保每一个阶段都能及早发现潜藏于系统内的危险因子。当某一个阶段的测试结果无法达到预期的要求时,必须回溯到之前的开发阶段,再次分析和审核,这种过程称之为重构(Refactoring)。配合重构的机制,让系统的品质都能够在严密的测试监控下持续成长。不过由于网络时代的革命兴起之后,软件系统的架构变得更为复杂,相对的软件测试的发展也更显得重要。

J2EE平台内的软件测试

   XP只定义了两种测试的层级,第一种层级是「单元测试」,因为单元测试的用意是为了检验程序代码是否合乎逻辑,而且是针对系统内部的模块来测试,因此又可以称做为程序逻辑测试(Code Logic Testing)。为了因应不同的应用程序开发平台的特殊架构,在J2EE的平台里,还发展出与J2EE Container 紧密结合的整合测试(Integration Testing)。

   另一种层级是接受度测试(Acceptance Testing),又称作功能测试(Functional Testing)。在软件测试中还有一个大家常听到的是效能测试(Performance Testing)。由于效能测试与客户的需求是密不可分,所以将它归类为接受度测试的延伸应用。后归纳起来,一个J2EE平台可能所需要的测试流程,以及测试之间的关系,如图一所示。

软件测试 

在Web层内软件测试的概念与流程,如图二所示,其中键头旁的数字符号代表着整个测试流程的执行步骤。首先先准备好受测数据与受测系统之后,借着虚拟浏览器来发出request,向受测系统取得包裹着HTML code的response。然后再利用测试平台来协助我们进行受测数据与预期值的比对工作。当比对后所回报的结果都是正确无误时,代表着受测系统的功能可以正常运作了。图中的测试平台与虚拟浏览器在测试中扮演着关键的角色。

 虽然发展测试平台的概念已经行之有年了,然而具备有可延伸且开放式架构的测试平台并不多,其中OpenSource社群以Java开发出来的JUnit,是极具代表性的测试平台。另外是泽众软件出品的AutoRunner了