基于BS的客户管理系统功能测试方案.docx
- 文档编号:27367766
- 上传时间:2023-06-29
- 格式:DOCX
- 页数:22
- 大小:275.31KB
基于BS的客户管理系统功能测试方案.docx
《基于BS的客户管理系统功能测试方案.docx》由会员分享,可在线阅读,更多相关《基于BS的客户管理系统功能测试方案.docx(22页珍藏版)》请在冰豆网上搜索。
基于BS的客户管理系统功能测试方案
基于B/S的客户管理系统功能测试方案
目录
引论1
1软件测试概述1
1.1软件测试定义1
1.2软件测试目的1
1.3功能测试概述1
1.3.1功能测试介绍1
1.3.2功能测试工具2
2客户管理系统概述3
2.1客户管理系统简介3
2.2客户管理系统环境搭建3
2.3客户管理系统功能结构4
3功能测试实践4
3.1测试策略4
3.1.1测试目标4
3.1.2过程和方法4
3.2手工测试5
3.2.1手工测试概述5
3.2.2功能测试用例5
3.3功能自动化测试6
3.3.1功能自动化测试概述6
3.3.2功能自动化测试数据6
4测试脚本开发7
4.1录制脚本7
4.2强化脚本9
5编写测试报告10
结论11
参考文献12
摘要
软件测试行业的日新月异,软件测试特别是功能测试在如今IT行业有了自己不可替代的作用。
目前在软件行业中,人们较多了解的是软件测试分为黑盒测试和白盒测试,但除此之外,它还能分为功能测试、性能测试和安全测试等,而功能测试又分为手工测试和自动化测试。
但两者绝对不存在谁优谁劣的问题,它们都有各自的优点和局限性。
手工测试主要适用于测试很少执行的项目、运行仍然不稳定的软件、测试结果容易人为验证的项目和测试项目设计比较多交互的测试。
自动化测试主要适用于软件维护中的回归测试、执行压力测试和配置及兼容性测试等项目中。
本次毕业设计中,以手工测试为前期功能测试手段,以UFT为自动化测试工具进行回归测试,来测试客户管理系统(CRM)某些模块功能完整性。
实现该系统的UI测试、手工测试和自动化测试。
最终产生手工测试报告和可读性强、易于跟踪的UFT测试报告,用来分析缺陷。
通过对CRM的功能测试来展示功能测试在软件测试行业的重要地位。
关键词
测试;CRM测试;功能测试;手工测试;自动化测试
引论
本学年中有机会去学习软件测试专业知识和实用技能,让我对软件测试有了自己的想法和见解。
作为软件生命周期的一部分,软件测试有着不可替代的地位。
随着人类社会的进步,计算机在各个领域上都得到了广泛的推广和使用,而作为推动计算机发展的计算机软件也得到了普及,为我们的生活、学习和工作等带来了前所未有的便利。
但是一个软件从需求提出到在计算机等平台上运行,这个过程中谁也不能保证软件是否满足了人们的需求,所以就有了软件测试这个行业。
我作为一名刚刚进入软件测试行业的大学生,我想用自己去观点去阐述软件测试。
在学习软件测试之前,我一直以为软件的产生只需要软件开发人员的参与就行,软件测试完全是没有用处的鸡肋。
但是当我进入这个行业参加工作之后,我发现了软件测试的重大责任和意义。
同时我们12306用户身份证及账户密码信息泄漏、中国快递行业1400万信息泄露等事件,对中国软件行业敲响了警钟。
任何一个软件都是人工开发的,每个人的编程思想都是不完善,或者说不完全符合客户需求的,这时候就需要测试人员在软件开发人员和客户之间进行沟通交流,来保证软件的质量。
1软件测试概述
1.1软件测试定义
软件测试是指在整个软件开发周期,系统验证和质量检查,以评估是否符合系统需求。
在该定义下,引用如下概念来满足测试工作的需要:
(1)软件测试是对系统和程序可否完成特定的任务建立人们信心的过程,也是帮助开发人员来检验开发软件的正确性、完全性和质量的软件过程[1]。
(2)软件测试是依据系统需求和各开发人员的软件架构来设计出相应的测试用例,并使用测试数据去运行程序,发现软件中存在的错误。
(3)软件测试目标是尽可能早的发现缺陷。
软件测试的测试过程是先阅读和审查需求说明文档,并对测试数据的文档进行分析,根据评定情况确定测试环境的方案,搭建测试环境。
然后根据测试数据来执行测试,最后编写相关的测试文档(测试报告、缺陷报告等)。
1.2软件测试目的
为了通过软件测试来发现软件中的不足或者是缺失之处,来考虑软件是否达到可以接受和正常使用的程度;而开发人员也希望能通过测试来证明自己开发的软件中没有隐患,且已经满足了客户的要求。
因此软件测试目的在于尽早发现并修正被测系统中的缺陷,保证了软件的安全性和软件质量[2]。
1.3功能测试概述
1.3.1功能测试介绍
人们普遍认为,软件测试工作是没什么技术可言的,只要是会使用鼠标的人都能进行软件测试,这是对软件测试工作的一个严重曲解。
作为一个计算机学院的同学,大家几乎普遍对软件测试行业嗤之以鼻,再加大一些范围来讲,学过编程的人都对软件测试存在一些成见。
不过这种现象只在国内发生着。
相反在外国,测试行业已经比较成熟。
一般来说,建立软件测试项目的步骤[4],如下工作顺序:
图1-1软件测试步骤
在一个正式的项目中,测试人员编写测试用例是在需求人员提供的需求文档,或者是开发人员提供的系统规格说明文档,编写出高效的测试用例文档。
然后通过执行测试数据来验证软件的质量和发现软件的缺陷,把测试结果编写成文档。
对于一个测试人员,另一个重要任务就是跟踪缺陷,一个缺陷往往分为新建、打开、已修复、已关闭等主要状态,还有就是测试人员对已经修复过的缺陷,重新测试不通过时,缺陷状态将编程重新打开。
对于每一个缺陷来讲,测试人员都要从新建到关闭进行全程跟踪。
1.3.2功能测试工具
在当今市场上,所用到的功能测试工具中,主要有商用的QTP和开源的Selenium,而QTP在市场上占据主导地位。
QTP,全称为QuickTestProfessional,QTP11.5改名为UFT(UnifiedFunctionalTesting)是Mercury研发的一种自动化工具,后来惠普收购了Mercury包括QTP工具,主要用于功能和回归测试。
它是通过自动捕获对象放到本地对象库、在回放用户操作时验证被测系统的功能。
UnifiedFunctionalTesting是先进的自动化测试工具,利用关键词驱动测试的方法来减少功能测试过程中创建和维护工作量。
UnifiedFunctionalTesting既可以方面技术人员的使用,也可以满足非技术类人的使用需求,让使用者可以部署自己所需求的高质量应用,而且在部署上实现了速度更快,费用更低,风险更小。
UFT分为两种工作模式[6]:
第一种为关键字视图模式(KeywordView),对于简单的录制和重放操作来讲,利用关键字视图就可以实现,其中记录了录制过程中每一次点击、输入、选择等操作,并把对象存入对象库中,录制完成后就可以在关键字视图下通过修改相应的操作方式和数值来实现模拟实际的操作。
第二种为专家视图(ExpertView),它有两个作用:
(1)在专家视图模式下,每一个录制中的操作都会对应有脚本,这样我们就可以通过修改脚本信息来控制UFT回放过程中所有事件的执行方式;
(2)测试时我们也可以不录制任何脚本,仅通过专家视图模式来编写脚本代码,实现需要的功能,甚至还能够实现录制过程中无法实现的功能,这种方式称为描述性编程,它最大的特点就是没有关联的对象库,完全通过描述对象属性来区别对象的,使用描述性编程的优点有:
①简化UFT脚本的大小,便于转移;
②脚本具有更强的可移植性,独立性和复用性[7]。
UFT工具使用VB语言编写脚本,它是一种容易上手的开发语言,同时它能够让我们用少量的代码完成很强大的功能。
如果我们熟练了描述性编程的方法,我们就可以随心地开发出所需脚本,然后设置检查点来判断脚本的执行结果,也可以设置断点,来快速的发现问题所在,同时在发现问题后也方便维护脚本;由于描述性编程丢弃了本地对象移植不便的弊端,使脚本在移植上变得方便简洁,强化了脚本的复用性。
对于UFT工具而言,其核心代码是VisualBasicScript。
如果测试人员熟悉VBScript,就可以通过在专家字视图下添加或者更改脚本来强化测试脚本。
对于认识UFT测试工具的人来说,都知道UFT可以用来录制回放用户操作,UFT在录制过程中会把用户操作事件的对象存储到本地对象库里,这些对象对已经录制的实体有唯一的标识。
但遇到一些特殊情况时,对象库将不能识别对象:
(1)在一些网页上产生动态的对象;
(2)有时候我们需要脚本尽量简洁高效,此时我们就需要使用一些描述性编程的方法,在专家视图上进行脚本开发。
以下是一个例子:
Browser("aaaa").Page("bbbb").Click
采用描述性编程修改上面代码:
Window("Text:
=bbbb").Close
总的来说,描述性编程就是用原对象区别于其他对象的属性或属性值来唯一标识对象(如property:
=value)。
这样以来,即便删除对象库中对象,仍然能保证脚本正常运行。
在此我要简短的介绍一下VisualBasic,简称VB,是微软公司推出的,一种Windows下的应用软件开发语言,也是世界软件行业上使用较广泛的编程语言之一,也是编程效率较高的一种编程语言。
无论是开发功能强大的商务系统,还是开发简洁轻量的小系统,VB都是较快速、较简便的方法[3]。
2客户管理系统概述
2.1客户管理系统简介
在全球村、企业共赢和以网络为核心的当代,企业所面临的最大问题是如何开挖掘潜在客户,如何运用一系列社会资源扩大企业的销售和增强企业的竞争力。
在上述背景下,客户关系管理系统被开发出来,该系统以客户为中心,实现了市场、销售、跟踪的工作管理平台。
通过改善企业与客户之间关系的方式,来扩大企业的市场销售和增强跟踪技术支持等与客户相关的内容。
本系统实现中小型企业的客户管理需求,能够实现快速有效管理公司客户,巩固企业与客户之间的关系,监督企业管理营销的进程,推动企业的飞速成长。
2.2客户管理系统环境搭建
CRM系统采用的是B/S系统架构,所以需要先在服务器上部署服务器软件(Apache)、数据库软件(MySQL)、PHP运行环境及CRM系统源代码,然后我们就可以通过客户端上的浏览器访问系统了。
由于该系统数据量并不大,故可以将Apache和MySQL部署在同一台服务器上。
EasyPHP是一种将Apache、MySQL和PHP集合而成的软件,所以只安装该软件即可[5]。
表2-1CRM系统的软件和硬件要求
硬件要求
软件要求
客户机
CPU:
主频300M
内存:
512M
硬盘:
20G
Windows操作系统
Chrome/FireFox或IE9以上版本浏览器
服务器
CPU:
双核1G
内存:
2G
硬盘:
20G高速硬盘
Windowsserver或Linux操作系统
Apache2.1(含)以上版本
MySQL4.0(含)以上版本
PHP4.3.0(含)以上版本
2.3客户管理系统功能结构
目前,市场有很多种CRM系统,本论文选择一款开源CRM系统作为测试软件来讲解如何进行功能测试。
该系统采用PHP开发而成,是一款基于AMP的客户管理系统。
CRM系统能够实现使企业可以在该系统提供的组件的基础上定制并构建自己的商业流程。
依据本次论文的主要目的在于验证功能测试在软件测试行业的重要地位,来制定原始需求,依据此需求,明确CRM系统的测试范围。
该系统主要包括用户登录、商机管理、日程管理、产品管理、任务管理、系统管理、客户管理、线索管理和财务管理等功能模块。
线索是指对产品/服务有意向的个人或机构;客户是商机的关注对象,对于每个商机来讲,都必须关联一个客户,但客户不一定会关联一个商机;财务不仅是公司企业在运转过程中的资金动向,更主要的是财产与债务,即资产与负债;商机是企业与客户正在进行的项目货以及完成的项目,每个商机都必须关联一个项目;日程是关于一天工作前的计划与安排;任务是上级对下级的要求事件,客户管理系统可以加快企业运转。
该CRM系统的功能结构图如下图所示:
图2-1客户关系管理系统功能结构
随着公司企业的不断发展壮大,客户数量和公司员工数量肯定会逐渐增加,对CRM的要求也会越来越高。
本次对CRM商机管理模块功能进行测试,根据手工测试提交的缺陷报告和UFT自动化测试产生的测试报告,找出商机管理模块存在的缺陷与不足。
3功能测试实践
3.1测试策略
3.1.1测试目标
此功能测试只需要测试四个功能点:
(1)CRM系统的登录业务、退出业务。
(2)商机管理模块:
创建商机、删除商机。
CRM系统
图3-1测试模块
(3)根据功能测试需求设计功能测试用例,尽可能的找出CRM系统存在的缺陷,同时建立一套完整的测试用例库。
(4)对CRM系统常用的、重要的业务采用自动化测试,同时规范脚本开发过程,增强脚本的可重用性和可维护性。
3.1.2过程和方法
本次功能测试以手工为主,自动化为辅,其过程如下:
图3-2手工测试过程
图3-3自动化测试过程
自动化测试过程中使用数据驱动的编程思想,使数据与脚本分开,采用结构化的编程思想,将一些操作独立封装起来。
3.2手工测试
3.2.1手工测试概述
手工测试,就是依据已覆盖全部需求的测试用例,根据测试用例文档中所描述的步骤和方式,手工地输入执行,然后人为观察判断结果,来定位被测软件中的缺陷与不足。
3.2.2功能测试用例
表3-1系统登录时的测试数据
用例标识
测试名称
描述
优先级
步骤名
描述
预期结果
Test01
1.用户名密码均正确
打开CRM系统,输入用户名和密码;用户名:
tester1,密码:
111111
高
Step01
输入正确的用户名和密码
输入成功
Step02
点击“登录”按钮
进入系统界面,界面元素完整无漏
Test02
2.用户名为空,密码正确
打开CRM系统,输入用户名和密码;用户名:
无,密码:
111111
高
Step01
不输入用户名,输入正确的密码
输入成功
Step02
点击“登录”按钮
提示“请输入正确的用户名和密码”
Test03
3.用户名正确,密码为空
打开CRM系统,输入用户名和密码;用户名:
tester1,密码:
无
高
Step01
输入正确的用户名,不输入密码
输入成功
Step02
点击“登录”按钮
提示“请输入正确的用户名和密码”
Test04
4.用户名和密码为空
打开CRM系统,输入用户名和密码;用户名:
无,密码:
无
高
Step01
不输入用户名和密码
Step02
点击“登录”按钮
提示“请输入正确的用户名和密码”
Test04
用户名不正确,密码正确
打开CRM系统,输入用户名和密码;用户名:
@!
Adb,密码:
111111
高
Step01
输入不正确用户名,正确密码
输入成功
Step02
点击“登录”按钮
提示“请输入正确的用户名和密码”
商机管理模块作为一个功能较强大,设计较复杂的功能模块。
因此,它所设计的测试用例将会比较多,我将在附录文件中给出个人设计的比较全面的测试用例。
3.3功能自动化测试
3.3.1功能自动化测试概述
功能自动化测试,就是在面对大量的、重复性的测试内容,利用自动化脚本进行测试的方法来替代手工测试,利用开发自动化脚本来测试程序,控制执行被测软件的方案,完成测试的全过程[9]。
而且自动化测试较多的用于回归测试时使用,这个时候我们更加需要做的是对手工测试结果的验证上。
如果我们继续采用手工测试,有时候可能还会是多次的重复性测试,这些将让测试员感觉到身心疲惫,所以我们大数时间在回归测试时,采用自动化测试的方式完成。
3.3.2功能自动化测试数据
表3-2系统登录时的测试数据
用户名
密码
tester1
111111
111111
tester1
@!
Adb
111111
表3-3商机管理模块创建商机时的测试数据
商机名称
预计价格
guo
1
1
guo
guo1
1
guo2
2
guo2
2
4测试脚本开发
4.1录制脚本
由于在脚本的录制模式上都是采用相同的模式,因此在此对登陆脚本的录制进行描述说明,作为UFT使用方式的操作规范。
1.打开UFT自动化脚本开发工具
图4-1UFT应用快捷方式
2.新建测试项目。
在UFT主界面的选择菜单中选择“文件|新建|测试”,打开新建测试窗口,选择类型为“GUI测试”,名称可以输入任何字母数字,但是此处我们为了区别不同的脚本,选择“Login”作为名称,如下图所示,然后点击“创建”,则创建Login测试成功。
图4-2创建测试项目
3.进行录制前的相关设计。
打开UFT主界面的选择菜单中选择“录制|录制和运行设置”窗口,由于我们录制的是web系统,所以在web设置录制和会话时打开CRM系统的登录网址,并勾选“不在已经打开的浏览器上录制运行”与“当测试关闭时关闭浏览器”两个选项,如下图,然后点击“确定”。
图4-3录制和运行设置
4.开始录制脚本。
在UFT工具栏中点击“录制”,UFT自动打开CRM系统的登陆窗口,并开始录制脚本,输入用户名“tester1”密码“111111”,然后点击“登录”,进入CRM系统主界面。
图4-4录制登录操作
5.为了验证是否成功登录成功,需要插入检查点。
为了检查的方面性,我们在此设置一个文本检查点来检查登录是否成功。
在录制过程中选择“标准检查点”,此时鼠标箭头将变成手形。
选中CRM系统页面上的“登陆成功”文本,弹出检查点对象窗口,点击“确定”,这样检查点设置就成功了。
每次登录后,都会检查该文本,只有发现该对象,检查才能通过。
图4-5设置检查点
6.点击结束录制按钮,结束当前的录制。
4.2强化脚本
1.对用户名和密码参数化
在关键字视图下,点击用户名的值,进入值配置选项窗口,对“参数”来设置,选择“DataTable”,把参数名称改为“UserName”,数据表选择为“全局表”,同样方式,把登录密码改为“Password”,并对密码进行参数设置,如下图。
图4-6用户名的参数化
图4-7参数位置的设置
这样我们就能通过对全局表添加数据,还增加登录用户数量了。
但是想要登录较多用户,我们就需要设置脚本执行次数。
设置方式为打开“文件|设置”在弹出的窗口中,选择“运行|在所有行运行”。
这样我们就能实现UFT执行所有的参数数据了。
当我们设置完后,点击回放脚本会发现,发现UFT回报错误找不到对象了。
这是也因为我们没有打开CRM登录页面,所以脚本无法继续执行。
但是我们又不能每次都去打开CRM页面,这样就不是自动化测试了。
所以,我们需要在脚本中增加自动登录的代码,具体如下:
SystemUtil.Run "iexplore.exe" ,http:
//127.0.0.1:
8089/ciircrm/
这样我们就能通过Run打开CRM系统登录页面。
"iexplore.exe"是我们要运行的应用。
后面的网址是我们传递给IE浏览器的参数用来登录CRM登录页面。
2.为脚本添加注释
通常在开发中我们会给开发的脚本添加必要的注释来增强脚本的可维护性、可重用性和可读性。
作为自动化测试脚本,可重复利用是它的一种特性,测试人员可根据情况,添加一些注释。
添加注释常用方法有直接在UFT工具栏中选择“编辑|格式|注释”、右键选择添加注释和直接添加注释符号。
5编写测试报告
在手工测试和自动化测试所有的工作结束后,我们作为测试人员还需要评估并报告测试结果,同时要编写对应的测试报告。
这会是我们测试工作的总结性文档,作为一个公司都会有比较正式的测试报告模版。
测试工程师仅需根据模版编写测试报告即可[8]。
一般情况下,测试报告分为测试情况介绍、测试目标、先决条件、测试范围要求、测试执行情况、缺陷数、缺陷严重等级和状态等。
测试情况介绍、测试目标、先决条件、测试范围要求等相关内容在前面已经有所展示,而测试执行情况如下图:
表4-1测试执行情况
测试方式
测试状态
百分比(%)
计划执行数
通过测试数
缺陷数
未执行
无数据
总计完成
已完成
未完成
致命的
重大
微小
总计
通
过
失
败
完成总计
未
执行
无
数据
总计未完成
手工测试
29
28
0
1
0
1
0
0
29
96.55%
3.45%
100%
0.00%
0.00%
0.00%
自动化测试
15
15
0
0
0
0
0
0
15
100%
0.00%
100%
0.00%
0.00%
0.00%
通过自动化测试验证了手工测试的几个主要测试方面的正确性。
通过手工测试发现了删除的商机信息,无法还原的缺陷。
所以需要提交缺陷报告,如下图:
表4-2缺陷报告
缺陷报告
测试人
郭宝珠
提交时间
2015-04-08
缺陷编号
BUG-01
严重程度
Minor
状态
新建
缺陷标题
删除商机无法还原
缺陷描述
使用tester1/111111登录,选中任意商机,点击删除。
然后到回收站点击删除商机的还原按钮,提示无权限。
重现步骤
Step1:
用tester1/1登录CRM系统,点击商机进入商机模块
Step2:
选中任意商机,点击“删除”按钮
Step3:
点击“回收站”按钮,点击删除商机的“还原”按钮
预期结果
提示“还原成功”
实际结果
提示“你没有权限还原”
相关缺陷
登录其他帐号也出现这种情况(除admin外)
注释
该缺陷是测试环境部署中数据库权限不正确造成的
结论
本次功能测试主要涉及到了CRM系统的登录业务测试、商机创建测试、商机删除测试、退出业务测试,分别采用手工测试和自动化测试的方法对这些功能模块进行功能化验证。
我们发现测试工作是需要大量的测试用例已完全覆盖测试需求,这是一个反复并较枯燥的工作。
但是这也是我们开发软件最后一道工序,我们需要有耐心并细心才能做好。
同时我们也会开发脚本的时候,这样我们可以运行自动化测试脚本减少大量重复的工作,在保证软件质量的基础上,缩短软件开发的生命周期。
参考文献
[1]蔡建平.现代软件测试基础[M].北京:
清华大学出版社
[2]周百顺,张伟,陈良辰.应用软件测试实践[M].北京:
清华大学
[3](美)AdrianKingsley-Hughes,KathieKingsley-Hughes,D.VBScript程序员参考手册(第三版)[M].北京:
清华大学出版社
[4](美)HungQ.Nguyen.Web应用测试[M].北京:
电子工业出版社
[5]王珊,萨师煊.数据库系统概论[M].北京:
高等教育出版社
[6]于学军,罗毅,杨莹莹.软件功能测试及工具应用[M].北京:
清华大学出版社
[7]张爽,胡锦程,陈飞.软件测试管理及工具应用[M].北京:
清华大学出版社
[8]朱少民.完美测试:
软件测试系列最佳实践[M].北京:
电子工业出版社
[9]张瑾,杜春晖.自动化软件测试[M].北京:
机械工业出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 BS 客户 管理 系统 功能 测试 方案
![提示](https://static.bdocx.com/images/bang_tan.gif)