6.5 测试实施。
6.5.1 设计测试用例。
在整个项目中,本文作者负责平台中大部分功能需求的测试工作,下面将采用等价类划分法或者边界值分析法对其中一些有代表性的功能进行测试用例设计。
1、运营管理端登录模块测试用例的设计,只有输入的密码和该用户名匹配,才能成功登录,否则失败,具体用例设计如下表 6.2 所示。
2、微信客户端登录模块的实现,登录微信端时,只需输入手机号,点击获取验证码,然后输入验证码登录即可。只需要判断手机号的位数是否是 11,不需考虑平台中是否存在该用户,并且平台对输入的手机号位数做了限制,最大 11位。用例设计具体见下表 6.3。
3、微信支付充值功能的实现,为自己余额充值时,只需输入合理的金额,点击充值即可,合理的金额输入范围是 1 到 1000000,此处采用边界值分析法,用例设计具体见下表 6.4。
4、运营管理端订单查询功能测试用例设计,在该部分中存在许多条件查询,设计测试用例时,必须尽可能的覆盖全面,用例设计具体见下表 6.5。
5、通过文件批量添加充值卡功能,文件格式是以.xls 为后缀的 Excel 文件,大小不超过 2M,表中不存在相同卡号的充值卡,同时不能和平台中现有的充值卡相同,一旦相同,全部添加失败。测试用例设计见表 6.6。
同时针对文件大小,采用边界值分析法设计测试用例。具体测试用例设计见表 6.7。
6.5.2 配置测试环境。
测试环境软硬件配置如下表 6.8。
首先配置好 JDK 和 Tomcat 的环境变量,然后将项目部署到 Tomcat 服务器上,连接数据库服务器,点击 Tomcat 的 startup.bat 启动项目运行。
6.5.3 使用人工测试。
对平台的功能性测试,微信端和安卓端都采用人工测试,如登录微信端,微信端充值等功能。对于 Web 中的功能采用 Selenium IDE 自动化测试。
1、微信登录功能测试。
微信登录功能测试采用的是人工测试,根据 6.5.1 中设计的测试用例实施测试,得出的测试结果表如 6.9。
在实际测试时发现,使用第三方 Submail 短信服务时,经常发生接收短信延迟,导致多次获取验证码的情况。通过代码检查发现,这个问题和实现方式无关,而是 Submail 短信服务本身的延迟问题。这个问题在平台上线后,遭到许多用户反馈,此后会就此问题和 Submail 短信服务平台进行沟通。
2、微信支付充值功能测试。
微信支付充值功能测试采用的是人工测试,根据 6.5.1 中设计的测试用例实施测试,得出的测试结果表如 6.10。
从测试结果表中可以看出,当输入 0.9 时,界面无任何变化,如图 6.4 所示,和预期结果“充值失败,金额太小”不符。继续多次输入小于 1 的数,得到同样的结果。通过对代码检查发现,if…else 语句中没有调用到“充值失败,金额太小”的提示弹框方法。只需将该提示框对应的方法加载到 if…else 语句中即可。
修改完成后,通过再次对该用例多次测试得出预期结果。
3、运营管理端批量添加充值卡功能测试。
对于批量添加充值卡功能,需要使用等价类和边界值两种方法测试。首先是使用等价类划分进行测试,得出的结果表如表 6.11 所示。
从第 8、9 个用例可以看出,测试结果和预期结果不一致。编号和充值卡号是一一对应的,以第 8 个用例为例,如图 6.6 所示,文件中存在编号为 500607,同时平台中已存在 500607 的充值卡,在上传时,文件中排在 500607 前面的500606 却上传成功。
为了保证数据的一致性和完整性,无论是文件中存在相同充值卡还是文件中有和平台中相同的充值卡,上传时,都不能导入。建议为了解决此类问题,增加级联操作,当存在相同充值卡时,全部导入失败。对此部分代码修改后,经过多次测试发现,当存在相同卡号的充值卡时,全部导入失败。
其次使用边界值法对文件的大小边界测试,如表 6.12。
通过上述测试测试结果和预期结果对比,发现与预期结果一致,该功能暂时可行。这只是其中一组测试用例,而在实际应用中,对于每个功能,不能只通过一次测试判断成功与否,必须经过多次验证。
6.5.4 使用 Selenium IDE 测试。
主要是使用 Selenium IDE 对运营管理端的某些功能进行功能测试,例如登录功能,订单查询等功能,下面将按照 6.5.1 节中的测试用例进行测试。
1、登录功能测试。
(1)首先保证页面元素完整,且各元素位置合适。
(2)录制脚本。在 FireFox 浏览器中打开 Selenium IDE,点击录制,然后在浏览器中输入 http://119.29.110.236:8080/HxfBizWeb/console! layout. action 地址,在输入框中用户名和密码点击登录按钮。
(3)录制完毕,执行测试。结果如图 6.6 所示,录制所有测试用例,然后一起执行,结果显示正确执行 5 个测试用例,错误数为 0,同时可以在 Log 中查看结果,并且可以在浏览器中看到执行过程,并且确实登录成功跳转到主页面。
并且通过对所有的测试用例实施测试得到测试结果表如表 6.13。
从上表中可以看出,测试结果同预期结果一致。以使用 songyizhi 和 123 登录为例,如图 5.4 所示,输入用户名 songyizhi 和密码 123,选择运营端,点击登录,得出 6.7 所示结果图,跳转到主页。
2、订单查询功能测试。
(1)首先保证页面元素完整,且各元素位置合适。
(2)录制脚本,选择条件进行查询。
(3)录制完毕,实施测试。执行测试时,出现如图 6.8 结果,执行错误,原因是由于使用了Panel面板导致,需要对脚本进行修改,修改后的脚本如下所示,并且修改后测试结果如图 6.9。
修改后的脚本:
同理,对于其他用例,采用同样的处理方法,在此不作赘述。经过对所有测试用例实施测试之后,得出如表 6.14 所示结果。
由于篇幅限制,仍有部分条件组合测试用例结果未能列出,但在实际测试中,将测试结果和预期结果对比,发现测试结果仍符合预期。
6.6 测试结果分析。
在此次测试中,所有的 bug 都是通过柠檬 bug 管理器管理的,在该管理器中可以设计测试用例,提交 bug,还能用图的形式统计 bug 情况。图 6.11 是按bug 状态统计的结果。
从图中可以看出,迄今为止总共向 bug 管理器中提交了 167 个 bug(由于在该项目的前期本文作者没有加入,也没有统计 bug),再加上对前面 bug 的统计,会发现大概测试出了 320 左右的 bug,并且 bug 已经解决了 94.61%,平台的功能已经基本稳定,还有一些不影响使用的 bug 由于程序员对工作重要性判断的问题搁置了,后续将会处理。
通过使用人工和 Selenium IDE 测试方法反复对功能进行测试发现,当如登录功能一样不涉及一些复杂多变的页面插件技术时,使用自动化测试能比人工测试节约一倍时间完成测试;但对如订单查询功能一样使用像 Treegrid 和 Panel等插件的功能,使用 Selenium IDE 时,每次执行都要重新定位,花费人工测试的两倍时间完成测试。在实际应用中,应当选择合适的方法进行测试,避免浪费时间,增加开发成本。
通过迭代和回归测试,功能基本完善,平台可以稳定运行,并且项目已验收并上线。经过一段时间的试运行,通过用户反馈发现,页面友好性得到了用户的称赞,简单的下单操作也符合用户的需求。
6.7 本章小结。
本章节主要讲述的是对平台的测试,以登录、订单查询、充值等功能为例设计测试用例,然后使用人工和 Selenium IDE 执行测试,然后对测试结果分析。
通过对平台测试发现,不是每个功能采用 Selenium IDE 的测试效果都比人工测试好,在实际测试时,应该选择合适的方法测试对应的功能。
随着我国居民生活水平的提高,居民可支配的收入越来越高,随之而来的是居民生活压力增加,不健康饮食、不健康的生活习惯和生活压力导致居民的健康水平却越来越低,近些年我国居民对健康越来越重视。...
第四章个人防火墙系统设计与实现4.1开发环境操作系统:Windows7开发工具:VisualStudio20104.2防火墙系统设计架构4.2.1防火墙系统总体结构PSFW个人防火墙分为三个模块(总体模块划分见表4.1):(a)PSFWIOCONTROL为动态链接库模块和可执...
本文以软件开发为主线论述了主要的系统分析、设计与实现工作。在需求分析方面,从嘉饰公司亟需解决的主要营销问题出发,着重从营销基础信息管理、营销方案管理和营销的定价与成本信息管理方面进行了分析。...
第五章结论本文通过对物联网智能家居市场走访调查,结合行业发展趋势进行综合分析,充分考虑大众需求,研究和分析智能家居设备的控制技术,主要研究工作有以下几个方面:?1、对物联网和智能家居的发展历史,智能家居的发展现状进行了深入细致地研究,通...
第1章绪论随着计算机技术、互联网技术和嵌入式技术的日趋成熟,物联网开始逐渐走进人们的生活。在国家的政策支持下,科技在飞速的发展,智慧中国的概念也已经逐渐走入我们的城市。智能城市、智能家居、智慧医疗等基于物联网的智能系统已经为人们的生活...
本文的研究目标是以软件工程理论为指导,采用 PHP+My SQL 技术设计并实现科学合理、实用好用、能够满足实际需求的作业管理系统,以提高教学中作业管理环节的效率,增强教学效果,提高人才培养的质量。...
摘要微信是腾讯公司于2011年1月21日推出的一款通过网络快速发送语音短信、视频、图片和文字,支持多人群聊的手机即时通信软件,截止到2014年底,微信注册用户已接近8亿,海外用户突破1亿。面对如此庞大的用户群体,各种各样基于微信的应用系统...
第3章酒店客房预订管理系统的数据库分析及系统设计3.1数据库分析软件系统在工作的过程中,相关的数据信息都保存在数据库中,数据库的主要作用就是对软件系统中的数据信息进行存储和管理,保证这些数据信息的稳定和安全。数据库就是软件系统的后台,是...
第5章系统测试系统测试工作是软件工程中不可缺少的一项工作内容,而系统测试工作并不是在系统完成开发工作后才开始进行,而是在系统开始开发后便进行工作。边开发边测试已经是软件系统开发工作中的新形势。系统测试工作能够保证软件系统从功能单元到整体...
第1章绪论1.1综述。P2P借贷平台是依托网络平台实现借贷交易的服务性金融网站。网络借贷是指在网络平台上实现借贷手续、客户资料、交易合同、资金进出等同步实施;这种金融服务方式是在经济迅速发展、互联网功能日益完善及民间借贷的强大需求条件下兴...