第 6 章 平台测试
开发的最后阶段为测试,测试在平台开发中是必不可少,其实它存在于开发的整个过程中,通过测试发现平台中的错误,由开发人员解决,从而增强平台的安全性和健壮性。
主要测试输入、输出以及业务流程等是不是能够满足要求,并对测试结果进行记录。本平台主要是采用人工和自动化测试两种方式结合进行测试,本章将对测试方法和测试工具进行介绍,然后设计测试用例并实施测试,最后对结果分析和总结。
本章内容如下安排:第 1 节简要介绍测试的目的与原则;第 2 节简单介绍了黑盒测试方法,以及黑盒测试方法中主要的测试用例设计方法;第 3 节主要是将人工测试和自动化测试进行比较;第 4 节对自动化测试工具 Selenium IDE进行简单介绍;第 5 节是测试实施部分,主要包括测试用例的设计,测试环境的配置,使用人工和自动化进行测试;第 6 节是对此次测试结果的分析。
6.1 测试目的与原则。
测试,保证了产品的质量,发生在项目开发的整个过程,一般是由专门的测试员严格按照测试流程进行。在测试时,必须要认同以下几个观点: 第一,软件测试是发现问题的过程;第二,测试是证明程序有缺陷的途径;第三,好的测试用例能发现至今未发现的问题; 第四,成功的测试是发现了至今未觉察的多个缺陷的测试[49]。因此,测试的目的是找出尽可能多的缺陷。软件测试应该遵循以下几个原则:尽可能早的发现错误;严格制定和执行测试计划;设计覆盖面广的测试用例等。详情见文献[49]。
6.2 黑盒测试。
在本文中,使用黑盒测试方法进行平台的功能测试。黑盒测试无需考虑程序内部逻辑结构,只需根据需求规格说明书,检查程序的功能是否达到要求。黑盒测试的目的是为了发现以下问题:功能是否正确或被遗漏;输入是否合理;能否得到预期结果;初始化或终止是否正确。
因此,使用黑盒测试方法时,必须明确可能的输入和预期结果,从其中选择合适记录作为测试数据,检查是否能产生预期结果。但是可能的数据输入和预期结果也许有很多,不可能花费大量的精力和时间使用穷举法列出来,只能从中选取具有代表性且覆盖面广的数据作为测试数据,因此,需要设计测试用例。测试用例方法的目的是选取少量的数据代替穷举法,却有一样甚至更好的测试效果,节省时间的同时,提高工作效率。
6.2.1 黑盒测试的测试用例设计方法。
在黑盒测试方法中,有多种设计测试用例的方法,比如:等价类划分法、边界值分析法、因果图法等。在本文中,主要使用等价类划分法和边界值法设计测试用例,下面对这两种方法进行介绍。
1、等价类划分法。
等价类划分法是目前运用最广的测试用例设计方法,是典型的黑盒测试方法,正如黑盒测试的特征一样,等价类划分法不考虑程序的内部结构,只按照规格说明设计测试用例,从可能的输入数据中选择数据组进行测试。等价类划分是解决如何选择合适的数据进行测试,并发现尽可能多的错误。
(1)等价类的有效和无效之分。
等价类是所有输入数据的子集,所有输入数据可以划分成多个等价类,在每个等价类中取出具有代表性的数据作为该等价类的输入,获得测试结果。等价类划分可以分为有效等价类和无效等价类两种情况。
有效等价类,从字面上理解,该等价类是有效的,是合理输入的集合。有效等价类可以验证平台中功能是否符合规格说明中的功能需求。同理,无效等价类是指该等价类是不合理的,是无效输入的集合。它可以验证某些功能不符合规格说明要求。在设计测试用例时,需要覆盖这两种等价类,系统不能只接受有效测试用例,而不接受无效测试用例。只有二者兼顾,才能保证测试的全面性和系统的可靠性。
(2)划分等价类的方法。
在实际应用中,确定等价类有如下的原则:1)规定输入的取值范围等情况下,可以确定一个有效等价类和两个无效等价类[50]。例如:在充值模块中,规定充值金额是大于 0 且小于 1000000,则有效等价类是“0<金额<1000000”,无效等价类是“金额<0”或者“金额>1000000”。2)在输入时给出限定的字样,如“一定”、“只能”等情况,可确定一个有效等价类和一个无效等价类。例如:
在用户管理中,使用用户手机号注册,手机号只能是 11 位,11 位数的手机号为有效等价类,不是 11 位的手机号是无效等价类。
(3)测试用例设计步骤。
确定等价类之后,建立等价类表,将所有划分的等价类列出,然后根据划分的等价类设计测试用例,步骤如下:
第一步,为每个等价类设定唯一编号;第二步,设计一个测试用例,覆盖尽可能多的有效等价类;重复第二步,直到覆盖所有的有效等价类;第三步,设计一个测试用例,只能覆盖一个未被覆盖的无效等价类;重复第三步,直到覆盖所有的无效等价类。
2、边界值分析法。
(1)边界值分析法选值。
经过一年的测试经验发现,测试的全面性离不开对边界值的测试,边界值测试可以看成是等价类划分的补充。而且系统中大量的错误发生在边界上。因此,需要针对边界设计测试用例,而边界值分析法就是对边界值进行测试的方法。使用边界值设计测试用例时,首先应该确定边界情况,然后选取测试数据。选边界值时,选择三种测试数据,分别为正好等于边界,刚刚大于边界和刚刚小于边界的值。
(2)使用边界值选择测试用例的原则。
如果规定输入值的范围,则应该取刚好等于边界的值,刚好超出最大边界的值以及刚好低于最小边界的值作为测试数据。例如:充值功能,金额的范围是“0-1000000”,则可以选取“-1,0,1000000,1000001”作为测试数据。2)规定输入值的个数,可以选取最小个数,最小个数-1,最大个数,最大个数+1 作为测试数据。
(3)设计测试用例。
第一步,确定输入和输出值;第二步,根据输入和输出设计测试用例;第三步,根据测试用例表,选取边界值作为测试数据。
6.3 自动化测试与人工测试。
人工测试是传统的测试方法,使用人工测试时,会发现测试工作量偏大,测试工作反复,以至于花费大量的时间和精力,并且质量得不到保证。
自动化测试是指使用一种框架或者工具实现系统测试的方法,从某种意义上说,自动化测试是对人工测试的一种改善,可以避免人工测试的一些问题,通过自动化测试工具和脚本实现[51]。表 6.1 是人工测试和自动化测试对比表。
通过表 6.1 可以发现,自动化测试在实际测试中必不可少,是保证产品质量的重要因素之一。在人工测试不够全面的情况下,自动化测试可作为补充完善。
但是自动化测试不能完全代替人工测试,应该采用人工和自动化测试相结合进行测试。
6.4 测试工具选择。
应实习公司要求,本次采用 Selenium IDE 测试工具实现功能自动化测试。
6.4.1 Selenium IDE。
Selenium 是个开源的用于 Web 功能测试的工具集,适用于多种 Web 测试环境[52]。Selenium 中最主要的三种工具分别为:SeleniumCore(是 Selenium IDE 和Selenium RC 的引擎)、Selenium IDE(Firefox 的插件,支持脚本录制、回放)和 Selenium RC。
使用 Selenium IDE 进行 Web 端的脚本录制、回放测试相对简单,适合初学者。Selenium IDE 是一个基于 FireFox 的 Web 测试开发环境,可以录制、编辑、回放和调试等。同时,Selenium IDE 中包含了 SeleniumCore,可以轻松的录制、回放。Selenium IDE 脚本录制页面如下图 6.1 所示。
点击录制按钮,在 FireFox 中执行操作。Base URL 文本中填写的是测试网站的首页地址。会在 Table 中记录 Command、Target 和 Value,Command 列会列出执行的所有的命令,同时可以根据需要选择更合适的命令。Target 中表示的是要操作的网页元素。Value 文本框中输入需要改变的值。
同时,在执行脚本测试时,可以在 Log 中了解回放情况,当发生错误或其他特殊情况时,可以通过修改 Command、Target 和 Value 完善测试。
第五章系统测试整个智能家居系统的硬件平台搭建完成,软件编程和调试结束后,需要对系统进行一个全面的测试,来验证系统的功能的实现和稳定性。系统测试分为功能测试和性能测试。功能测试主要检测系统设计的功能是否都能完成;性能测试主要检验系统的稳定...
本文的研究目标是以软件工程理论为指导,采用 PHP+My SQL 技术设计并实现科学合理、实用好用、能够满足实际需求的作业管理系统,以提高教学中作业管理环节的效率,增强教学效果,提高人才培养的质量。...
摘要微信是腾讯公司于2011年1月21日推出的一款通过网络快速发送语音短信、视频、图片和文字,支持多人群聊的手机即时通信软件,截止到2014年底,微信注册用户已接近8亿,海外用户突破1亿。面对如此庞大的用户群体,各种各样基于微信的应用系统...
第1章绪论1.1综述。P2P借贷平台是依托网络平台实现借贷交易的服务性金融网站。网络借贷是指在网络平台上实现借贷手续、客户资料、交易合同、资金进出等同步实施;这种金融服务方式是在经济迅速发展、互联网功能日益完善及民间借贷的强大需求条件下兴...
第1章绪论1.1课题背景微信作为一个强大手机应用,在占领用户智能方面具有天然的优势,基于微信的应用系统应运而生,称为微应用,微信通过公众平台建立了良好的生态系统,提供了功能丰富微信公众平台接口[5],构建了开发微应用的系统开发和运行平台,为...
通过本应用系统,审计人员根据职责分工和管理要求规范开展审计工作,有效整合利用各项资源,实现了对审计项目管理各个环节的有效控制,使各项管理活动处于合理、合法、有效的监控之下,提高了审计管理效率,提升了审计管理的规范化、信息化水平。...
在整个项目中,本文作者负责平台中大部分功能需求的测试工作,下面将采用等价类划分法或者边界值分析法对其中一些有代表性的功能进行测试用例设计。...
本章将主要介绍运营后台端和微信端中本文作者参与的部分功能设计与实现,包括价格体系管理、充值卡管理、订单修改、客服审单等功能。同时介绍运营管理端的界面设计等。...
第7章总结与展望7.1总结本系统的前台设计主要是利用目前最新的html5、css3、javascript、jQury等流行前台设计技术,后台语言主要是利用php语言借助Notepad++工具开发编写程序,而数据库则采用了当前比较实用的MySql数据库。系统的整个设计过程...
第5章DBYCF-P2P平台的系统设计5.1设计目标和思路。5.1.1设计目标。1、打造专业咨询平台和数据研究中心,建立产品资料库,与多数国内相关公司达成战略合作协议,以此为基础致力于建立全面的产品库,建立从产品立项预售到最终兑付全程跟踪系统,方便...