第7章系统的测试7.1系统的测试框架在软件系统开发的各个环节都有可以产生问题,因此需要不断的进行测试。目前,一种主流的思想认为任何系统开发后都存在各种各样的缺陷,而这些缺陷的存在是不可避免的。测试的目的不是证明系统的准确性,而是为是尽可能的发现系统存在的问题,从而减少当系统交付客户后暴露出的问题,从而提升用户的体验、降低系统的开发、运行与维护成本。软件测试[27-30]的方法很多。在本系统中测试策略主要以时间为序,按目的展开测试。具体测试框架如图7-1所示:单元开发阶段组件组装阶段系统完成阶段单元测试代码测试集成测试功能测试系统测试性能测试图7-1本系统测试的框架软件测试贯穿软件工程的每个阶段,一般来讲单元测试对应系统开发中的模块、类、方法。由于每个单元较小,最适合由开发人员自行测试。由于不同的类、模块、包等由不同开发人员开发,在集成时需要进行集成测试,看在调用方面是否存在问题。由于这一部分不与具体功能关联,所以测试规模不大。在开发的各个阶段有单元测试、集成测试、系统测试与验收测试等不同的测试。然而这四种测试的测试计划制定时间与其开展的时间正好相反。测试计划的制定与测试工作的开展在时间上有较强的应对关系,相关情况如图7-2所示:用户需求验收测试逻辑设计系统测试物理设计集成测试软件开发软件测试详细单元设计单元测试编写代码验证验证验证验证图7-2程序开发对应测试类型7.2单元测试7.2.1单元测试作用就范围而言单元测试是软件测试是最小规模的一种。单元测试只关注某个方法、类的内部处理细节,如顺序与路径等。单元测试需要注意以下几点内容:1)测试目标单元的执行过程是否与预期一致。2)单元测试需要关注测试目标内部的路径。在有较多路径的情况下需要采用路径覆盖,使得尽可能多的路径被测试到。如果忽略了一些非主要的分支路径,则这种隐患可能在系统运行时显露出来。单元测试根据测试的目的,又有不同的分类等。例如功能单元测试用于测试单元是否实现了预期的目标,逻辑单元测试用于了解被测试单元的逻辑是否合乎要求,而集成单元测试则用于了解不同单元之间的相互调用情况。7.2.2基于NUnit的单元测试在微软的VS.NET集成开发环境中内容了NUnit单元测试工具,该工具能根据测试目标的名称、输入、输出等相关信息生成桩模块。相关模块结构如下:[TestMethod]publicvoidTestMethod1(参数1,参数2,…..){//定义相关参数值//将期望值与运行结果进行比对//输出对比结果。}...