支付宝WAP支付平台测试方案一、项目简介支付宝WAP平台从总体上分为子模块,分别是登录、注册、账户管理、交易管理、缴费中心和交易接口,系统结构图如下:二、测试方案组成部分根据我们对支付宝WAP平台设计方案的分析,认为本测试方案应该由三个部分组成,即软件验证技术、软件确认技术和软件测试管理技术。它们内涵及相互之间的关系如下图所示:支付宝WAP支付平台测试方案测试技术层面测试管理层面软件验证技术需求规格说明验证软件测试团队组织管理设计规格说明验证代码验证软件测试计划管理交付验证软件确认技术单元测试软件缺陷(错误)跟踪管理集成测试系统测试软件测试件管理交付测试其中,软件验证技术着眼于排除软件开发文档中的错误。验证活动涉及的文档按开发流程主要涉及需求规格说明、设计规格说明(包括概要设计规格说明、详细设计规格说明、数据库设计规格说明)、编码规格说明、产品交付文档等一系列书面材料。目前验证技术的实施在很大程度上是依靠测试人员手工完成的。验证活动视实际需要有时还会涉及到开发人员和目标客户,需要得到他们必要的理解和支持。验证测试采用的主要测试手段有:面对面质询、文档抽查、非正式会议、同行评审等等。相对于软件验证技术,软件确认技术则主要着眼于排除程序代码中的错误。活动涉及的对象主要是程序部件的代码或软件成品。在实施过程中,常常按被测代码的规模和测试所处的层次将软件确认测试分为四个阶段,即:单元测试(也叫类测试)、集成测试(也叫组装测试)、系统测试和交付测试。确认测试基本上由软件测试人员对照相关开发文档运行程序独立完成的。必要时,也可让设计人员带领测试人员阅读程序代码共同发现其中的错误,(即所谓代码评审会)。我们认为,在单元测试(或类测试)阶段,应该有软件编码人员参与,这样能减轻测试人员阅读代码障碍。原则上,测试理论不提倡程序作者负责把关自己编写的程序的质量。在实际实施过程中,可视实际情况灵活处理。(如成对编程可能会较好的处理单元测试这个难题,上面提到的代码评审会也是为应对这个难题而想出的一个好办法。),软件确认技术目前已经部分地实现了测试工具的自动化,市面上已有不少自动化工具能在测试人员的辅助下完成相应的测试工作(例如用于Java代码单元测试的Junit工具,又如用于GUI测试的RationalVisualTest工具,等等)。软件验证技术和软件确认技术均属于测试技术层面的东西。然而对于工程质量的保证而言,光靠软件测试技术还远远不够,还需要技术管理层面上的东西。我们这里强调软件测试管理技术的目的正是为弥补这个不足。按照管理的对象不同,测试管理技术大致涵盖软件测试团队组织管理、软件测试计划管理、软件缺陷(错误)跟踪管理以及软件测试件管理四大部分。下面,针对支付宝WAP平台项目对该测试方案做一个详细的诠释。三、在支付宝WAP平台测试过程采用的测试内容3.1在支付宝WAP平台采用测试验证技术我们将对支付宝WAP平台采用软件验证技术,主要包括需求规格说明验证、设计规格说明验证、代码验证以及交付验证。以下逐一说明。需求规格说明验证的主要任务是保证用户的功能需求、业务需求、以及其他的一些需求(如非功能性需求、约束性需求等等)都已经被分配到软件需求规格说明的各需求项中。设计规格说明验证相对需求规格说明验证而言,稍微复杂些,它包括3个部分的内容:即概要设计规格说明验证、详细设计规格说明验证以及数据库设计规格说明验证。其中概要设计规格说明验证的主要任务是确保软件需求规格说明中的需求项全部已经分配到了概要设计规格说明的各软件模块之中并且无多余物,详细设计规格说明验证的主要任务是确保概要设计规格说明中的模块已经全部分配到详细设计规格说明的各软件单元之中并且无多余物,数据库设计规格说明虽然从范畴上讲应该属于详细设计规格说明范畴,但我们认为应该把它独立出来实施验证活动。(数据库设计和软件设计毕竟有很多不同之处。)数据库设计规格说明验证的重点任务是验证数据库与外部应用程序的接口是否正确、数据操作实现界面是否清晰、数据库整体设计是否合理、数据表设计是否符合3NF要求(如违反范式要说明详细理由)以及数据表中的字段(键)和索引的设计是否高效合理等等。代码验证的内容包括:代码编写规范审查、代码审查和代码静态分析三个部分。代码编写规范审查主要是审核代码排版的格式以及注解的格式是否符合开发团队的相应规范;代码审查的任务主要是验证详细设计中的软件单元是否都已被代码覆盖并正确实现,并且代码中不含冗余物;代码静态分析技术主要任务是检查变量或标号的定义与使用、表达式运算以及程序的流程设计上是否存在缺陷或错误。做完代码验证以后,软件系统需要依次做单元测试、集成测试和系统测试,这部分内容属软件确认技术范畴,下面有专门的论述。软件系统在做完系统测试后,就面临着交付使用的问题,在系统正式移交给用户之前,还需要做交付验证和交付测试。交付测试技术下文有专门的论述,不赘述,这里主要谈交付验证技术。交付验证包括安装验证和使用验证两部分内容。其中,安装验证的主要任务是保证程序能按照用户手册的提示正确安装到目标机器上,使用验证的主要任务是确保程序能按照用户手册的提示的操作正确完成某项功能或事务处理。这两部分工作通常是由测试人员完成的,用以核实相关安装和使用手册是否正确无误。3.2在支付宝WAP平台中应用软件确认技术为了确保及时、尽早发现软件中存在的问题,我们将在支付宝WAP平台的测试过程使用的确认技术包括:单元测试技术、集成测试技术、系统测试技术和交付测试技术。单元测试:主要任务是验证详细设计规格说明中所划分出来的软件单元是否被程序编制人员用代码形式正确地实现了。这里软件单元可能是某个函数(或称方法)也可能是某个抽象数据类型(如类、数据结构或者模板)。单元测试在实际测试当中也常常被称为类测试(在面向对象的设计中)或白盒测试(白盒的意思是面向代码)。测试人员输入设计好的测试用例,测试被测单元能否按照设计要求处理这些测试用例,对出现异常的测试用例,测试人员将做记载并反馈给软件开发团队。集成测试:对照软件概要设计规格说明,验证各软件单元组装后形成模块能否达到概要设计规格说明中模块的设计目标;在模块级集成工作完成之后,测试人员还应测试各模块组装后形成的用户系统内部存在冲突,各模块能否正常工作。通常在做集成测试时先是从分系统内部的集成测试开始做起,做完以后再测试各分系统是否能集成为最终要实现的大系统。也有其他做法(如自顶向下集成测试方法、核心系统先做集成测试或每日集成测试等等)。总之,万变不离其宗。集成测试要保证模块的内部正确性以及保证模块能最终集成为大系统。系统测试:系统测试的主要任务是验证经集成测试后形成的软件系统是否满足软件需求规格说明中的各需求项。这些需求项包括:业务需求、功能需求、非功能性需求(如:性能、可靠性、安全性、系统维护等方面的要求)以及一些约束性需求(如开发标准、编程语言、通讯协议)等等。由于需求项涉及的领域很广泛,这就导致了系统测试中对应的测试门类相当庞杂。如:功能测试、执行路径测试、可靠性测试、压力测试、可恢复性测试、可移植性测试等等。这些测试最显著的特征是在一定环境条件下(如:模拟现场或极端条件),设计各种测试用例,输入并运行完整的软件系统,根据软件系统运行过程中的实际表现,评估软件系统是否符合软件需求项的各类要求。交付测试:在做完系统测试以后,软件产品就到了交付用户使用这个阶段了。交付过程中的重要一环就是交付测试,交付测试的目标是保证用户对所交付的系统的满意。与前面所讨论的测试不同,交付测试主要的参与者应该是目标客户。客户参与越多越好。交付测试的内容一般包括安装测试、可用性测试、alpha测试、beta测试等。其中安装测试的主要任务是测试软件系统能否在模拟环境下或实际现场由目标用户顺利完成在目标机器上的安装;可用性测试的主要任务是测试软件系统在完成安装以后能否完成用户的模拟任务或现场任务;alpha测试采用的形式一般是由一个用户在开发环境下对软件系统进行类似于黑盒的测试,测试的目的是从用户的角度评价软件产品的功能、可使用性、可靠性、性能和支持,尤其注重产品的界面和特色;beta测试采用的形式一般是先由软件的多个用户在实际使用环境下使用beta版软件系统一段时间,然后把使用中出现的各类故障或缺陷反馈给beta测试负责人员,再由测试负责人员移交给软件开发者,由开发人员负责修正并完善软件系统。Beta测试的目的是确保软件产品交付给全体用户之前能部分或全面地修正其在实际应用中可能出现的各类BUG或不足。3.3支付宝WAP平台中采用用软件测试管理技术如前文所述,测试技术解决了测试采用的方法和技术问题,然而,对于一个工程而言,还需要相应的测试管理才能保证各项测试活动的有序开展。因此,在支付宝WAP平台软件测试管理技术要解决的问题是如何确保软件测试技术(包括软件验证技术和软件确认技术)能在软件项目在软件生命内得到顺利实施,并产生预期的效果。按照软件测试管理面对的管理对象的差异,软件测试管理技术大致分为软件测试团队组织管理、软件测试计划管理、软件缺陷(错误)跟踪管理以及软件测试件管理四大部分。以下一一诠释:软件测试团队组织管理通俗地讲就是测试团队应该如何组建。根据我们现有的测试队伍,我们有测试领域专家,具有极为丰富软件测试经验,对软件开发过程中常见的缺陷或错误了然于胸,此外,还具有较好的亲和力和人格魅力。其次,我们的队还具有很多具备一技之长的成员,如对某些测试工具运用娴熟或能轻而易举地编写测试脚本。另外,测试团队还聘有兼职成员。如验证测试实施过程中,同行评审是最常使用的一种形式,这些同行专家就属于兼职测试团队成员的范畴。至于测试团队里里的测试新手,这部分人可以安排去从事交付验证或黑盒测试之类的工作。软件测试计划管理通俗地讲就是安排好测试流程。这部分内容具体涵盖软件测试策划、软件测试技术剪裁、测试进度管理、成本管理等几个部分。其中测试策划工作主要是指具体测试活动实施之前做好策划工作,如起草测试大纲以及测试计划;软件测试技术剪裁工作主要是指测试团队应根据软件项目的具体实际剪裁出所要实施的测试技术;测试进度管理工作主要是指排出各项测试的时间进度及人员安排,如有变动时应做相应调整;测试成本管理工作的内容即开列出测试活动中会涉及到的资源需求。四、测试支付宝WAP平台的流程图五功能性能测试方法1.等价类划分法:有效等价类:指输入完全满足程序输入的规格说明,是由有效且有意义的输入数据所构成的集合,利用有效等价类可以检验程序是否满足规格说明所规定的功能和性能。无效等价类:和有效等价类相反,即不满足程序输入要求或者由无效的输入数据构成的集合。2.边界值分析法:指对输入的边界条件进行分析,设计出针对边界值的测试用例。数值的边界值检验字符的边界值检验如:ASCII和Unicode编码方式其他边界值检验选上所有选项(最大值)不选上任何一项(空,零)只选一项(最小值)3.因果图法:就是利用图解法分析软件输入(原因)和输出条件(结果)之间的关系,以设计测试用例的方法。因果图法适合于检查程序输入条件的多种情况的组合,并最终生成判定表,来获得对应的测试用例。4.功能图法功能图是描述程序状态变化、转移的过程,因为软件运行或操作的过程可以看作是其状态不断发生变化的过程。测试用例的设计就是如何覆盖所有软件表现出来的状态,即在满足输入/输出的一组条件下,软件运行是一系列有次序的、受控制的状态变化过程。5.错误推测法:推测法主要依赖经验、直觉来作出简单的判断甚至是猜测,给出可能存在缺陷的条件、场景等,在找到缺陷后,设计出相应的测试用例。6.正交实验设计方法:主要步骤是:(1)对软件需求规格说明中的功能要求进行划分(层层分解与展开),分解成具体的、相对独立的基本功能。(2)根据基本功能的质量需求,找出影响其功能实现的操作对象和外部因素,每个因素的取值可以看作水平,多个取值就存在多个水平。(3)确定待测试软件中所有因素及其权值,这是测试用例设计的关键,确保全面、准确。权值是依据各因素的影响范围、发生的频率和质量的需求来确定的。(4)加权