如何做好GPS平台软硬件集成测试
集成测试是为了构建一个更大的系统或平台,这个系统的几个部分通常是由不同的团队或甚至不同的公司开发的,以前在做信息化的软件开发时,面临的集成测试通常是不同软件子系统之间的集成测试,往往被这一阶段的测试搞得人仰马翻的,在从事了四年的视频监控和GPS软件开发之后,才知道,软硬件系统之间的集成测试更加折磨人的脆弱的神经。虽然两者本质上都是一样,软硬件系统集成实际上是嵌入式软件系统和常规的PC软件系统直接的集成。集成测试常常成为压垮复杂项目的最后一根稻草。主要存在的问题如下:
1.嵌入式软件开发团队和常规的软件开发团队,风格差别很大,从开发语言和技术,到思考处理问题的方式都有很大区别。从一开始,如何保证两个团队之间的充分沟通并相互信任是个问题,团队之间互相推诿,不担当的情况常常发生;
2.系统集成必然基于同一个约定,如软件接口,通信协议或规约,如果是第一次的合作开发,那么如何制定并保证接口和通信规约的稳定性,这个其实很难除非是我们都遵循成熟的国家标准或通用行业标准,如GPS通信协议JT/T808标准,否则研发初始自制的API和协议都是简单甚至是弱智的,随着软件开发的深入,对于功能和需求理解的越来越透彻,接口和协议不断的膨胀和变化,这种变化是那个团队发起的,如何和另一个团队进行协商,对于另外一个团队是否可行,在嵌入式系统上增加一个功能和在后端平台上增加一个功能所面临的的难度是一个天上一个地下,如何及时的固化到文档中去,如何制定一个合理有效的协商机制,都是在项目初始要确定下来的。
3.两个团队往往是并行开发,因为同属于一个大系统,所以有一个共同的项目计划和进度,大家在竭力完成自己的任务的时候,往往顾不得那边的情况,在节点汇合的时候,大家都声称自己完成了计划上的任务,开始测试了,实际情况是大家根本没有准备好,各自的单元测试和功能测试,进行的非常不充分,而留给双方共同的集成测试时间又非常的乐观。没有充分测试过的子系统在进行集成测试的时候,必然会暴露大量的问题,虽然这显得集成测试很必要,但是这些问题暴露的有点晚了,再返工修改,Rework的工作量很大,进度更加吃紧,而且有些问题本来可以避免掉,无须拿到成本昂贵的集成测试上进行。
4.集成测试并不意味着测试更充分或者覆盖面加大,我们拿到一个硬件系统,并不能像软件一样可以随心所欲的制造出一个有效用例来并且进行大量重复使用,例如要测试一个GPS软件的超速报警的功能,那测试用例设计时,必须要创造出一个车辆超速的动作环境,并触发终端报警上传到软件平台,这样一个用例还需要能够供测试人员反复调用。其他还有很多复杂的测试,如视频监控功能等测试。
5.压力不够。由于测试环境的搭建,都是基本单一的软硬件对测,再加上硬件测试环境搭建的成本和复杂性,难以模拟出真实大规模业务并发的环境,造成压力测试不够,很多都是测试人员骗领导,走走过场,真实的问题往往最后在上线后,接入大规模业务时出现。
如何能够做好软硬件集成测试呢?
1.多个开发团队要选择一些逻辑清晰有担当、能沟通的人来充当联络人,这个虽然有点滑稽,但是在出问题的时候,起的作用很大,没有逻辑,不敢担当的人,总是死咬着一句话,"我这边没问题"。出了问题不可怕,为什么要推诿老是找借口呢? 耽误其他团队时间,浪费口舌。
2.及早Mock, 模拟测试可以让我们在单元测试阶段,就可以进行便利的接口调用,保证我们的测试路径和测试面的充分覆盖,只不过硬件的Mock难度比较大,有一定的开发工作量。例如在GPS软件开发的时候,我们需要开发一个完整的GPS模拟终端,模拟GPS终端的数据发送和接收各种指令并进行应答的行为。很多人不用模拟终端,是因为开发一个完整808协议的模拟终端,实现录音、拍照、参数设置、媒体检索等Mock功能,没有一两个月搞不定。硬件测试的时候,也需要不断的检测自己的硬件发送的数据或指令是否正确,也需要Mock一个后端服务器来进行检验。
3.集成测试的用例设计起来,往往贯穿终端、无线网络、服务器软件、PC客户端软件,是一个复杂的流程测试,所以对于用例设计的是否充分,需要花点时间进行评审和讨论理解。这种测试用例,应当及早设计,成为照亮各个开发团队行进道路的航标。
4.充分估计测试的工作量,上面说到测试用例的设计,如果认真设计用例,这个测试的工作量其实很大。不要为了项目计划而压缩集成测试的周期。
总之,不要埋地雷,没有侥幸,问题总是会出现的,何不让它出现的早一点,代价小一点。
GPS部标监控平台的功能设计(二)-部标808模拟终端功能列表:
1.完整实现了808协议的全部命令,包括媒体检索、录音、拍照、区域设置、行车记录仪等命令;
2.日志记录,分为原始报文记录,下发命令和应答跟踪记录等详细记录;
3.应答数据入库,GPS数据入库,便于查询和跟踪。
4.转发服务,可以转发到其他平台进行跟踪;
5.在线连接监控;
6.GPS数据分析,油量、里程、停车、报警入库。
如何做好GPS平台软硬件集成测试的更多相关文章
- GPS部标平台的架构设计(三) 基于struts+spring+hibernate+ibatis+quartz+mina框架开发GPS平台
注意,此版本是2014年研发的基于Spring2.5和Struts2的版本,此版本的源码仍然销售,但已不再提供源码升级的服务,因为目前我们开发的主流新版本是2015-2016年近一年推出的基于spri ...
- Robot Framework自动化测试框架核心指南-如何做好自动化测试平台框架的设计
自动化测试如果需要能高效快速的支撑软件项目的测试,项目的快速迭代以及上线,除了以上我们介绍的需要许多的Lib来支持以及需要高效的去编写自动化测试案例外,还需要一个好的自动化测试框架平台来支撑我们的自动 ...
- 《FPGA全程进阶---实战演练》第四章之实验平台软硬件使用简介
本章主要是讲解读者在进行FPGA逻辑设计之前的准备工作,需要下载Quartus II软件和 Modelsim 软件,一个是用来进行FPGA逻辑设计,一个是用来对逻辑进行理论分析与验证. 1.1 qua ...
- GPS部标平台的架构设计(一)
设计和开发一个GPS系统似乎并不太难,很多人马上就想到了地图,放大,缩小之类的功能,最多就是在加点报表之类的东西,就成了. 这种观点造成了业界内,很多GPS系统粗制滥造,不堪大用. 事实上,设计和开发 ...
- 基于Spring4+SpringMVC4+Mybatis3+Hibernate4+Junit4框架构建高性能企业级的部标GPS监控平台
开发企业级的部标GPS监控平台,投入的开发力量很大,开发周期也很长,选择主流的开发语言以及成熟的开源技术框架来构建基础平台,是最恰当不过的事情,在设计之初就避免掉了技术选型的风险,避免以后在开发过程中 ...
- 基于C#和Asp.NET MVC开发GPS部标监控平台
基于交通部796标准开发部标监控平台,选择开发语言和技术也是团队要思考的因素,其实这由团队自己擅长的技术来决定,如果擅长C#和Asp.NET, 当然开发效率就高很多.当然了技术选型一定要选用当前主流的 ...
- GPS部标监控平台的功能设计(一)-功能列表
在2011年交通部的796标准推出后,随着各地交管部门的硬性要求,大多数的GPS监控系统或者车辆管理系统或者物流管理系统,无论是旧的,还是新开发的,都必须要以796标准为基础蓝本,首先要满足796的要 ...
- GPS部标平台的架构设计(十)-基于Asp.NET MVC构建GPS部标平台
在当前很多的GPS平台当中,有很多是基于asp.NET+siverlight开发的遗留项目,代码混乱而又难以维护,各种耦合和关联,要命的是界面也没见到比Javascript做的控件有多好看,随着需求的 ...
- GPS部标平台的架构设计(九)-GPS监控客户端设计
交通部的部标过检,所有的测试都是从客户端发起的,也是在客户端体现的,在客户端承载了部标标准所要求的所有的功能,是整个部标平台当中工作量最大的部分,也是最繁琐的部分. 客户端设计面临两个问题: 1.基于 ...
随机推荐
- python 异常
引用一段来自菜鸟教程的文章:http://www.runoob.com/python/python-exceptions.html Python 异常处理 python提供了两个非常重要的功能来处理p ...
- 【Alpha】Daily Scrum Meeting第六次
一.本次Daily Scrum Meeting主要内容 各队员的任务完成情况 接下去要做的任务有哪些方面的问题 二.项目进展 学号尾数 今日已完成任务 接下去要做 502 统一Excel表头数据的英文 ...
- HDU 1281 二分图
棋盘游戏 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- cxf webservice简单应用
Server端 server部署到一个端口号为80的tomcat中 CXFController.java package com.lwj.controller; import java.io.IOEx ...
- presto-elasticsearch connector
elasticsearch搜索功能强劲,就是查询语法复杂,presto提供了非常open的plugin机制,我改进了下原有的presto-elasticsearch connector,现发布于git ...
- MyEclipse 点击 部署 按钮 无效
找到MyEclipse的工作路径,我的是"D:\Workspace",到这个目录中去"\.metadata\.plugins\org.eclipse.core.runti ...
- LWL-Hitokoto API(一言-纯净API)
著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:liwanglin12链接:https://blog.lwl12.com/read/hitokoto-api.html来源:L ...
- [lua大坑]一个莫名其妙的lua执行时崩溃引出的堆栈大小问题
这是一个坑,天坑!如果不是我随手删除了一个本地变量,这个问题直到现在我应该也没有头绪. 首先,写了一个新的lua脚本,载入,执行.在执行的时候,出了这么一个莫名其妙的问题: EXC_BAD_ACCES ...
- hibernate学习(9)——日志,一对一,二级缓存
1.Hibernate中的日志 1 slf4j 核心jar : slf4j-api-1.6.1.jar .slf4j是日志框架,将其他优秀的日志第三方进行整合. 整合导入jar包 log4j 核心 ...
- Git和Github简单教程(转)
这篇文章只挑一部分命令来讲,差不多够用就行的程度.如果需要其他命令,到时候再去其他地方了解就行了先在Github上写好再搬过来的:本文Github链接 目录: 零.Git是什么 一.Git的主要功能: ...