手机软件测试平台的设计与实现
摘 要
随着手机终端科技的不断发展以及人们对手机终端的功能要求和质量要求越来越高,手机不仅仅是一个可以实现打电话发短信的简单终端,而是逐渐成为了集合电话,短信,GPS卫星导航,城市地图查询,视频通话,3D游戏,文件传输和保存(蓝牙功能和大容量内存),摄像拍照功能的一个超级智能终端。如何保证手机能够实现上述功能并且在实现时各个功能之间没有使用冲突是当前手机软件测试公司的重中之重。本系统即手机软件功能测试平台可以方便地对手机功能进行方便的测试。
在文思创新实习期间,我深刻体会到对测试用例管理的重要性,公司对手机测试平台的稳定性和安全性是十分看重的。测试用例的管理模块占了很大一部分,本文将介绍测试用例的管理模块,将围绕测试用例的管理逐渐介绍到测试用例执行以及延伸到测试工程师的管理。
软件功能测试平台可以实现对测试用例和测试人员的管理,以弥补当前所用测试平台的不足。本文将着重陈述该系统的开发原因以及该系统的功能和如何实现。
软件功能测试平台系统以.net为开发工具,SQL server2005为数据库,采用三层架构(即表现层,数据访问层,业务逻辑层)进行开发,实现了对测试用例和测试人员的管理,提高了测试工程师的测试效率和质量。系统经过大量的数据测试,在功能、性能等方面基本满足的系统的预期目标。
关键词:手机终端测试平台,软件测试,.NET,SQL server2005
目 录
摘 要 ................................................................................................................................... I Abstract ..................................................................................................... 错误!未定义书签。
1绪 论 ..................................................................................................................................... 1
1.1 项目来源以及开发的目的和意义 ............................................................................. 1
1.2 国内外研究现状 ......................................................................................................... 1
1.3 主要开发任务 ............................................................................................................. 2
1.4系统使用工具介绍 ...................................................................................................... 3
1.5论文构成 ...................................................................................................................... 4
2系统总体设计 ......................................................................................................................... 4
2.1系统的需求分析 .......................................................................................................... 5
2.1.1系统的功能需求 ............................................................................................... 7
2.1.2系统的性能需求 ............................................................................................. 10
2.2系统的总体方案 ........................................................................................................ 10
2.3系统所需的软硬件环境 ............................................................................................ 11
3系统的详细设计 ................................................................................................................... 11
3.1登录模块 .................................................................................................................... 12
3.1.1功能描述 ......................................................................................................... 12
3.1.2登录界面 ......................................................................................................... 12
3.2查看测试用例模块 .................................................................................................... 13
3.3执行测试用例 ............................................................................................................ 17
3.4添加测试用例 ............................................................................................................ 20
3.5 删除测试用例 ........................................................................................................... 20
3.6用户管理 .................................................................................................................... 21
3.7测试用例执行信息 .................................................................................................... 24
3.8修改测试用例结果 .................................................................................................... 24
4系统测试及性能分析 ........................................................................................................... 25
4.1系统测试 .................................................................................................................... 25
4.1.1页面之间的身份认证 ..................................................................................... 25
4.1.2.登录验证 ......................................................................................................... 25
4.1.3查看手机测试用例模块测试 ......................................................................... 26
4.1.4执行手机测试用例模块测试 ......................................................................... 28
4.1.5增添手机测试用例功能测试 ......................................................................... 28
4.1.6删除手机测试用例功能测试 ......................................................................... 29
4.1.7添加测试工程师模块测试 ............................................................................. 29
4.1.8修改登录密码模块测试 ................................................................................. 30
4.1.9系统与数据库数据交互使用存储过程 ......................................................... 30
4.2功能分析 .................................................................................................................... 30
4.3存在问题 .................................................................................................................... 31
结 论 .................................................................................................................................... 32 致 谢 .................................................................................................... 错误!未定义书签。
参考文献 .................................................................................................................................. 32
1绪 论
1.1 项目来源以及开发的目的和意义
本项目来源于文思创新软件技术有限公司手机测试部门孔明项目组D组测试项目组。
文思创新软件技术有限公司诺基亚事业部承接诺基亚的手机外包业务。由于当今中国的IT技术行业存在很典型的人才流动性大的特征,在这一方面文思创新也不能避免。因此在诺基亚事业部中同样存在与大量的实习生、处于试用期的员工等。由于诺基亚执行比较严格的人员管理机制,处于实习阶段和试用阶段的员工不能拥有诺基亚手机测试平台的权限。这一严格的人员管理机制有效地保证了商业机密不外泄、较高的测试质量(只有通过试用期、并且被诺基亚考核通过的成熟测试员才能获得操作权限),但是却为外包公司的管理带来不便和混乱。由于账号不够,现在文思创新诺基亚事业部采取一个账号多人使用的方式来解决这一问题。但是这一解决方式带来了另一个问题及数据比较混乱,测试生成的数据只能定位到账号而不能定位到测试员。某些情况下,需要测试员对于其测试数据做出解释说明的时候,使用同一账号的测试员出现相互推脱的现象。由此文思创新诺基亚事业部认为有必要建立一个独立于诺基亚测试平台的系统,以方便其管理。并且建立一个高质量的测试团队以提供高质量的外包服务,在手机测试外包行业具有更高的竞争力。
1.2 国内外研究现状
对信息化依赖程度不断加深、对信息速度要求不断提高的社会,必然会对可移动信息设备提出全方位的要求---安全、稳定可靠、方便灵活。手机测试正是控制软件产品质量的重要手段, 控制软件产品质量的重要手段就是通过权威机构的软件测试。国外手机厂商极为重视手机测试。作为世界手机界的NO.1,诺基亚仅在北京就拥有2000人的测试团队。而诺基亚的测试团队遍布于世界,几乎是在IT稍微发达的国家就有诺基亚的软件测试团队。
目前,我国手机业的质量保证体系还很不完善。相比之下,在国外许多国家的手机公司,软件测试工作已经逐渐演变成一门独立的科学,囊括了配置方案,测试机制,跨平台策略和产品性能,稳定性等独立区域的知识模块。
长期以来,我国手机企业产品开发时,测试成本却常常是最容易被压缩,甚至被完全“砍”掉。这导致我国手机产品质量低下,无法创出自己品牌,走向世界。特别是现在,我国的手机业“山寨”大行其道,“山寨”们不需要任何的专利费用和设计费用,作为特殊的盗版行业,其在利润上有着其他企业无法比拟的优势。而手机企业是以追求利润为目的,市场“山寨”盛行的结果是质量不得不像利润低头。为了追求利润国内有的开发成本远远达不到10%。而在国际上,开发成本中的30-50%用于软件测试。与此同时,只是有少数的手机企业设立了专门的测试部门。因此,在当前不断加深于对外合作的环境下,除了优秀的开发团队,具备良好的手机测试环境、建立高质量的手机测试团队也是中国手机业最需要做的。
测试团队的建立需要长时间的积累,国内企业在这方面和国外的差距很大。很多企业缺乏对于品牌美誉度的建设,只是单纯地看到了手机市场所蕴含的利润,而后一窝蜂的立项、上马、生产手机。对于消费者最关心的质量问题并不重视,在享受了市场最初暴利之后只是留下了一个国产手机=劣质这样的映像。对于国内企业这种涸泽而渔的短视做法,在短时期内难以得到缓解。
但是在测试平台建设这一狭隘的话题上,国内外的差距很难进行区分,即使是国内的山寨厂商也能够搭建起一套看得过去的测试平台。而真正在测试思想的执行、美誉度的建设和品牌质量的重视才是国内厂商和国外厂商的最大差距。
1.3 主要开发任务
根据任务需求,本测试方案需要能够最终完成一个测试平台,测试平台用以完成整个测试的运行。为此运行平台需要关联测试目标、测试用例库、测试辅助程序库、历史结果集等对象。测试员由登录开始发起测试,依次开始读取任务、读取关联的辅助程序库、执行测试用例、完成结果评定等过程。系统管理员由登录发起对测试平台、测试用例库、辅助程序库、历史结果集的管理以及当前任务监控等任务。在执行这些任务的过程中,测试平台需要自动地完成某些数据和文档的自动存储和关联。
在对于管理员权限的管理中,PM使用管理员权限将其添加为普通测试员,再将管理员权限赋予普通测试员。
在管理员对于普通测试员的管理中,管理员可以添加测试员而不能对其进行删除,因为测试员可能产生大量数据,为了能够对数据进行定位和跟踪,需要保留这些测试员的信息,如果有删除的必要的话则对于其权限进行限制。
在性能方面,对于测试平台要求 其具有足够的稳定性,由于会有大量的测试员进行登录与操作,因此系统需要有比较好的并发性,在加载测试用例库的时候会有大量的数据读取操作,在数据读取方面要求也比较高。其次要求有完整的冲突处理机制。在业务或者任务发生变更之后,需要能够对测试员进行有效的提醒。同时如果发生冲突,例如某测试员正在执行测试用例而管理员修改了任务。测试平台需要能够对这样的情况进行有效的冲突处理,由此而产生的垃圾数据也要能够及时地清除。
1.4系统使用工具介绍
ASP.NET是一种建立动态WEB应用程序的技术 ,它是.NET Framework的一部分,可以使用任何.net兼容的语言编写ASP.NET应用程序。但是使用诸如C#等语言,对ASP.NET页面进行编写可以提供比脚本语言更出色的性能表现。在ASP.NET页面中,可以使用ASP.NET服务器端控件来建立常用的用户接口元素,并对其进行编程,可以说用内建可重用组件和自定义组件快速建立WEB FORM,从而使代码大大简化。相对原有的WEB技术而言,ASP.NET提供的编程模型和结构有助于快速高效地建立灵活安全和稳定的应用程序。
.net是Microsoft面向XML WEB服务的平台,它使用一种统一的个性的方式将信息,设备,人员紧密的联系在一起。
要说明.NET的概念,需要将.NET分成3个部分:
.NET战略 该战略机遇这样一种想法,即所有的设备将来会通过internet连接在一起,同时,所有的软件都将成为该网络上提供的一种服务。
.NET Framework 是指像ASP.NET这样可以使.NET更加具体的技术。该架构提供大量具体的服务和技术,以便开发人员创建相应的应用程序来满足俩接到internet上用户的需要。
.NET企业服务器是指像SQL Server 2005这样由.NET Framework应用程序使用的服务器产品。
本系统使用标准的三层架构即数据访问层、业务逻辑层、UI层进行开发。ASP.NET可以使用.NET平台快速方便的部署三层架构。ASP.NET革命性的变化是在网页中也使用基于事件的处理,可以指定处理的后台代码文件,可以使用C#,VB,J#作为后台代码的语言。本系统使用的是用C#作为后台代码的语言。.NET中可以方便的实现组件的装配,后台代码通过命名控件可以方便的使用自己定义的组件。显示层放在ASP页面中,数据库操作和业务逻辑层用组件来实现,这样就很方便的实现了三层架构。
1.5论文构成
论文主要分为以下几个部分来展开:
第一部分为绪论,这一部分首先介绍论文的课题的研究背景、课题的研究意义以及当前国内外的研究现状,最后介绍了本文的结构
第二部分主要将系统的设计,在此部分主要对系统的开发背景、整体架构、开发环境以及所使用的工具等进行描述,详见论文第三部分。
第三部分描述系统的详细设计,按系统构成的模块,从功能描述、界面设计、数据设计三个方面一一进行阐述。
第四部分将详细介绍系统的测试及性能分析。这一部分将介绍对系统的测试过程以及测试方法。这一部分还将对系统的性能进行详细分析。
2系统总体设计
本章将讨论以.NET技术为基础实现手机软件功能测试平台的总体设计,包括系统的需求分析、系统的总体方案以及搭建系统所需的软硬件环境。
2.1系统的需求分析
根据任务需求,本方案需要能够最终完成一个测试平台,测试平台用以完成整个测试的运行。为此运行平台需要关联测试目标、测试用例库、测试辅助程序库、历史结果集等对象。测试员由登录开始发起测试,依次开始读取任务、读取关联的辅助程序库、执行测试用例、完成结果评定等过程。系统管理员由登录发起对测试平台、测试用例库、辅助程序库、历史结果集的管理以及当前任务监控等任务。在执行这些任务的过程中,测试平台需要自动地完成某些数据和文档的自动存储和关联。
在对于管理员权限的管理中,PM使用管理员权限将其添加为普通测试员,再将管理员权限赋予普通测试员。
在性能方面,对于测试平台要求其具有足够的稳定性,由于会有大量的测试员进行登录与操作,因此系统需要有比较好的并发性,在加载测试用例库的时候会有大量的数据读取操作,在数据读取方面要求也比较高。其次要求有完整的冲突处理机制。在业务或者任务发生变更之后,需要能够对测试员进行有效的提醒。同时如果发生冲突,例如某测试员正在执行测试用例而管理员修改了任务。测试平台需要能够对这样的情况进行有效的冲突处理,由此而产生的垃圾数据也要能够及时地清除。
通过在文思的观察和查阅有关的文档,我总结出了手机功能测试的一般流程,该流程也是测试平台需要实现的主要业务。
测试的总体流程参考测试流程图2-1
图2-1执行测试用例流程图
2.1.1系统的功能需求
(1)测试用例管理。
测试用例管理包括添加新的测试用例,删除过期的测试用例,修改测试用例,按条件查询测试用例以及执行测试用例。系统管理者可以对测试用例进行增删改查等操作,而普通的测试工程师只能够对测试用例进行执行操作。
添加新的测试用例:当一款的新的手机产品需要进行测试时,手机生产厂商会提供手机的功能说明书,高级测试工程师会根据功能说明书来写出一些测试用例来测试相应的功能并且将这些测试用例填写到系统中。
删除过期的测试用例:在手机的测试过程中,手机会根据测试报告进行一些功能上的修改,根据各方面的分析可能会删除一些功能,那么则相应的功能的测试用例就需要被删除。拥有删除权限的测试工程师可以删除这些测试用例。 修改测试用例:在测试的过程中,手机某方面的功能修改了,那么相应的测试用例就需要修改。拥有修改权限的测试工程师可以修改这些测试用例。
按条件查询测试用例:用户查询测试用例,首先在查询框中选中手机的功能,测试用例的状态等方面的关键字,比如,Bluetooth, maps这些手机的功能方面,然后系统会根据这些条件将合适的测试用例。查询流程图如图2-2所示
图2-2查询测试用例流程图
执行测试用例:当测试用例添加到系统中后,测试工程师就可以执行这些测试用例。执行测试用例如图2-3所示:
图2-3执行测试用例流程图
(2)用户管理
新用户注册:
与其他系统不同的是,由于IT行业需要极高的保密性,测试的手机和版本未上市,这需要在测试过程中对测试的产品进行保密,并不是每个人都能够进入系统来查看手机的型号和软件版本,以文思创新为例,只有通过了诺基亚部门的考试才能够拥有权限进入系统,所以本系统不提供普通的注册功能。创建的新的用户需要系统管理员来执行,并且由系统管理来讲账号和密码发送给测试工程师。
基本信息修改:用户登录后,可对自己的一些基本信息进行修改,但注意的事,用户名是不可进行修改的。
密码修改:用户登录成功后,进入密码修改页,可重新设置登陆密码。 (3)权限控制
只有管理员具有此权限。管理员进入权限控制页面,为不同的角色分配不同的权限,权限细分到每个功能点,设定好角色的权限后,管理员可为不同的用户分配不同的角色。 2.1.2系统的性能需求
该系统的用户是手机外包行业的企业,其使用者是所有的测试工程师,所以该系统的安全性和稳定性要求比较高。
软件外包企业承接的业务都是未上市的产品,以文思创新为例,其诺基亚项目组承接的是诺基亚手机业务部研发的新的手机的测试项目。新产品未上市,文思创新必须对测试产品严格保守秘密,其所用的测试系统就必须有严格判定程序,防止非相关人员接触到产品的任何信息。
一款新的手机产品的测试过程短则一个季度,长则半年,测试手机的所有信息和测试过程中的一切产生的报告都存储在相关的测试系统中,如此长的时间就对系统的稳定性提出了很高的要求。
由于系统要求很高以及本人水平有限,所以今后在实际应用中需要有专业人员对其进行改进和维护。 2.2系统的总体方案
手机功能测试平台以SQL Server2005作为数据库服务器,IIS为Web服务器,后台代码的开发使用ASP.NET技术C#语言。
系统开发使用当前流行的三层结构,即Web层(页面层)、BLL层(业务逻辑层)、DAL(数据访问层)。Web层提供交互的平台,将用户的提交信息反馈给BLL层,BLL层进行相关的一些逻辑处理,提交给DAL层,DAL层对数据库进行相应的操作,更新并保存数据。
系统主要包括以下几个模块:登录模块,添加测试员模块,,添加管理员模块,测试结果集生成模块,任务检查模块,任务删除模块,任务修改模块,删除过时的测试用例模块,修改测试用例模块,增添新的测试用例模块,执行测试用例模块。系统模块图见图2-4
图2-4系统模块图
2.3系统所需的软硬件环境 硬件配置:Web服务 用户端
软件配置:Web服务器 IIS 5.1 操作系统 Windows XP 建模工具: Rational Rose
数据库 SQL Server2005
3系统的详细设计
第三章主要讨论了基于.NET的软件功能测试平台的整体设计方案,本章将详细的对各个功能模块进行详细描述。
3.1登录模块 3.1.1功能描述
主要提供用户登录系统的功能。
测试工程师(包括管理员等)在对话框内按要求输入用户名和密码,点击“登录”,如果验证通过,则进入系统,如果验证不通过,则会提示密码错误。身份验证如图3-1所示。
图3-1身份验证图
3.1.2登录界面
登录界面如图3-2所示:
图3-2登陆界面
用户在username和password输入框分别输入自己的用户名和密码,点击login按钮,则完成操作。
如果输入的username和password无效(用户不存在或者密码错误)则会提示密码错误。 3.2查看测试用例模块
用户登录成功后会查看测试用例以便对测试用例进行相应的操作(增删改查)用户登录后会看到一个产品列表。如图3-3所示:
.
图3-3产品列表
实现上述视图的部分代码:
…….
……
………
……..
………
树形结构中有各个产品的相关功能测试所需的测试用例。
按条件查询测试用例:当用户选择好查询条件后,系统会按测试工程师的条件将有的测试用例过滤出来。
按条件查看手机测试用例流程图如图3-4所示:
图3-4按条件查询流程图
图3-5是在“plan: feature“中查询了所有关于下载功能的测试用例。
图3-5download条件查询结果图
查看数据库的部分表设计如表3-1所示
表3-1 测试用例数据库设计
一条测试用例包含许多方面,比如测试时间,执行此测试用例的测试员,属于哪个功能,功能下还有二级功能,还有一些注释等等。查看测试用例可以选择要查看的状态。 如图3-6所示:
图3-6测试用例查询条件
手机测试用例的测试结果有多个状态: N/A:所测试的手机没有此项功能
Passed:经测试测试用例所描述的功能和手机功能符合 Failed:经测试测试用例所描述的功能和手机功能不符合)
No result:在当前条件下此测试用例不能够执行,大多是由于外界原因,比如缺少设备等等
Not complete:此测试用例没有完全被执行
No run:此测试用例还没被执行
图3-7是测试用例被执行并能够实现所描述的功能的结果举例。
图3-7测试结果图
按测试结果过滤测试用例,图3-8是在状态栏中选择要过滤的条件:
图3-8按测试结果查询条件
3.3执行测试用例
当测试工程师选中一条测试用例并且点击按钮“Run“后,测试用例开始执行。
选中一条测试用例,鼠标单击此行测试用例即可。当测试用例执行结束后,系统会记录测试用例执行日期和测试人员。图3-9显示的是执行过的测试用例记录了测试用例的测试员、测试时间等。
图3-9显示测试时间和测试人员
当点击”Run”后,进入执行测试用例界面。图3-10显示了执行此测试用例需要的前提条件。
图3-10执行测试用例条件图
此界面说明了执行此测试用例所需的外界条件。点击界面中“Begin run“后,正式进入执行测试用例界面,在执行界面,测试工程师将根据手机测试结果选择执行结果。
以下是执行测试用例所用的一些数据表格。
表3-2测试用例结构
表3-3测试结果表结构
表3-4def表结构
3.4添加测试用例
当需要加入新的测试用例时,系统管理员(可以是高级测试工程师)将新的测试用例加入系统中
需要给测试用例添加测试用例所属的:Feather group, Feather, Title等属性。其中Feather group和case title是必须要添加的。
添加手机测试用例流程图如图3-11所示:
图3-11添加测试用例流程图
3.5 删除测试用例
如果某些测试用例已经不再适合当前手机使用,则有系统管理员对这些测试用例。
删除手机功能测试用例既可以逐条删除,也可以选择多条一次性删除。 删除手机功能测试用例如图3-12所示:
图3-12删除测试用例流程图
3.6用户管理
因为保密性的问题,用户不能够自己申请注册,需要系统管理员创建新的用户组将用户ID和password告知用户,然后由用户自己决定是否修改密码。
当用户一段时间内不使用系统或者离职时,系统管理员将暂停用户权限。 图3-13为用户管理简单界面:
图3-13用户管理简单界面
系统管理员点击DEL按钮,将暂停用户权限,包括用户名和用户密码。 该功能点主要的数据库表只有一个,即用户基本信息表。如图3-14所示:
图3-14用户基本信息表
创建新的测试工程师员工用到关键代码: public void validate(){
//名字不能超过20个字符
else if(username.getName().length()>20){ }
//姓名拼音不能为空
if(username.getNameSpell()==null|| }
//姓名拼音不能超过五十个字符
else if(username.getNameSpell().length()>50){ }
//性别不能为空
if(username.getGender()==null|| username.getGender().trim().equals("")){ }
//certificateNumber cannot be empty if(username.getCertificateNumber()==null||
addFieldError("username.gender","性别不能为空"); return;
addFieldError("username","姓名拼音不能超过五十个字符"); return;
addFieldError("username.nameSpell","姓名拼音不能为空"); return;
addFieldError("username.name","名字不能超过20个字符"); return;
username.getNameSpell().trim().equals("")){
username.getCertificateNumber().equals("")){
//密码和确认密码不符
else if(!username.getPassword().equals(username.getConfirmPassword())){ } try {
UsernameDaoImpl usernameDaoImpl = new UsernameDaoImpl(); if( usernameDaoImpl.queryById(username.getCertificateNumber())!=
addFieldError("username.certificateNumber","此测试人员已经注addFieldError("username.confirmPassword","密码和确认密码不符"); return; }
//certificateNumber has error
else if(username.getCertificateNumber().length() != 18){ }
//地址不能超过一百个字符 if(username.getAddress()!=null&& }
//密码不能为空
if(username.getPassword()==null|| }
addFieldError("username.password","密码不能为空"); return;
addFieldError("username.address","地址不能超过100个字符"); return;
addFieldError("username.certificateNumber","身份证号输入误"); return;
addFieldError("username.certificateNumber","身份证号不能为空"); return;
username.getAddress().trim().length()>100){
username.getPassword().trim().equals("")){
null){
册");
}
}
return;
3.7测试用例执行信息
如果一条测试用例执行完毕,该测试用例不能够被执行,需要加Defect link 来描述此测试用例执行状态。
双击测试用例进入图3-15界面:
图3-15加defect link界面
在上述界面中点击linkage and coverage 来填写测试用例的为什么不能够被执行的原因。 3.8修改测试用例结果
当用户对执行的测试结果不满意时或者测试用例的执行结果有误需要修改时,可以重新执行测试用例结果来达到修改测试用例的结果。
4系统测试及性能分析
4.1系统测试
在系统的开发过程中以及开发完成之后,对系统进行大量的测试工作,通过这些测试工作,对系统的主要性能做出一个定量的评价。
软件测试方法一般分为黑盒测试和白盒测试。白盒测试使用于局部,主要由开发人员进行,适合一边开发,一边对软件进行测试,接触代码。黑盒测试注重全局,关注的是系统的功能性是否完善,系统是否稳定。软件在正式投入使用前都要进行黑盒测试和白盒测试这两个阶段。
本章主要是模拟系统用户的角度来对系统进行测试,以下是对主要的几个模块进行测试期望能够达到使用目的。 4.1.1页面之间的身份认证
如果各个网页间不作身份认证,未授权的用户就可绕过登录页面,猜测其他网页的名字,直接通过URL非法访问页面,从而进入考试网站,扰乱网站的正常运作,对网站造成危害。对于这类问题,我们可以采取以下的防范措施: 在每个网页里加一个身份认证程序,如果用户链接到该网页,首先进行的是身份认证,合法的用户就允许其访问,不合法的用户就返回首页重新登录。所以可以利用在合法登陆用户的session对象中加入role这个属性来解决。Session是指一个终端用户与交互网站进行通信的时间间隔,通常指从注册进入网站到注销网站之间所经过的时间。在session中加入的属性在整个会话过程中都有效。 例:以管理员身份通过正常途径登录系统后进入用户管理界面,记下路径为:C:\Docments and settings\administer\桌面\手机软件测试平台\manage.Htm。然后退出登陆,直接打开空白网页输入上述路径。系统会显示请先登录系统在进行操作等相关提示。 4.1.2.登录验证
系统的所有输入数据都事先进行了有效性验证,只有通过验证才能入库,这就避免了导致系统无法正常运行的恶意数据的输入。 以下是判断用户登录判断是否输入数据的部分代码。
If(txt_UserName.Text == null|| txt_UserName.Text.Trim().Equals(“”)) {
showMessage(“用户名不能为空”); txt_UseName.Focus(); return false; }
If(txt_UserPSW.Text == null|| txt_UserPSW.Text.Trim().Equals(“”)) {
showMessage(“必须填写密码”); txt_UsePSW.Focus(); return false; }
模拟用户不正常登陆的几种情况以及系统的正确提示: a 输入不存在的用户名 系统提示为:用户名不存在。
b输入正确的用户名,输入错误的密码。 系统提示为:用户名或者密码错误。 C不输入用户名
系统提示为:用户名不能为空。 d 不输入密码
系统提示为:必须填写密码 4.1.3查看手机测试用例模块测试
查看测试用例必须选中筛选的条件,筛选的条件为:feature group、features、test case title等。用户可以选中任何筛选的条件查看手机测试用例。筛选条件如图4-1所示:
图4-1查询测试用例条件
测试过程:
系统数据库中已经有一条手机测试用例。其某些相关信息为:
模拟查看手机测试用例的过程中出现的几种不同情况: a 所有的查询条件都不选,直接查询
系统显示情况:所有的测试用例都显示出来。
B 只选中任何一条查询条件,比如在Feature Group条件中选择Connectivity。(此测试将遍历所有的查询条件)
系统显示情况:所有Feature Group为Connectivity的测试用例都显示出来。 c Feature Group条件为Connectivity,Featrue条件选择Maps。
系统显示情况:没有任何手机测试用例显示。因为城市地图不属于数据连通模块,所以创建测试用例时没有创建相关测试用例。
4.1.4执行手机测试用例模块测试
首先进入执行手机测试用例界面,然后执行手机测试用例,对每条测试用例选择结果。一条一级测试用例可能由几条二级测试用例组合成,当对所有二级测试用例测试完毕后,系统根据结果优先级判定该测试用例最终显示结果。优先级为:Failed>N/A>No result>Passed。当用户没有测试二级测试用例时,测试结果显示:Not complete.
模拟用户测试手机测试用例的几种情况。
a 只对其中几条二级测试用例进行测试记录为Passed/No result/NA/Failed保存。 测试用例显示结果:Passed/No result/N/A/Failed。
b 不执行任何二级测试用例,保存测试结果。
测试用例显示结果:Not complete
c 其中一条二级测试用例测试结果为Failed,其他为N/A、No result、Passed任何情况。
测试用例显示结果:Failed。
d其中一条二级测试用例测试结果为N/A,其他为No result、Passed任何情况。 测试用例显示结果:N/A。
e其中一条二级测试用例测试结果为No result,其他为Passed。
测试用例显示结果:No result。
F 所有的二级测试用例结果为Passed/No result/NA/Failed,保存。
测试用例显示结果:Passed/No result/NA/Failed。
4.1.5增添手机测试用例功能测试
模拟系统管理员进入系统后,添加手机测试用例,其中Test case title是必须要填写的并且必须选择相应Feature Group,然后在将手机测试用例与相应的feature等其他条件联系起来。
模拟用户增添手机测试用例的几种情况。
a 选择feature group、feature等,不填写test case title 和 case contents。 系统提示:测试用例标题不能为空。
b 填写test case title 和 case contents,但不选择与之对应的feature group,保存。 系统提示:必须选择feature group。
c 选择添加测试用例,什么也不填写,直接保存。
系统提示:测试用例标题不能为空。
d 填写一条已经存在的手机测试用例。
系统提示:该测试用例已存在。
4.1.6删除手机测试用例功能测试
模拟系统管理员进入系统后,进入要删除的feature模块删除手机测试用例,单条删除时必须选中至少一条测试用例。
模拟用户删除手机测试用例的几种情况。
a 不选择任何测试用例,直接点击删除。
系统提示:必须选择至少一条测试用例。
b 选择一条测试用例,点击删除。
系统提示:删除成功。
c选择多条测试用例,点击删除
系统提示:删除成功。
d点击全部删除
系统提示:删除成功。
e以上操作成功后,重新查询删除的手机测试用例。
理论情况:查询不到该测试用例。
实际情况:查询不到该测试用例。
4.1.7添加测试工程师模块测试
测试工程师有姓名、测试员编号、初始密码、性别、电话号码、email、身份证等几项属性。其中姓名、测试员编号、初始密码是必填项。
模拟用户添测试工程师的几种基本情况。
a填写姓名、测试员编号,不填写初始密码。
系统提示:必须填写初始密码。
b 填写姓名、测试员编号、初始密码。
系统提示:创建成功。
c 填写错误的email格式。
系统提示:email格式错误。
d 填写非18位的身份证号码。
系统提示:必须填写正确的身份证号码。
e 创建成功后以新创建的ID和密码登陆,能够登录成功。
4.1.8修改登录密码模块测试
初始账号密码发放到测试工程师手里后要修改初始密码以保证安全。进入修改密码界面,要求输入初始密码,新密码,重复新密码。
模拟用户添测试工程师的几种基本情况:
a 修改时输入错误的初始密码。
系统提示:密码错误。
b 修改时不输入密码直接提交修改。
系统提示:请输入新密码。
c 修改时两次输入新密码不一致。
系统提示:两次输入密码不一致
d 不输入任何数字直接提交修改
系统提示:必须输入初始密码。
修改完毕后以新密码登陆,登录系统成功。
4.1.9系统与数据库数据交互使用存储过程
存储过程是为了完成特定的功能而汇集成一组的SQL语句,用户为该SQL语句命名,经编译后存储在SQL Server的数据库中。同时,用户可以指定存储过程的名字和参数来执行它。系统使用存储过程,大大提高了语句的功能和灵活性,提高了语句执行的效率。在存储过程中可以验证数据的有效性,并且可以将执行的结果返回给用户。 同时,存储过程可多次重复使用,增强了程序代码的可重用性、共享性,加快应用程序的开发,提高开发的质量和效率
4.2功能分析
系统的功能分为:登录模块,测试用例管理模块,测试用例执行模块,用户角色管理模块,用户权限模块等。
本系统主要由公司内部使用实现对手机测试用例的管理,偏重测试用例的管理和执行以及测试工程师的权限管理。经过大量测试,所有模块功能能够实现。
4.3存在问题
当用户登录后,系统会从数据库中读取大量测试用例,因为手机软件功能测试用例一个feature就存在几百条,当多个用户同时读取多个feature时,造成数据拥塞,读取比较慢,这是很多大型系统都拥有的缺点,这是个很大的缺陷,希望能以后的设计和运行中深入研究,逐步完善。
结 论
本文通过对.NET相关技术进入深入的研究,并依据本人在文思创新公司亲 身实践工作,并且依据成熟的.NET技术,在阅读了大量的的图书文献的基础上, 提出了基于.NET平台技术的手机软件功能测试平台的设计与实现。在系统设计 和开发过程中,严格按照软件工程的方法和定义,首先进行系统的需求分析,确 定系统的功能点,完成需求说明书,接着进行各功能模块的概要设计、详细设计、 数据库设计,然后完成编码工作,最后对系统进行相关的测试,编写测试用力, 完成用户手册。
在经过很多次的系统测试中,基本实现了系统预期的目标,比如测试工程师 可以方便的执行测试用例,修改执行过的测试用例,添加测试用例信息,高级测 试工程师可以方便的添加手机测试用例。项目管理员可以方便的添加新的测试工 程师账号密码等信息。
参考文献
[1].Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns 机械工业出版社. 2007年4月.
[2].巫红霞. 关系数据库中查询优化方法的探讨. 镇江高专学报. 2007,(2):42~44
[3]. 张能立,谢佳,杨新泉; ASP.NET在网站开发中的应用 [J]; 计算机与数字工程; 2005年06期
[4].邵良珊 刘好增 马海军 等著.ASP.NET(C#)实践教程.清华大学出版社.2007 年
[5]软件测试本质.
http://hi.baidu.com/lodong/blog/item/7ffe4b58da3b5d2c2834f097.html
[6]. Spectrum Signals.软件测试的艺术.SAMS.
[7]. 萨师煊 王珊 著 数据库系统概论 第三版 高等教育出版社 2000年2月
[8]. 陈冠军 著 精通ASP.NET 2.0 典型模块设计与实现 人民邮电出版社, 2007
年。
[9].刘乃丽 著 精通APS.NET2.0 SQL Server 2005项目开发 人民邮电出版社, 2007年
[10]. (美) Paul C.Jorgensen 编著.软件测试.北京:机械工业出版社.
[11]. Chaudhuri S, Narasayya V. and sarawagi S. Efficient Evaluation of Queries with
Mining Predicates[J]. Proceedings of 18th International Conference on Data
Engineering, San Jose, USA,2002
手机软件测试平台的设计与实现
摘 要
随着手机终端科技的不断发展以及人们对手机终端的功能要求和质量要求越来越高,手机不仅仅是一个可以实现打电话发短信的简单终端,而是逐渐成为了集合电话,短信,GPS卫星导航,城市地图查询,视频通话,3D游戏,文件传输和保存(蓝牙功能和大容量内存),摄像拍照功能的一个超级智能终端。如何保证手机能够实现上述功能并且在实现时各个功能之间没有使用冲突是当前手机软件测试公司的重中之重。本系统即手机软件功能测试平台可以方便地对手机功能进行方便的测试。
在文思创新实习期间,我深刻体会到对测试用例管理的重要性,公司对手机测试平台的稳定性和安全性是十分看重的。测试用例的管理模块占了很大一部分,本文将介绍测试用例的管理模块,将围绕测试用例的管理逐渐介绍到测试用例执行以及延伸到测试工程师的管理。
软件功能测试平台可以实现对测试用例和测试人员的管理,以弥补当前所用测试平台的不足。本文将着重陈述该系统的开发原因以及该系统的功能和如何实现。
软件功能测试平台系统以.net为开发工具,SQL server2005为数据库,采用三层架构(即表现层,数据访问层,业务逻辑层)进行开发,实现了对测试用例和测试人员的管理,提高了测试工程师的测试效率和质量。系统经过大量的数据测试,在功能、性能等方面基本满足的系统的预期目标。
关键词:手机终端测试平台,软件测试,.NET,SQL server2005
目 录
摘 要 ................................................................................................................................... I Abstract ..................................................................................................... 错误!未定义书签。
1绪 论 ..................................................................................................................................... 1
1.1 项目来源以及开发的目的和意义 ............................................................................. 1
1.2 国内外研究现状 ......................................................................................................... 1
1.3 主要开发任务 ............................................................................................................. 2
1.4系统使用工具介绍 ...................................................................................................... 3
1.5论文构成 ...................................................................................................................... 4
2系统总体设计 ......................................................................................................................... 4
2.1系统的需求分析 .......................................................................................................... 5
2.1.1系统的功能需求 ............................................................................................... 7
2.1.2系统的性能需求 ............................................................................................. 10
2.2系统的总体方案 ........................................................................................................ 10
2.3系统所需的软硬件环境 ............................................................................................ 11
3系统的详细设计 ................................................................................................................... 11
3.1登录模块 .................................................................................................................... 12
3.1.1功能描述 ......................................................................................................... 12
3.1.2登录界面 ......................................................................................................... 12
3.2查看测试用例模块 .................................................................................................... 13
3.3执行测试用例 ............................................................................................................ 17
3.4添加测试用例 ............................................................................................................ 20
3.5 删除测试用例 ........................................................................................................... 20
3.6用户管理 .................................................................................................................... 21
3.7测试用例执行信息 .................................................................................................... 24
3.8修改测试用例结果 .................................................................................................... 24
4系统测试及性能分析 ........................................................................................................... 25
4.1系统测试 .................................................................................................................... 25
4.1.1页面之间的身份认证 ..................................................................................... 25
4.1.2.登录验证 ......................................................................................................... 25
4.1.3查看手机测试用例模块测试 ......................................................................... 26
4.1.4执行手机测试用例模块测试 ......................................................................... 28
4.1.5增添手机测试用例功能测试 ......................................................................... 28
4.1.6删除手机测试用例功能测试 ......................................................................... 29
4.1.7添加测试工程师模块测试 ............................................................................. 29
4.1.8修改登录密码模块测试 ................................................................................. 30
4.1.9系统与数据库数据交互使用存储过程 ......................................................... 30
4.2功能分析 .................................................................................................................... 30
4.3存在问题 .................................................................................................................... 31
结 论 .................................................................................................................................... 32 致 谢 .................................................................................................... 错误!未定义书签。
参考文献 .................................................................................................................................. 32
1绪 论
1.1 项目来源以及开发的目的和意义
本项目来源于文思创新软件技术有限公司手机测试部门孔明项目组D组测试项目组。
文思创新软件技术有限公司诺基亚事业部承接诺基亚的手机外包业务。由于当今中国的IT技术行业存在很典型的人才流动性大的特征,在这一方面文思创新也不能避免。因此在诺基亚事业部中同样存在与大量的实习生、处于试用期的员工等。由于诺基亚执行比较严格的人员管理机制,处于实习阶段和试用阶段的员工不能拥有诺基亚手机测试平台的权限。这一严格的人员管理机制有效地保证了商业机密不外泄、较高的测试质量(只有通过试用期、并且被诺基亚考核通过的成熟测试员才能获得操作权限),但是却为外包公司的管理带来不便和混乱。由于账号不够,现在文思创新诺基亚事业部采取一个账号多人使用的方式来解决这一问题。但是这一解决方式带来了另一个问题及数据比较混乱,测试生成的数据只能定位到账号而不能定位到测试员。某些情况下,需要测试员对于其测试数据做出解释说明的时候,使用同一账号的测试员出现相互推脱的现象。由此文思创新诺基亚事业部认为有必要建立一个独立于诺基亚测试平台的系统,以方便其管理。并且建立一个高质量的测试团队以提供高质量的外包服务,在手机测试外包行业具有更高的竞争力。
1.2 国内外研究现状
对信息化依赖程度不断加深、对信息速度要求不断提高的社会,必然会对可移动信息设备提出全方位的要求---安全、稳定可靠、方便灵活。手机测试正是控制软件产品质量的重要手段, 控制软件产品质量的重要手段就是通过权威机构的软件测试。国外手机厂商极为重视手机测试。作为世界手机界的NO.1,诺基亚仅在北京就拥有2000人的测试团队。而诺基亚的测试团队遍布于世界,几乎是在IT稍微发达的国家就有诺基亚的软件测试团队。
目前,我国手机业的质量保证体系还很不完善。相比之下,在国外许多国家的手机公司,软件测试工作已经逐渐演变成一门独立的科学,囊括了配置方案,测试机制,跨平台策略和产品性能,稳定性等独立区域的知识模块。
长期以来,我国手机企业产品开发时,测试成本却常常是最容易被压缩,甚至被完全“砍”掉。这导致我国手机产品质量低下,无法创出自己品牌,走向世界。特别是现在,我国的手机业“山寨”大行其道,“山寨”们不需要任何的专利费用和设计费用,作为特殊的盗版行业,其在利润上有着其他企业无法比拟的优势。而手机企业是以追求利润为目的,市场“山寨”盛行的结果是质量不得不像利润低头。为了追求利润国内有的开发成本远远达不到10%。而在国际上,开发成本中的30-50%用于软件测试。与此同时,只是有少数的手机企业设立了专门的测试部门。因此,在当前不断加深于对外合作的环境下,除了优秀的开发团队,具备良好的手机测试环境、建立高质量的手机测试团队也是中国手机业最需要做的。
测试团队的建立需要长时间的积累,国内企业在这方面和国外的差距很大。很多企业缺乏对于品牌美誉度的建设,只是单纯地看到了手机市场所蕴含的利润,而后一窝蜂的立项、上马、生产手机。对于消费者最关心的质量问题并不重视,在享受了市场最初暴利之后只是留下了一个国产手机=劣质这样的映像。对于国内企业这种涸泽而渔的短视做法,在短时期内难以得到缓解。
但是在测试平台建设这一狭隘的话题上,国内外的差距很难进行区分,即使是国内的山寨厂商也能够搭建起一套看得过去的测试平台。而真正在测试思想的执行、美誉度的建设和品牌质量的重视才是国内厂商和国外厂商的最大差距。
1.3 主要开发任务
根据任务需求,本测试方案需要能够最终完成一个测试平台,测试平台用以完成整个测试的运行。为此运行平台需要关联测试目标、测试用例库、测试辅助程序库、历史结果集等对象。测试员由登录开始发起测试,依次开始读取任务、读取关联的辅助程序库、执行测试用例、完成结果评定等过程。系统管理员由登录发起对测试平台、测试用例库、辅助程序库、历史结果集的管理以及当前任务监控等任务。在执行这些任务的过程中,测试平台需要自动地完成某些数据和文档的自动存储和关联。
在对于管理员权限的管理中,PM使用管理员权限将其添加为普通测试员,再将管理员权限赋予普通测试员。
在管理员对于普通测试员的管理中,管理员可以添加测试员而不能对其进行删除,因为测试员可能产生大量数据,为了能够对数据进行定位和跟踪,需要保留这些测试员的信息,如果有删除的必要的话则对于其权限进行限制。
在性能方面,对于测试平台要求 其具有足够的稳定性,由于会有大量的测试员进行登录与操作,因此系统需要有比较好的并发性,在加载测试用例库的时候会有大量的数据读取操作,在数据读取方面要求也比较高。其次要求有完整的冲突处理机制。在业务或者任务发生变更之后,需要能够对测试员进行有效的提醒。同时如果发生冲突,例如某测试员正在执行测试用例而管理员修改了任务。测试平台需要能够对这样的情况进行有效的冲突处理,由此而产生的垃圾数据也要能够及时地清除。
1.4系统使用工具介绍
ASP.NET是一种建立动态WEB应用程序的技术 ,它是.NET Framework的一部分,可以使用任何.net兼容的语言编写ASP.NET应用程序。但是使用诸如C#等语言,对ASP.NET页面进行编写可以提供比脚本语言更出色的性能表现。在ASP.NET页面中,可以使用ASP.NET服务器端控件来建立常用的用户接口元素,并对其进行编程,可以说用内建可重用组件和自定义组件快速建立WEB FORM,从而使代码大大简化。相对原有的WEB技术而言,ASP.NET提供的编程模型和结构有助于快速高效地建立灵活安全和稳定的应用程序。
.net是Microsoft面向XML WEB服务的平台,它使用一种统一的个性的方式将信息,设备,人员紧密的联系在一起。
要说明.NET的概念,需要将.NET分成3个部分:
.NET战略 该战略机遇这样一种想法,即所有的设备将来会通过internet连接在一起,同时,所有的软件都将成为该网络上提供的一种服务。
.NET Framework 是指像ASP.NET这样可以使.NET更加具体的技术。该架构提供大量具体的服务和技术,以便开发人员创建相应的应用程序来满足俩接到internet上用户的需要。
.NET企业服务器是指像SQL Server 2005这样由.NET Framework应用程序使用的服务器产品。
本系统使用标准的三层架构即数据访问层、业务逻辑层、UI层进行开发。ASP.NET可以使用.NET平台快速方便的部署三层架构。ASP.NET革命性的变化是在网页中也使用基于事件的处理,可以指定处理的后台代码文件,可以使用C#,VB,J#作为后台代码的语言。本系统使用的是用C#作为后台代码的语言。.NET中可以方便的实现组件的装配,后台代码通过命名控件可以方便的使用自己定义的组件。显示层放在ASP页面中,数据库操作和业务逻辑层用组件来实现,这样就很方便的实现了三层架构。
1.5论文构成
论文主要分为以下几个部分来展开:
第一部分为绪论,这一部分首先介绍论文的课题的研究背景、课题的研究意义以及当前国内外的研究现状,最后介绍了本文的结构
第二部分主要将系统的设计,在此部分主要对系统的开发背景、整体架构、开发环境以及所使用的工具等进行描述,详见论文第三部分。
第三部分描述系统的详细设计,按系统构成的模块,从功能描述、界面设计、数据设计三个方面一一进行阐述。
第四部分将详细介绍系统的测试及性能分析。这一部分将介绍对系统的测试过程以及测试方法。这一部分还将对系统的性能进行详细分析。
2系统总体设计
本章将讨论以.NET技术为基础实现手机软件功能测试平台的总体设计,包括系统的需求分析、系统的总体方案以及搭建系统所需的软硬件环境。
2.1系统的需求分析
根据任务需求,本方案需要能够最终完成一个测试平台,测试平台用以完成整个测试的运行。为此运行平台需要关联测试目标、测试用例库、测试辅助程序库、历史结果集等对象。测试员由登录开始发起测试,依次开始读取任务、读取关联的辅助程序库、执行测试用例、完成结果评定等过程。系统管理员由登录发起对测试平台、测试用例库、辅助程序库、历史结果集的管理以及当前任务监控等任务。在执行这些任务的过程中,测试平台需要自动地完成某些数据和文档的自动存储和关联。
在对于管理员权限的管理中,PM使用管理员权限将其添加为普通测试员,再将管理员权限赋予普通测试员。
在性能方面,对于测试平台要求其具有足够的稳定性,由于会有大量的测试员进行登录与操作,因此系统需要有比较好的并发性,在加载测试用例库的时候会有大量的数据读取操作,在数据读取方面要求也比较高。其次要求有完整的冲突处理机制。在业务或者任务发生变更之后,需要能够对测试员进行有效的提醒。同时如果发生冲突,例如某测试员正在执行测试用例而管理员修改了任务。测试平台需要能够对这样的情况进行有效的冲突处理,由此而产生的垃圾数据也要能够及时地清除。
通过在文思的观察和查阅有关的文档,我总结出了手机功能测试的一般流程,该流程也是测试平台需要实现的主要业务。
测试的总体流程参考测试流程图2-1
图2-1执行测试用例流程图
2.1.1系统的功能需求
(1)测试用例管理。
测试用例管理包括添加新的测试用例,删除过期的测试用例,修改测试用例,按条件查询测试用例以及执行测试用例。系统管理者可以对测试用例进行增删改查等操作,而普通的测试工程师只能够对测试用例进行执行操作。
添加新的测试用例:当一款的新的手机产品需要进行测试时,手机生产厂商会提供手机的功能说明书,高级测试工程师会根据功能说明书来写出一些测试用例来测试相应的功能并且将这些测试用例填写到系统中。
删除过期的测试用例:在手机的测试过程中,手机会根据测试报告进行一些功能上的修改,根据各方面的分析可能会删除一些功能,那么则相应的功能的测试用例就需要被删除。拥有删除权限的测试工程师可以删除这些测试用例。 修改测试用例:在测试的过程中,手机某方面的功能修改了,那么相应的测试用例就需要修改。拥有修改权限的测试工程师可以修改这些测试用例。
按条件查询测试用例:用户查询测试用例,首先在查询框中选中手机的功能,测试用例的状态等方面的关键字,比如,Bluetooth, maps这些手机的功能方面,然后系统会根据这些条件将合适的测试用例。查询流程图如图2-2所示
图2-2查询测试用例流程图
执行测试用例:当测试用例添加到系统中后,测试工程师就可以执行这些测试用例。执行测试用例如图2-3所示:
图2-3执行测试用例流程图
(2)用户管理
新用户注册:
与其他系统不同的是,由于IT行业需要极高的保密性,测试的手机和版本未上市,这需要在测试过程中对测试的产品进行保密,并不是每个人都能够进入系统来查看手机的型号和软件版本,以文思创新为例,只有通过了诺基亚部门的考试才能够拥有权限进入系统,所以本系统不提供普通的注册功能。创建的新的用户需要系统管理员来执行,并且由系统管理来讲账号和密码发送给测试工程师。
基本信息修改:用户登录后,可对自己的一些基本信息进行修改,但注意的事,用户名是不可进行修改的。
密码修改:用户登录成功后,进入密码修改页,可重新设置登陆密码。 (3)权限控制
只有管理员具有此权限。管理员进入权限控制页面,为不同的角色分配不同的权限,权限细分到每个功能点,设定好角色的权限后,管理员可为不同的用户分配不同的角色。 2.1.2系统的性能需求
该系统的用户是手机外包行业的企业,其使用者是所有的测试工程师,所以该系统的安全性和稳定性要求比较高。
软件外包企业承接的业务都是未上市的产品,以文思创新为例,其诺基亚项目组承接的是诺基亚手机业务部研发的新的手机的测试项目。新产品未上市,文思创新必须对测试产品严格保守秘密,其所用的测试系统就必须有严格判定程序,防止非相关人员接触到产品的任何信息。
一款新的手机产品的测试过程短则一个季度,长则半年,测试手机的所有信息和测试过程中的一切产生的报告都存储在相关的测试系统中,如此长的时间就对系统的稳定性提出了很高的要求。
由于系统要求很高以及本人水平有限,所以今后在实际应用中需要有专业人员对其进行改进和维护。 2.2系统的总体方案
手机功能测试平台以SQL Server2005作为数据库服务器,IIS为Web服务器,后台代码的开发使用ASP.NET技术C#语言。
系统开发使用当前流行的三层结构,即Web层(页面层)、BLL层(业务逻辑层)、DAL(数据访问层)。Web层提供交互的平台,将用户的提交信息反馈给BLL层,BLL层进行相关的一些逻辑处理,提交给DAL层,DAL层对数据库进行相应的操作,更新并保存数据。
系统主要包括以下几个模块:登录模块,添加测试员模块,,添加管理员模块,测试结果集生成模块,任务检查模块,任务删除模块,任务修改模块,删除过时的测试用例模块,修改测试用例模块,增添新的测试用例模块,执行测试用例模块。系统模块图见图2-4
图2-4系统模块图
2.3系统所需的软硬件环境 硬件配置:Web服务 用户端
软件配置:Web服务器 IIS 5.1 操作系统 Windows XP 建模工具: Rational Rose
数据库 SQL Server2005
3系统的详细设计
第三章主要讨论了基于.NET的软件功能测试平台的整体设计方案,本章将详细的对各个功能模块进行详细描述。
3.1登录模块 3.1.1功能描述
主要提供用户登录系统的功能。
测试工程师(包括管理员等)在对话框内按要求输入用户名和密码,点击“登录”,如果验证通过,则进入系统,如果验证不通过,则会提示密码错误。身份验证如图3-1所示。
图3-1身份验证图
3.1.2登录界面
登录界面如图3-2所示:
图3-2登陆界面
用户在username和password输入框分别输入自己的用户名和密码,点击login按钮,则完成操作。
如果输入的username和password无效(用户不存在或者密码错误)则会提示密码错误。 3.2查看测试用例模块
用户登录成功后会查看测试用例以便对测试用例进行相应的操作(增删改查)用户登录后会看到一个产品列表。如图3-3所示:
.
图3-3产品列表
实现上述视图的部分代码:
…….
……
………
……..
………
树形结构中有各个产品的相关功能测试所需的测试用例。
按条件查询测试用例:当用户选择好查询条件后,系统会按测试工程师的条件将有的测试用例过滤出来。
按条件查看手机测试用例流程图如图3-4所示:
图3-4按条件查询流程图
图3-5是在“plan: feature“中查询了所有关于下载功能的测试用例。
图3-5download条件查询结果图
查看数据库的部分表设计如表3-1所示
表3-1 测试用例数据库设计
一条测试用例包含许多方面,比如测试时间,执行此测试用例的测试员,属于哪个功能,功能下还有二级功能,还有一些注释等等。查看测试用例可以选择要查看的状态。 如图3-6所示:
图3-6测试用例查询条件
手机测试用例的测试结果有多个状态: N/A:所测试的手机没有此项功能
Passed:经测试测试用例所描述的功能和手机功能符合 Failed:经测试测试用例所描述的功能和手机功能不符合)
No result:在当前条件下此测试用例不能够执行,大多是由于外界原因,比如缺少设备等等
Not complete:此测试用例没有完全被执行
No run:此测试用例还没被执行
图3-7是测试用例被执行并能够实现所描述的功能的结果举例。
图3-7测试结果图
按测试结果过滤测试用例,图3-8是在状态栏中选择要过滤的条件:
图3-8按测试结果查询条件
3.3执行测试用例
当测试工程师选中一条测试用例并且点击按钮“Run“后,测试用例开始执行。
选中一条测试用例,鼠标单击此行测试用例即可。当测试用例执行结束后,系统会记录测试用例执行日期和测试人员。图3-9显示的是执行过的测试用例记录了测试用例的测试员、测试时间等。
图3-9显示测试时间和测试人员
当点击”Run”后,进入执行测试用例界面。图3-10显示了执行此测试用例需要的前提条件。
图3-10执行测试用例条件图
此界面说明了执行此测试用例所需的外界条件。点击界面中“Begin run“后,正式进入执行测试用例界面,在执行界面,测试工程师将根据手机测试结果选择执行结果。
以下是执行测试用例所用的一些数据表格。
表3-2测试用例结构
表3-3测试结果表结构
表3-4def表结构
3.4添加测试用例
当需要加入新的测试用例时,系统管理员(可以是高级测试工程师)将新的测试用例加入系统中
需要给测试用例添加测试用例所属的:Feather group, Feather, Title等属性。其中Feather group和case title是必须要添加的。
添加手机测试用例流程图如图3-11所示:
图3-11添加测试用例流程图
3.5 删除测试用例
如果某些测试用例已经不再适合当前手机使用,则有系统管理员对这些测试用例。
删除手机功能测试用例既可以逐条删除,也可以选择多条一次性删除。 删除手机功能测试用例如图3-12所示:
图3-12删除测试用例流程图
3.6用户管理
因为保密性的问题,用户不能够自己申请注册,需要系统管理员创建新的用户组将用户ID和password告知用户,然后由用户自己决定是否修改密码。
当用户一段时间内不使用系统或者离职时,系统管理员将暂停用户权限。 图3-13为用户管理简单界面:
图3-13用户管理简单界面
系统管理员点击DEL按钮,将暂停用户权限,包括用户名和用户密码。 该功能点主要的数据库表只有一个,即用户基本信息表。如图3-14所示:
图3-14用户基本信息表
创建新的测试工程师员工用到关键代码: public void validate(){
//名字不能超过20个字符
else if(username.getName().length()>20){ }
//姓名拼音不能为空
if(username.getNameSpell()==null|| }
//姓名拼音不能超过五十个字符
else if(username.getNameSpell().length()>50){ }
//性别不能为空
if(username.getGender()==null|| username.getGender().trim().equals("")){ }
//certificateNumber cannot be empty if(username.getCertificateNumber()==null||
addFieldError("username.gender","性别不能为空"); return;
addFieldError("username","姓名拼音不能超过五十个字符"); return;
addFieldError("username.nameSpell","姓名拼音不能为空"); return;
addFieldError("username.name","名字不能超过20个字符"); return;
username.getNameSpell().trim().equals("")){
username.getCertificateNumber().equals("")){
//密码和确认密码不符
else if(!username.getPassword().equals(username.getConfirmPassword())){ } try {
UsernameDaoImpl usernameDaoImpl = new UsernameDaoImpl(); if( usernameDaoImpl.queryById(username.getCertificateNumber())!=
addFieldError("username.certificateNumber","此测试人员已经注addFieldError("username.confirmPassword","密码和确认密码不符"); return; }
//certificateNumber has error
else if(username.getCertificateNumber().length() != 18){ }
//地址不能超过一百个字符 if(username.getAddress()!=null&& }
//密码不能为空
if(username.getPassword()==null|| }
addFieldError("username.password","密码不能为空"); return;
addFieldError("username.address","地址不能超过100个字符"); return;
addFieldError("username.certificateNumber","身份证号输入误"); return;
addFieldError("username.certificateNumber","身份证号不能为空"); return;
username.getAddress().trim().length()>100){
username.getPassword().trim().equals("")){
null){
册");
}
}
return;
3.7测试用例执行信息
如果一条测试用例执行完毕,该测试用例不能够被执行,需要加Defect link 来描述此测试用例执行状态。
双击测试用例进入图3-15界面:
图3-15加defect link界面
在上述界面中点击linkage and coverage 来填写测试用例的为什么不能够被执行的原因。 3.8修改测试用例结果
当用户对执行的测试结果不满意时或者测试用例的执行结果有误需要修改时,可以重新执行测试用例结果来达到修改测试用例的结果。
4系统测试及性能分析
4.1系统测试
在系统的开发过程中以及开发完成之后,对系统进行大量的测试工作,通过这些测试工作,对系统的主要性能做出一个定量的评价。
软件测试方法一般分为黑盒测试和白盒测试。白盒测试使用于局部,主要由开发人员进行,适合一边开发,一边对软件进行测试,接触代码。黑盒测试注重全局,关注的是系统的功能性是否完善,系统是否稳定。软件在正式投入使用前都要进行黑盒测试和白盒测试这两个阶段。
本章主要是模拟系统用户的角度来对系统进行测试,以下是对主要的几个模块进行测试期望能够达到使用目的。 4.1.1页面之间的身份认证
如果各个网页间不作身份认证,未授权的用户就可绕过登录页面,猜测其他网页的名字,直接通过URL非法访问页面,从而进入考试网站,扰乱网站的正常运作,对网站造成危害。对于这类问题,我们可以采取以下的防范措施: 在每个网页里加一个身份认证程序,如果用户链接到该网页,首先进行的是身份认证,合法的用户就允许其访问,不合法的用户就返回首页重新登录。所以可以利用在合法登陆用户的session对象中加入role这个属性来解决。Session是指一个终端用户与交互网站进行通信的时间间隔,通常指从注册进入网站到注销网站之间所经过的时间。在session中加入的属性在整个会话过程中都有效。 例:以管理员身份通过正常途径登录系统后进入用户管理界面,记下路径为:C:\Docments and settings\administer\桌面\手机软件测试平台\manage.Htm。然后退出登陆,直接打开空白网页输入上述路径。系统会显示请先登录系统在进行操作等相关提示。 4.1.2.登录验证
系统的所有输入数据都事先进行了有效性验证,只有通过验证才能入库,这就避免了导致系统无法正常运行的恶意数据的输入。 以下是判断用户登录判断是否输入数据的部分代码。
If(txt_UserName.Text == null|| txt_UserName.Text.Trim().Equals(“”)) {
showMessage(“用户名不能为空”); txt_UseName.Focus(); return false; }
If(txt_UserPSW.Text == null|| txt_UserPSW.Text.Trim().Equals(“”)) {
showMessage(“必须填写密码”); txt_UsePSW.Focus(); return false; }
模拟用户不正常登陆的几种情况以及系统的正确提示: a 输入不存在的用户名 系统提示为:用户名不存在。
b输入正确的用户名,输入错误的密码。 系统提示为:用户名或者密码错误。 C不输入用户名
系统提示为:用户名不能为空。 d 不输入密码
系统提示为:必须填写密码 4.1.3查看手机测试用例模块测试
查看测试用例必须选中筛选的条件,筛选的条件为:feature group、features、test case title等。用户可以选中任何筛选的条件查看手机测试用例。筛选条件如图4-1所示:
图4-1查询测试用例条件
测试过程:
系统数据库中已经有一条手机测试用例。其某些相关信息为:
模拟查看手机测试用例的过程中出现的几种不同情况: a 所有的查询条件都不选,直接查询
系统显示情况:所有的测试用例都显示出来。
B 只选中任何一条查询条件,比如在Feature Group条件中选择Connectivity。(此测试将遍历所有的查询条件)
系统显示情况:所有Feature Group为Connectivity的测试用例都显示出来。 c Feature Group条件为Connectivity,Featrue条件选择Maps。
系统显示情况:没有任何手机测试用例显示。因为城市地图不属于数据连通模块,所以创建测试用例时没有创建相关测试用例。
4.1.4执行手机测试用例模块测试
首先进入执行手机测试用例界面,然后执行手机测试用例,对每条测试用例选择结果。一条一级测试用例可能由几条二级测试用例组合成,当对所有二级测试用例测试完毕后,系统根据结果优先级判定该测试用例最终显示结果。优先级为:Failed>N/A>No result>Passed。当用户没有测试二级测试用例时,测试结果显示:Not complete.
模拟用户测试手机测试用例的几种情况。
a 只对其中几条二级测试用例进行测试记录为Passed/No result/NA/Failed保存。 测试用例显示结果:Passed/No result/N/A/Failed。
b 不执行任何二级测试用例,保存测试结果。
测试用例显示结果:Not complete
c 其中一条二级测试用例测试结果为Failed,其他为N/A、No result、Passed任何情况。
测试用例显示结果:Failed。
d其中一条二级测试用例测试结果为N/A,其他为No result、Passed任何情况。 测试用例显示结果:N/A。
e其中一条二级测试用例测试结果为No result,其他为Passed。
测试用例显示结果:No result。
F 所有的二级测试用例结果为Passed/No result/NA/Failed,保存。
测试用例显示结果:Passed/No result/NA/Failed。
4.1.5增添手机测试用例功能测试
模拟系统管理员进入系统后,添加手机测试用例,其中Test case title是必须要填写的并且必须选择相应Feature Group,然后在将手机测试用例与相应的feature等其他条件联系起来。
模拟用户增添手机测试用例的几种情况。
a 选择feature group、feature等,不填写test case title 和 case contents。 系统提示:测试用例标题不能为空。
b 填写test case title 和 case contents,但不选择与之对应的feature group,保存。 系统提示:必须选择feature group。
c 选择添加测试用例,什么也不填写,直接保存。
系统提示:测试用例标题不能为空。
d 填写一条已经存在的手机测试用例。
系统提示:该测试用例已存在。
4.1.6删除手机测试用例功能测试
模拟系统管理员进入系统后,进入要删除的feature模块删除手机测试用例,单条删除时必须选中至少一条测试用例。
模拟用户删除手机测试用例的几种情况。
a 不选择任何测试用例,直接点击删除。
系统提示:必须选择至少一条测试用例。
b 选择一条测试用例,点击删除。
系统提示:删除成功。
c选择多条测试用例,点击删除
系统提示:删除成功。
d点击全部删除
系统提示:删除成功。
e以上操作成功后,重新查询删除的手机测试用例。
理论情况:查询不到该测试用例。
实际情况:查询不到该测试用例。
4.1.7添加测试工程师模块测试
测试工程师有姓名、测试员编号、初始密码、性别、电话号码、email、身份证等几项属性。其中姓名、测试员编号、初始密码是必填项。
模拟用户添测试工程师的几种基本情况。
a填写姓名、测试员编号,不填写初始密码。
系统提示:必须填写初始密码。
b 填写姓名、测试员编号、初始密码。
系统提示:创建成功。
c 填写错误的email格式。
系统提示:email格式错误。
d 填写非18位的身份证号码。
系统提示:必须填写正确的身份证号码。
e 创建成功后以新创建的ID和密码登陆,能够登录成功。
4.1.8修改登录密码模块测试
初始账号密码发放到测试工程师手里后要修改初始密码以保证安全。进入修改密码界面,要求输入初始密码,新密码,重复新密码。
模拟用户添测试工程师的几种基本情况:
a 修改时输入错误的初始密码。
系统提示:密码错误。
b 修改时不输入密码直接提交修改。
系统提示:请输入新密码。
c 修改时两次输入新密码不一致。
系统提示:两次输入密码不一致
d 不输入任何数字直接提交修改
系统提示:必须输入初始密码。
修改完毕后以新密码登陆,登录系统成功。
4.1.9系统与数据库数据交互使用存储过程
存储过程是为了完成特定的功能而汇集成一组的SQL语句,用户为该SQL语句命名,经编译后存储在SQL Server的数据库中。同时,用户可以指定存储过程的名字和参数来执行它。系统使用存储过程,大大提高了语句的功能和灵活性,提高了语句执行的效率。在存储过程中可以验证数据的有效性,并且可以将执行的结果返回给用户。 同时,存储过程可多次重复使用,增强了程序代码的可重用性、共享性,加快应用程序的开发,提高开发的质量和效率
4.2功能分析
系统的功能分为:登录模块,测试用例管理模块,测试用例执行模块,用户角色管理模块,用户权限模块等。
本系统主要由公司内部使用实现对手机测试用例的管理,偏重测试用例的管理和执行以及测试工程师的权限管理。经过大量测试,所有模块功能能够实现。
4.3存在问题
当用户登录后,系统会从数据库中读取大量测试用例,因为手机软件功能测试用例一个feature就存在几百条,当多个用户同时读取多个feature时,造成数据拥塞,读取比较慢,这是很多大型系统都拥有的缺点,这是个很大的缺陷,希望能以后的设计和运行中深入研究,逐步完善。
结 论
本文通过对.NET相关技术进入深入的研究,并依据本人在文思创新公司亲 身实践工作,并且依据成熟的.NET技术,在阅读了大量的的图书文献的基础上, 提出了基于.NET平台技术的手机软件功能测试平台的设计与实现。在系统设计 和开发过程中,严格按照软件工程的方法和定义,首先进行系统的需求分析,确 定系统的功能点,完成需求说明书,接着进行各功能模块的概要设计、详细设计、 数据库设计,然后完成编码工作,最后对系统进行相关的测试,编写测试用力, 完成用户手册。
在经过很多次的系统测试中,基本实现了系统预期的目标,比如测试工程师 可以方便的执行测试用例,修改执行过的测试用例,添加测试用例信息,高级测 试工程师可以方便的添加手机测试用例。项目管理员可以方便的添加新的测试工 程师账号密码等信息。
参考文献
[1].Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns 机械工业出版社. 2007年4月.
[2].巫红霞. 关系数据库中查询优化方法的探讨. 镇江高专学报. 2007,(2):42~44
[3]. 张能立,谢佳,杨新泉; ASP.NET在网站开发中的应用 [J]; 计算机与数字工程; 2005年06期
[4].邵良珊 刘好增 马海军 等著.ASP.NET(C#)实践教程.清华大学出版社.2007 年
[5]软件测试本质.
http://hi.baidu.com/lodong/blog/item/7ffe4b58da3b5d2c2834f097.html
[6]. Spectrum Signals.软件测试的艺术.SAMS.
[7]. 萨师煊 王珊 著 数据库系统概论 第三版 高等教育出版社 2000年2月
[8]. 陈冠军 著 精通ASP.NET 2.0 典型模块设计与实现 人民邮电出版社, 2007
年。
[9].刘乃丽 著 精通APS.NET2.0 SQL Server 2005项目开发 人民邮电出版社, 2007年
[10]. (美) Paul C.Jorgensen 编著.软件测试.北京:机械工业出版社.
[11]. Chaudhuri S, Narasayya V. and sarawagi S. Efficient Evaluation of Queries with
Mining Predicates[J]. Proceedings of 18th International Conference on Data
Engineering, San Jose, USA,2002