公共自行车租赁系统站点控制软件设计与实现第5章上.docx
《公共自行车租赁系统站点控制软件设计与实现第5章上.docx》由会员分享,可在线阅读,更多相关《公共自行车租赁系统站点控制软件设计与实现第5章上.docx(11页珍藏版)》请在冰豆网上搜索。
公共自行车租赁系统站点控制软件设计与实现第5章上
站点控制软件测试与验证
前面几个章节介绍了站点控制软件的需求分析、技术选型、软件总体设计以及软件详细设计与实现。
为了进一步验证设计方案的可行性,必须进行系统的软件测试,并对得到的测试结果进行分析。
由于本课题来源于校企合作项目“山西省某市公共自行车租赁系统开发项目”。
因此,本文测试内容来源于实验室的相关内测以及施工现场的外测。
5.1站点控制软件测试方法选择
软件测试的目的是通过技术手段发现软件中的错误,避免开发风险,保证软件的稳定可靠地运行。
在具体的项目开发中,需要根据具体软件的需求差异,选择合适的测试方法。
软件测试通常分为两个阶段,一个阶段是在开发过程中,测试与代码编写同步进行,另一各阶段是在软件开发工作全部完成后进行的整体测试。
下面对软件测试中常用的测试方法进行分析,并根据项目需要选择合适的测试方法[46]。
5.1.1白盒测试
白盒测试又称为结构测试或透明盒测试,顾名思义,是在清楚软件设计流程的情况下进行测试的设计方法,其中盒子即被测试的软件。
通过在程序中设置检测点,检测这些点的执行状态,来确定软件实际运行过程中,运行状态是否与预期状态一致。
白盒测试的重点在于检验程序中的每条逻辑通路是否能按设计的路径正确工作,功能测试并不属于测试范围。
白盒测试方法中又可分为静态分析和动态分析两大类。
静态分析是通过执行程序进而执行测试的方法,其关键功能是检测软件的运行表现是否和预先设计的结果一致,检测是否有冲突或者歧义。
动态分析主要是模拟软件在真实或模拟环境中的运行,并进行分析。
动态分析包括程序在受控环境下使用预期结果进行运行,分析其在该状态下是否正确。
白盒测试方法主要进行如下测试:
1.保证每一个模块中的独立逻辑路径至少被运行一次。
2.对所有逻辑进行判定,“true”与“false”均需要进行测试。
3.在边界内执行所有循环。
4.对内部的数据结构进行测试,确定其有效性。
5.1.2黑盒测试
黑盒测试是在已知产品设计方案的基础上,通过测试手段来检测每个模块功能是否能够正确得到测试结果。
测试中,将测试对象看做一个不透明的黑盒,测试人员不考虑其内部的逻辑结构和具体实现,依据程序的需求说明,检测程序的功能是否符合其功能说明。
黑盒测试的测试目的主要包括以下几点:
1.软件功能是否有遗漏或者错误。
2.通过测试接口上的输入输出,检测输入信息、输出信息是否得到正确结果。
3.是否满足实际性能需求。
4.是否存在程序初始化或者终止性错误。
5.界面功能是否存在遗漏或错误。
6.数据库访问是否存在错误。
5.1.3测试目标与方案选择
在实际项目开发过程中,通常情况下软件测试和开发工作是同步进行的,其中白盒测试是在一个模块开发完成后立即进行,这样有利于及时发现代码中的书写错误与逻辑错误。
本文测试目的主要是验证各个业务处理模块设计是否达到了项目要求,并在实际场景中进行性能测试。
测试工作包括搭建测试内侧和外测平台,测试软件功能模块是否正确,系统运行是否稳定可靠,界面操作是否友好等。
通过上文中软件的详细设计与实现,软件测试的预期目标可归纳为以下几个方面[47]:
1.界面操作功能正常,界面跳转正常,正常操作与异常操作提示正确。
2.能够正常接收网络和锁桩传来的数据,对数据进行显示。
3.能够进行异常检测并进行相应的数据处理。
4.对用户租还车数据及车辆调度数据能够正常存储和上传。
5.能够通过CAN总线对锁桩进行正常通行,能够对锁桩进行功能控制。
6.CAN总线数据处理能够达到软件性能要求。
7.异常情况下能够正常存储用户数据,并在异常恢复时与后台管理系统同步。
8.异常情况数据文件存储能够达到软件性能要求。
9.系统在7*24小时下运行稳定运行。
由于项目中站点控制平台需要到现场进行施工,因此,充分考虑到这一情况,测试工作可分为实验室内测和现场外测两部分。
软件设计方案均采用白盒测试和黑盒测试两种方法相结合的方案。
前期测试,主要在实验室进行,由开发者进行测试,主要完成包括原型验证、模块功能验证、代码逻辑验证、数据准确性验证以及系统联调测试。
后期测试,主要在室外进行,在一方面针对于实际应用中出现的功能问题进行测试和修改,另一方面着重对软件的性能进行真实场景测试。
5.2站点控制软件测试平台搭建
5.2.1实验室内测平台搭建
搭建测试平台是实施测试的第一步,实验室内测平台全景如图5.1所示。
(a)室内测试全景图(b)室内测试锁桩图
图5.1实验室内测平台全景图
实验室内测环境主要由内测站点平台、读卡器、CAN总线模块组成。
根据项目需要,室内测试使用M1卡作为用户卡、调度卡,自行车卡使用IC钱币卡。
硬件平台使用飞凌嵌入式开发板,使用ZM703B读卡器进行读卡测试。
实验室内测平台搭建如图5.1所示,搭建的测试平台包括4个锁桩,两台站点控制平台以及一个服务器,测试服务器实物图如图5.2所示。
图5.2测试服务器实物图
站点控制平台测试环境的硬件包括,用户M1卡、自行车IC钱币卡、CAN总线和OK335xS飞凌嵌入式开发板。
站点控制平台与锁桩通过CAN总线连接,与后台管理系统通过有线方式进行通信,使用的测试站点控制平台如图5.3所示。
图5.3测试站点控制平台图
如5.3图所示,实验室测试站点使用的模块包括网口模块、键盘模块、串口模块、显示模块及CAN总线通信模块。
站点控制软件测试环境如表5.1所示。
表5.1站点控制平台测试应用环境
类别
测试环境
上位机操作系统
Ubuntu12.04
U-boot
U-boot-1.2.0
UImage
UImage-3.2.0.1
Rootfs
Rootfs-v1.20.2.3
Database
SQLite3
调试工具
QtCreator、gdb
5.2.2施工现场外测平台搭建
站点控制平台室内测试主要完成站点控制软件模块测试、功能测试以及系统初步联调。
对于性能测试,需要进行大规模的场外测试,具体包括仓库测试和室外测试两部分。
仓库测试全景图如图5.4所示。
如图5.4所示,场外测试主要在仓库进行,主要测试在实际使用中的系统性能。
仓库测试的具体硬件环境如下:
1.普通自行车70辆,电动自行车30辆。
2.锁桩100个。
3.站点控制平台4个。
4.服务器1台。
(a)仓库测试图
(b)仓库测试全景图
图5.4仓库测试全景图
室外测试部分测试环境如图5.5所示,室外测试部分依照实际站点搭建而成,主要测试在实际使用中功能的正确性和系统的稳定性,对于在使用过程中发现的功能需求进行及时修改。
图5.5室外测试环境图
5.3测试内容及结果分析
通过对软件功能需求分析以及性能分析,将具体测试内容分为以下几部分:
功能测试、通信测试、数据存储测试、异常情况测试以及性能测试。
对测试结果汇总并进行分析解决。
1.测试平台设置
在正式测试之前,需要进行一些设置,具体设置如下:
(1)修改开机程序
修改配置文件:
vi/etc/init.d/rcS
添加开机启动:
cd/yongjiu_test/
./yongjiu_test–qws&
使配置生效:
source/etc/init.d/rcS
(2)修改初始化IP
修改配置文件:
vi/etc/init.d/rc
添加启动IP:
ifconfigeth0172.24.54.140netmask255.255.255.0
(3)修改时区
修改配置文件:
vi/etc/profile
2.测试工具选择
(1)CAN盒抓包工具
图5.6CAN抓包工具界面
CANalyst工具用于在CAN通信线路上抓取CAN包。
CAN盒的一端与PC机以串相连,一端以CAN线接入CAN通信线路,从而获取CAN数据。
CAN抓包工具如图5.6所示。
(2)终端仿真程序SecureCRT
SecuerCRT设置连接串口号界面如图5.7所示。
图5.7SecureCRT工具界面图
该工具用于对嵌入式linux系统进行调试,也负责打印程序内部输出,通过该工具可以查询程序的具体打印输出,
(3)网口数据抓包工具WireShark
WireShark是一个网络封包分析软件。
网络封包分析软件的功能是抓取通信中的网络封包,并将数据封包的信息完整地显示出来。
WireShark通过调用WinPCAP接口,直接从网卡获取数据报文。
(4)串口调试工具
该工具用于接收和发送串口数据,根据需要设置波特率以及接收数据的格式。
串口调试工具如图5.8所示
在本项目中,站点控制平台的串口通信速率根据硬件要求设为115200波特。
由于使用16进制格式传输,因此,串口接收数据时也将接收数据格式设为16进制。
图5.8串口调试助手界面图
5.3.1功能测试及结果分析
功能测试部分,主要测试界面的基本功能是否正常,正常操作时是否能正常完成功能,接收到异常数据时,是否能做出正确判断和处理。
具体功能测试项如表5.2所示。
表5.2功能测试项目表
序号
测试项目
测试方法
1
系统登录
1.插入正常卡测试
2.插入错误卡测试
3.网络故障测试
2
查询卡信息
1.网络正常下查询测试
2.网络故障下卡查询测试
3.卡信息完整性测试
4.合法卡查询测试
3
查询充值信息
1.不插卡进行查询
2.使用非本系统卡进行查询
3.网络故障情况下查询测试
4.合法卡查询测试
4
查询租用信息
1.不插卡进行查询
2.使用非本系统卡进行查询
3.网络故障情况下查询测试
4.合法卡查询测试
表5.2功能测试项目表(续)
序号
测试项目
测试方法
5
用户升级
1.不插卡升级测试
2.插入非法卡片测试
3.网络故障下升级测试
4.合法卡升级测试
5.数据合法性测试
6
异常卡处理
1.不插卡升级测试
2.插入非法卡片测试
3.网络故障下升级测试
4.合法卡升级测试
5.数据合法性测试
功能测试结果如图5.9、图5.10、图5.11、图5.12所示。
(a)用户登录测试图(b)用户主界面图
图5.9用户登录测试图
用户登录测试分别进行登录成功测试、插入错误卡测试、网络故障测。
如图5.9(a)所示,图中显示出卡号及卡片信息,登录验证通过。
根据之前所制定的通信协议文档,当放入卡片后,能够正确识别卡片的合法性,当认证通过后,显示卡号,类型,并显示提示信息,自动跳转到主界面,用户主界面如图5.9(b)所示。
登录失败时,提示错误信息。
卡信息查询测试如图5.10(a)所示,图中显示了卡号、用户名、卡余额、状态等信息。
该测试分别进行网络正常下查询测试、网络故障下卡查询测试、卡信息完整性测试。
根据之前所制定的通信协议文档,在网络正常情况下,能够正确显示卡片信息,且提示网络正常。
在异常情况下,无法显示卡片信息,并提示网络错误,说明测试结果正确。
充值信息测试如图5.10(b)所示,图中显示出了卡号,卡余额,充值前和充值后的金额以及充值时间。
该测试分别进行不插入卡查询、网络故障下卡查询测试、卡信息完整性测试。
根据之前所制定的通信协议文档,在网络正常情况下,能够以表格形式正确显示充值信息,且提示网络正常。
在异常情况下,无法显示卡片信息,并提示网络错误,测试结果正确。
(a)用户卡信息查询测试图(b)充值记录查询测试图
图5.10卡信息及充值信息查询测试图
(a)租用信息查询测试图(b)卡升级测试图