《工行个人消费信贷项目 软件测试计划.doc》由会员分享,可在线阅读,更多相关《工行个人消费信贷项目 软件测试计划.doc(21页珍藏版)》请在三一办公上搜索。
1、工行个贷项目系统测试计划(文档编号:FO-HYZQ-24-01-001) 方正奥德计算机系统有限公司2002年11月文档管理信息表主题:系统测试计划版本:10.0内容:工行个贷系统测试计划关键字:参考文档:提交时间:2002年11月29日创建人:倪勇飚文档修改记录表修改人修改时间修改内容目 录一、 概述1二、 引言31、编制目的32、术语说明3三、 测试环境3四、 测试人员组织4五、 项目描述4六、 测试功能(业务)列表8七、 开始测试标准9八、 结束测试标准(项目提交标准)9九、 各个测试项的详细说明10十、局限性10一、 概述规定测试活动中的任务、测试方法、进度、资源和人员职责等。1、 测
2、试方法可以以瀑布型描述软件工程过程,为了说明软件测试测策略,可以把软件工程的过程表达成一个螺旋形。首先,系统工程为软件开发规定了任务,从而把他和硬件要完成的工作分开。接着便是进行软件需求分析,决定被开发软件的信息域、功能、性能、限制条件并确定该软件项目完成后的确认准则。沿着螺旋形向内旋转,将进入软件设计和代码编写阶段。从而使得软件开发工作从抽象逐步走向具体化。CUIVSTDRS软件需求分析系统工程软件设计代码编写系统测试确认测试组装测试单元测试软件测试工作也可以从这一螺旋线上体现出来。在螺线的核心点针对每个单元的源代码,进行单元测试。在各单元测试完成之后,沿螺线向外前进,开始针对软件整体构造和
3、设计的组装测试。然后是检验软件需求是否得到满足的确认测试,最后,来到螺线的最外层,把软件和系统的其它部分协调起来,当作一个整体完成系统测试。这样,沿着螺旋线,从内向外,逐步扩展了测试的范围。以上用螺旋线表明的测试过程,按四个步骤进行,即单元测试、组装测试、确认测试和系统测试。确认的软件集成的软件设计信息模块单元测试模块单元测试模块单元测试模块单元测试组装测试确认测试系统测试软件需求其它系统元素已测模块开始分别完成每个单元的测试任务,以确保每个模块能正常工作。单元测试大量采用了白盒测试方法。尽可能发现模块内部的程序查错。然后,把已测试的模块组装起来,进行组装测试。其目的在于检测与软件设计相关的程
4、序结构问题。这时较多地采用黑盒方法来设计测试用例。完成组装测试之后,要对开发工作初期制定的确认准则进行检验。确认测试是使所开发的软件能否满足所有功能和性能需求的最后保证手段,通常采用黑盒测试方法。完成确认测试之后,给出的应该是合格的软件产品,但为检验它能否与系统的其它部分(如硬件、网络环境、数据库及操作人员)协调工作,需要进行系统测试。单元测试(Unit Testing)也称模块测试,这是针对软件测试的最小单位模块进行正确性检验的测试工作。其目的在于发现各模块内部可能出现的各种差错。单元测试需要从程序的内部结构出发设计测试用例,即采用所谓白盒测试方法。多个模块可以平行地独立进行单元测试:单元测
5、试需要解决的问题单元测试是要针对每个模块的程序,解决以下五个方面的问题模块接口对被测试的模块,信息能否正常无误地流入和流出。局部数据结构在模块工作过程中,其内部的数据是否保持完整性,包括内部数据的内容、形式及相互关系不发生错误。边界条件在为限制数据加工而设置的边界处,模块是否能正常工作。覆盖条件模块的运行是否能达到特定的逻辑覆盖。出错处理模块工作中发生了错误,其中的出错处理实施是否有效。模快与其周围环境的接口有无差错应首先得到检验,否则内部的各种测试工作都是徒劳的。Myers提供的模块接口验证表是很有用的以下简要地列出:模块接受的输入参数个数与模块的变元个数是否一致?参数与变元的属性是否匹配?
6、参数与变元所使用的单位是否一致?传送给另一个被调用模块的变元个数与参数的个数是否相同?传送给另一个被调用模块的变元属性与参数的属性是否匹配?传送给另一个被调用模块的变元,其单位是否与参数的单位一致?调用内部函数时,变元的个数、属性和次序是否正确?在模块有多个入口的情况下,是否有引用与当前入口无关的参数?是否会修改只是作为输入值的变元?出现全程变量时,这些变量是否在所有引用它们的模块中都有相同的定义?有没有把常数当作变量来传送?当模块执行了外部的输入、输出时,Myers提出还需要考虑:文件的属性是否正确?OPEN语句是否正确?格式说明与输入、输出语句给出的信息是否一致?缓冲区的大小是否与记录的大
7、小匹配?是否所有的文件在使用前均已打开了?对文件的结束条件的判断和处理是否正确?对输入、输出错误的处理是否正确?有没有输出信息的正文错误?对于局部数据结构应该在单元测试中注意发现以下几类错误:不正确的或者不相容的说明。不正确的初始化或者缺省值。错误的变量名,如拼写错或者缩写错。不相容的数据类型。下溢、上溢或是地址错误。除局部的数据结构之外,在单元测试中还应该弄清楚全程数据对模块的影响。如何设计测试用例,使得模块测试能够高效率地发现其中的错误,这是非常关键的问题。无论考虑何种逻辑覆盖都应该注意发现以下一些典型的计算错误:对运算优先性的错误理解,或者是错误的处理。运算方式(mode)未加区分,发生
8、了混合运算的情况。初始化错误计算精确度不够。表达式中符号表示的错误。比较和控制流常常是彼此密切相关的,比较的错误势必导致控制流的错误。需要特别注意发现的错误包括:不同的数据类型进行比较逻辑运算或其优先级用错本应该相等的数据,由于精确度原因不相等。变量本省或时比较有错。循环终止不正确,或循环不已在遇到发散的循环时不能摆脱出来。循环控制变量修改有错。程序运行中出现了异常现象并不奇怪,良好的设计应预先估计到,将来投入运行后可能发生什么出错的情况,并给出相应的处理措施,使得用户不至于发生了这样的情况束手无策。检验程序中处理这一问题解决得怎样,可能出现的情况有:对运行发生的错误描述得难于理解。指明的错误
9、并非实际遇到的错误。出错后,尚未进行出错处理便引入系统干预意外处理不当提供的错误信息不足,以致无法找到出错的原因。边界测试通常是单元测试的最后一步,是不容忽视的。实践表明,软件常常在边界地区发生问题。例如,处理N维数组的第N个元素时很容易出错,循环到最后一次执行循环体时可能出错。这可以利用边值分析方法来设计测试用例,以便发生这类程序错误。单元测试的步骤单元测试常常被当作代码编写的附属步骤,也有人把代码编写和单元测试作为一个开发阶段考虑。显然在程序编写完毕了、经过复查、确认没有语法错误以后,针对每个程序模块单独进行的测试工作。由于每个模块在整个软件中并不是孤立的,我们在每个模块进行单元测试时,也
10、不能完全忽视它们和周围模块的相互联系。为模拟这一联系,在进行单元测试时,需要设置若干辅助测试模块。辅助模块有两种,一种是驱动模块(Driver),用以模拟被测模块的上级模块;另一种桩模块(Stub),用以模拟被测模块中所调用的模块。自然驱动模块和桩模块对测试人员来说是一种额外的负担,就是说,虽在单元测试中必须编写这些辅助模块的程序,但却并不作为最终的软件产品提供给用户。好在这些模块的结构十分简单,模块间接口的全面检验可在组装测试中进行。组装测试在每个模块完成单元测试之后,需要按照设计时作出的结构图,把它们联系起来,进行组装测试(Integrated Testing)。经验不多的人可能会提出,既
11、然单元测试时已经对所有模块的工作是否正常进行了检验,为什么还要联起来再次进行测试呢?实践表明,一些模块能够单独地正常工作,并不能保证联结起来也能正常工作,程序在某些局部反应不出来的问题,在全局上很可能暴露出来,影响功能的发挥。怎样合理地组织组装测试,这里提供两种不同的方法,即非增式测试和赠式测试。非增式测试方法是这样进行的:在装配辅助模块的条件下,对所有模块进行个别的单元测试。然后在此基础之上,按程序结构图将各模块联合起来,把联合后的程序当作一个整体进行测试。增式测试的做法与非增式测试有所不同。它的集成是逐步实现的,组装测试也是逐步完成的。也可以说它把单元测试和组装测试结合起来,一道进行,增式
12、组装测试可按不同的次序实施。因而可以有两种:自顶向下增式测试是按结构图上自上而下进行的。自底向上增式测试表示逐步集成和逐步测试的工作是按结构图上自下而上进行的。非增式测试的做法是先分散测试,再集中起来一次完成组装测试。2、 测试任务测试工作分为单元测试、集成测试和系统测试三个步骤,各阶段测试处理内容如下:名 称处 理 内 容单元测试函数级正确性测试集成测试将各小组的所有模块按照设计要求组装成一个可以独立使用的系统,并对其进行功能测试系统测试将所有程序合并成一个完整的系统,并在尽可能接近实际运行环境的测试条件下,对系统进行功能及性能测试。系统测试计划是针对系统测试阶段的测试方案。二、 测试目标本
13、次测试计划书是在个贷移行改造项目组各开发小组经历了源代码编写、测试、嵌入JSP工作,基本完成系统编码工作之后,制定的对整个系统的两周测试计划。为个贷系统在12月14日成功上线对整个系统做最后的测试修改。系统测试分两个阶段:开发环境中的系统测试。用户环境中的测试。开发测试环境尽量模拟系统生产时的真实环境,对系统进行单元测试,组合测试和系统测试。受开发环境的限制,系统硬件环境和网络环境是同最终系统的运行环境是不一致的。主要完成系统的单元边界测试,功能测试,可用性测试。并在测试阶段对代码进行用户测试环境尽量模拟系统生产时的真实环境,对系统进行系统测试。由于整个系统是构建在邮政综合网的广域网基础之上,
14、用户方提供的测试环境在网络结构上同系统生产环境是不一致的。系统的压力测试,UAT测试,整体性能测试要在系统最终上线之后才能实现。三、 测试环境1. 开发环境中应用软件系统测试环境如下:l 硬件环境:IBM 44P(16.54.13.96)服务器,充当应用服务器,IBM P670(16.54.13.93)数据库服务器。l 网络环境:100M局域网的网络环境;l 操作系统环境: AIX4.03版;l 测试客户端系统软件:WIN2000,WINDOWS98,InternetExploer5.0,InternetExploer5.5,InternetExploer6.0l 数据库环境:ORACLE 8
15、.1.6 for Aix;l 应用程序环境:WebSphere 3.5;l 应用数据:测试人员建立的测试数据;l 测试客户端系统软件:WIN2000,WINDOWS98,WINDOWSME,InternetExploer5.0,InternetExploer5.52. 测试环境中应用软件系统测试环境如下:44P(16.54.13.96)服务器,充当应用服务器,670(16.54.13.93)数据库服务器。l 网络环境:100M局域网的网络环境;l 操作系统环境: AIX4.03版;l 测试客户端系统软件:WIN2000,WINDOWS98,InternetExploer5.0,Internet
16、Exploer5.5,InternetExploer6.0l 数据库环境:ORACLE 8.1.6 for Aix;l 应用程序环境:WebSphere 3.5;l 应用数据:测试人员建立的测试数据;l 测试客户端系统软件:WIN2000,WINDOWS98,WINDOWSME,InternetExploer5.0,InternetExploer5.5四、 测试人员组织1. 测试负责人:杜磊1) 编制系统测试计划,系统测试大纲,制定系统测试通过标准,整理模块测试记录,整理系统测试记录2) 编制系统测试案例3) 参与各系统单元测试、组合测试和系统测试。审核组合测试和系统测试结果。2. 各系统测试
17、组长:杜磊1) 编制本系统中模块单元测试通过标准,协助测试负责人完成系统测试大纲。2) 编制本系统测试案例3) 参与本系统单元测试、组合测试和系统测试。审核本系统组合测试和系统测试结果。4) 完成本人参与编程部分的软件测试记录文档,审核本系统开发人员单元测试结果。3. 测试组成员:杜磊,徐加星,倪勇飚1) 编制单元测试案例2) 参与本人负责开发的单元测试、以及包括该单元的组合测试和系统测试。3) 完成本人参与编程部分的软件测试记录文档,模块测试记录文档。1、 编码人员测试工作(1) 准备测试案例(2) 按测试案例测试程序代码(3) 形成测试纪录表和问题纪录表2、 非编码人员的工作(1) 检查测
18、试案例是否充足,是否满足测试需要?(2) 协助编码人员完成测试案例的准备。(3) 同编码人员一起完成测试。(4) 分工:3、 提醒的问题。由于工期较紧,若功能单元中未实现的或者欠缺的部分,需要编制针对这些问题的测试案例写入测试案例表中,将问题纪录到测试问题记录表中。五、 测试日程和测试内容1. 测试进度:系统测试计划如下:开始日期结束日期测试内容2002/11/212002/11/23开发环境单元测试2002/11/262002/11/27开发环境组合测试2002/11/282002/11/29开发环境系统测试2002/11/202002/11/30用户方测试环境组合测试及系统测试,同时进行测
19、试中出现问题的修改。2. 测试内容列表:1) 单元测试:业务编号测试内容测试日期测试人员测试起点测试终点期望的测试结果1客户贷款申请1121倪勇飚输入客户基本信息建立客户贷款申请书正常显示2客户贷款审批1122倪勇飚申贷员检查客户贷款申请书最终审批员审批正常显示2) 组合及系统测试:业务编号测试内容测试日期测试人员测试起点测试终点1客户贷款申请1128杜磊输入客户基本信息建立客户贷款申请书2客户贷款审批1128杜磊申贷员检查客户贷款申请书最终审批员审批 注:详细内容见 系统测试报告六、 开始测试标准l 一般性以上(含一般性)模块已全部完成;l 内部单元(模块)调试已完成90%;l 系统连接已完
20、成。七、 结束测试标准(项目提交标准)l 计划测试案例必须全部完成;l 无已发现的1,2,3类错误;l 已发现的4,5类错误在各相关部门的允许范围内;l 在规定的时间范围,经过规定的测试后,不出现1,2,3类错误;错误分类原则说明 1灾难性错误:导致操作系统、数据库系统崩溃;2应用系统错误:导致应用系统无法运行;coredump,通讯异常; 3核心功能错误:导致某种核心功能无法进行;帐务处理,密码校验; 4一般功能错误:一般性功能出现不频繁的错误; 5其他性错误:造成用户不便且不影响功能的错误。八、 各个测试项的详细说明参见系统测试报告九、 局限性系统测试仅仅是在尽可能真实的环境下进行的测试,而且测试的内容只局限于功能性的测试,对系统的性能并未做任何测试。