1、 I 大型电子商务平台 -Webshop 的测试 摘要 软件测试是一种发现软件缺陷的活动。 1979 年, Glen Ford Myers 的软件测试艺术是软件测试领域的第一本 最 重要的专著,其中对软件测试的定义为:“测试是为发现错误而执行的一个程序或者系统的过程。” 软件测试业的兴起,正如软件业的兴起一样,也有其逐步完善的过程。从最初的只局限于程序员自己对软件功能实现的测试发展至现在的产业化,立体化。本文应用软件工程学原理,将测试流程也看成一软件工程,对 Webshop 这个网上商店进行测试,以期系统地实践软件测试技 术,巩固测试的基本知识,取得实战经验,发现、解决问题并进行总结 。 本文
2、阐述了软件测试业的概况 , 软件测试运作中工具的简介,还有对 Webshop 进行测试的意义。 这样理顺做测试的前提,以便更加投入地测试 。 本文接着开始描述测试的流程,测试过程中的各个步骤 ,如分析需求,编写测试计划测试用例等等。文章中详细描述各个测试用例的编写,并做详细说明,给出附图。 本文还详尽地说明了常用自动化测试工具 Winrunner 的使用 。 这 个 工具在测试中很有用,同时自动化也是软件测试发展的方向 。 同时对 Watin 这一自动化编码框架的使用也作 了详尽的实践分析 。 关键词 : 软件测试 ; 自动化 ; 测试用例 ; 测试计划 ; 测试流程 ; 自动化工具 II T
3、esting the Large E-commerce Platform-Webshop Abstract Software testing is a kind of activities which finds defects in software.The written by Gglen Ford Myers in 1979 is the first most important book in software testing field. It defines the software testing like : “Te sting is the process of execut
4、ing a program with the intent of finding errors .” As the rising of software,the software testing has its own completing procedure.It develops from the testing function activities done by programmers to the industrialization and solid now. In this paper, software engineering principles are used , th
5、e testing process is taken as software engineering.Testing this online store Webshop with the aim of practicing software testing technology, consolidating the basic knowledge of testing and achieving experience, discovering, solving the problem and concluding. In this paper, I take an overview of so
6、ftware testing industry, the briefing of software testing tools, and the meaning to test the Webshop programe. In this way I straighten out the premise of testing,in order to do the test more efficiently. And then, I describe the testing process,the various steps in the process. Like requirement ana
7、lysis, writing testing plans,testing cases and so on. This article describes the writing of all the testing cases in detail, and provides attached pictures. It also describes a few common-use automated testing tools,like Winrunner for function testing and Loadrunner for performance testing,testing m
8、anagement tools such as Test Director. These tools are used in testing, automated testing is also the direction of testing development. Key Words: software-testing; automated-testing; use-cases; testing-plans; III 目 录 第 1 章 概述 . - 1 - 1.1 论文研究背景与意义 . - 1 - 1.1.1 软件测试的背景 . - 1 - 1.1.2 软件测试的意义 . - 1 -
9、 1.2 本测试的目标与意义 . - 2 - 1.2.1 本测试的目标 . - 2 - 1.2.2 进行 Webshop 测试的意义 . - 2 - 1.3 相关知识介绍 . - 3 - 1.3.1 关于 Webshop 项目的介绍 . - 3 - 1.3.2 Winrunner 的介绍 . - 3 - 1.3.3 Loadrunner 的介绍 . - 4 - 1.3.4 TD 的介绍 . - 4 - 1.4 本测试流程与开发流程的关系介绍 . - 4 - 第 2 章 需求分析 和 测试计划 . - 6 - 2.1 对项目进行测试的需求分析 . - 6 - 2.2 编写测试计划 . - 6 -
10、 第 3 章 测试用例和 bug 报告 . - 10 - 3.1 测试用例 . - 10 - 3.2 bug 报告 . - 13 - 第 4 章 功能测试 . - 15 - 4.1 等价类划分法 . - 15 - 4.2 边界值分析 . - 16 - 第 5 章 自动化测试 . - 17 - 5.1 用 Watin 进行自动化单元测试 . - 17 - 5.1.1 关于 Watin . - 17 - 5.1.2 Webshop 中用 Watin 的例子 . - 17 - 5.2 用 Winrunner 自动生成测试脚本 . - 22 - 第 6 章 其它测试 . - 25 - 6.1 UI测试
11、 . - 25 - 6.2 安全性测试 . - 27 - 6.3 探险测试 . - 27 - 第 7 章 Bug 入库 . - 28 - 第 8 章 总结 . - 31 - 8.1 遇到的一些问题 . - 31 - 8.2 对 Webshop 测试的总结 . - 31 - IV 8.3 软件测试的前景 . - 32 - 致谢 . - 33 - 参考文献 . - 34 - 附录 A. - 35 - 附录 B. - 40 - V Contents Chapter1 Introduction . 错误 !未定义书签。 1.1 The Background and Meaning of This Ar
12、ticle . 错误 !未定义书签。 1.1.1 The Background of Software Testing . 错误 !未定义书签。 1.1.2 The Meaning of Software Testing . 错误 !未定义书签。 1.2 The Aim and The Meaning of Testing the Project. 错误 !未定义书签。 1.2.1 The Aim . 错 误 !未定义书签。 1.2.2 The Meaning of Testing Webshop . 错误 !未定义书签。 1.3 The Introduction to Some Knowle
13、dge . 错误 !未定义书签。 1.3.1 The Webshop Introduction. 错误 !未定义书签。 1.3.2 About Winrunner . 错误 !未定义书签。 1.3.3 About Loadrunner . 错误 !未定义书签。 1.3.4 About TD . 错误 !未定义书签。 1.4 The Relationship between Testing Flow and Developing Flow . 错误 !未定义书签。 Chapter2 Requirement Analyzing and Testing Plan . 错误 !未定义书签。 2.1 T
14、est Analyzing for the Project . 错误 !未定义书签。 2.2 Test Plan Writing . 错误 !未定义书签。 Chapter3 Writing The Testing Use Case and Bug Report. 错误 !未定义书签。 3.1 Testing Use Case. 错误 !未定义书签。 3.2 Bug Report. 错误 !未定义书签。 Chapter4 Function Test . 错误 !未定义书签。 4.1 Equal Class Dividing . 错误 !未定义书签。 4.2 Border Value Analyz
15、ing. 错误 !未定义书签。 Chapter5 Automated Test . 错误 !未定义书签。 5.1 Automated Test Using Watin. 错误 !未定义书签。 5.1.1 About Watin . 错误 !未定义书签。 5.1.2 The Example of Using Watin in Webshop . 错误 !未定义书签。 5.2 Automated Test Using Winrunner . 错误 !未定义书签。 Chapter6 Other Tests . 错误 !未定义书签。 6.1 UItest . 错误 !未定义书签。 6.2 Securi
16、ty Test . 错误 !未定义书签。 6.3 Exploration Test . 错误 !未定义书签。 Chapter7 Input Bugs Into Database . 错误 !未定义书签。 Chapter8 Conclusion. 错误 !未定义书签。 8.1 Problems . 错误 !未定 义书签。 8.2 Conclusion of Testing Webshop . 错误 !未定义书签。 VI 8.3 Prospects of the Testing Industry . 错误 !未定义书签。 Acknowledgement . 错误 !未定义书签。 Reference
17、s . 错误 !未定义书签。 Supplement A . 错误 !未定义书签。 Supplement B . 错误 !未定义书签。 厦门大学本科生毕业论文 - 1 - 第 1 章 概述 1.1 论文研究背景与意义 1.1.1 软件测试的背景 1 软件测试是伴随着软件的产生而产生的。早期的测试含义比较狭窄,测试等同于“调试”,通常由软件开发人员来完成这部分的工作,测试与开发 没有分开来。直到 1957 年,软件测试才成为一种发现软件缺陷的活动。 国内的软件测试一般有下列几种形式:一是软件公司内部进行的功能性测试;二是用户进行的测试;三是第三方测试。国内的测试市场基本上处于萌芽状态,独立进行软件
18、测试的公司不多。但可以看到越来越多的 IT 企业认识到了软件测试的重要性。国内软件测试人员的需求不断增大,软件测试初步成了 市 场。不足的是大多数 企业高层对软件测试的认知还远远不够,企业在测试意识、测试理论的研究、大型测试工具软件的开发以及从业人员数量等方面与国外有较大差距。 怎样缩短差距呢,规范而 高效的软件测试,壮大软件测试队伍,向国外先进测试技术学习,都是提高国内软件开发整体质量水准的措施。 1.1.2 软件测试的意义 随着人们对软件质量的要求不断提高,软件测试作为保障软件质量的一个措施,其重要性不言而喻。不足的测试势必使软件带着一些未揭露的隐藏错误投入运行,这将意味着更大的危险让用户
19、承担。一个漏洞百出的软件不仅使用户对软件丧失信心,更可能造成非常严重的后果:使开发商受法律制裁,蒙受巨大的损失。因此软件测试是软件生命周期中一项非常重要且非常复杂的工作,对于开发商对于用户对于软件产品质量本身对于软 件产业的现状都具有 极其重要的意义。 厦门大学本科生毕业论文 - 2 - 1.2 本测试的目标与意义 1.2.1 本测试的目标 本测试的目标是尽可能以最少的人力、物力、时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险,树立客户对公司的信心,为公司赢来更多的潜在客户。 1.2.2 进行 Websh
20、op 测试的意义 20 世纪 90 年代初期,基于计算机网络技术的 Web 应用开始出现,它采用 B/S 结构,由于其便利、实用、低成本等特点,被越来越多的公司、企业和个人采用,如电子商 务,搜索引擎,博客等。但在 B/S 结构给我们带来诸多好处的同时,也存在诸多隐患,例如不友好的页面使用户失去再度访问的兴趣,网上银行转账失败给用户和银行带来的巨大损失,失败的订单使企业蒙受信誉之辱种种原因,使得 Web 应用的质量保证和测试也越来越受到企业的重视。 “ 测试是为发现错误而执行程序的过程 。 ” 测试能 够在一定程度上减少错误的产生,提高产品的质量和用户满意度,因此, 测试已成为软件开发过程中不
21、可缺少的环节。 基于 B/S 结构的 Web 应用程序一般由三部分组成:客户端,服务端和中间协议。客户端提供高效的图形用户界 面,主要提供用户向服务端发送请求和处理服务端回传数据的操作界面;服务端响应客户端的请求,进行处理,并将处理结果回传给客户端;中间协议用于传送客户端和服务端之间的请求和数据。因此, B/S 系统的软件测试也可以分为客户端测试、服务端测试和中间协议测试三部分分别进行相应的界面测试、功能测试、兼容性测试、性能测试等。 Webshop 作为 B/S 架构的网上商店,具有自己的特点。通过定制的测试流程对其测试,能保证它的质量。 厦门大学本科生毕业论文 - 3 - 1.3 相关知识
22、介绍 1.3.1关于 Webshop 项目的介绍 Webshop 是一个供网上交易的平台。 在这个平台上,用户可以创建自己的网上店铺,在店铺里面卖东西。购物者可以在卖方的店里浏览物品 , 向卖方订购物品, 进行网上付款等活动。 分为三大功能模块: 1 前台客户端模块 client,在该模块里,客 户可以浏览商品, 查 看最畅销的商品,定购商品,将商品放入购物篮里 , 搜索所要的商品,付款。 2 前台开店者模块 shop owner。该模块里,开店者可以控制自己的网店,可以添加商品,修改商品信息,向总管理员定制的服务的付费。 3 后台管理各个商店模块 admin。该模块里,可以修改各个网店的基本
23、信息,可以创建网店等。 Webshop 是比较大型的 项目,开发周期长,用户需求变更频繁,因此需要不断地修改测试计划和测试用例,并进行回归测试。 1.3.2 Winrunner 的介绍 2 Mercury Interactive 公司的 WinRunner 是一种企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行。通过自动录制、检测和回放用户的应用操作,WinRunner 能够有效地帮助测试人员对复杂的企业级应用的不同发布版进行测试,提高测试人员的工作效率和质量,确保跨平台的、复杂的企业级应用无故障发布及长期稳定运行。 企业级应用可能包括 Web 应用系统, ERP 系统,
24、 CRM 系统等等。这些系统在发布之前,升级之后都要经过测试,确保所有功能都能正常运行,没有任何错误。如何有效地测试不断升级更新且不同环境的应用系统,是每个公司都会面临的问题。 如果时间或资源有限,这个问题会更加棘手。人工测试的工作量太大,还要额外的时间来培训新的测试人员等等。为了确保那些复杂的企业级应用在不同环境下都能正常可靠地运行,你需要一个能简单操作的测试工具来自动完成应用程序的功能性测试。 厦门大学本科生毕业论文 - 4 - 1.3.3 Loadrunner 的介绍 3 Mercury LoadRunner 是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时
25、性能监测的方式来确认和查找问题, LoadRunner 能够对整个企业架构进行测试。通过使用 LoadRunner ,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。 1.3.4 TD 的介绍 3 TestDirector 是 MI( MercuryInteractive)公司一个测试管理工具,是业界第一个基于Web 的测试管理系统 , 它可以在您公司内部或外部进行全球范围内测试的管理。通过在一个整体的应用系统中 集成了测试管理的各个部分,包括需求管理,测试计划,测试执行以及错误跟踪等功能, TestDirector 极大地加速了测试过程。 1.4 本测试流程与开发流程的关系介
26、绍 测试流程图如 图 1.1 所示。 测试流程如下: 1. 参加需求分析会议,了解需求 听取项目组长对项目需求的分析,理解需求,对疑问的地方进行提问,力求搞清楚。 2. 对需求分析文档进行评审 (该步骤 需要 等到软件开发流程规范之后,因为现在还没有作需求分析文档) 。 3. 了解各模块功能的用法,确定测试重点 可以按照需求说明书的模块划分来分类功能。并把划分后的 模块填入模块划分表和模块追溯表内 ( 若进行到一定程度,可以写出功能操作的流程 图,最好还要写出数据流图,以便对输入输出结果的控制做到游刃有余。 ) 4. 开始测试计划的编写,用 TD 等缺陷管理工具管理 在编写测试计划时,需要不断地更正以前可能发生理解错误的地方。 5. 编写测试用例 测试用例的编写需要注意各个功能中所包含的环节。 6. 待基本的编码做好了,执行测试用例,提交 bug