APP下载

基于兵棋的测试系统以及观察规则测试实现

2016-04-08胡小龙李德华

计算机与数字工程 2016年1期
关键词:测试

胡小龙 李德华

(华中科技大学自动化学院 武汉 430070)



基于兵棋的测试系统以及观察规则测试实现

胡小龙李德华

(华中科技大学自动化学院武汉430070)

摘要测试越来越多地成为一个完整项目的核心部分,没有合理的测试是无法保障研究项目的实用性,好比一个好的想法,但是实施起来不好。而在大多数的企业中也将测试单独的作为一个部分,可见测试的重要作用。论文以测试为核心,提出了基于兵棋的测试系统,完全以温和兵棋开发做出测试理论框架的搭建,并且就兵棋中观察规则做了详细测试,以及测试分析,到最后修改实例,并成功应用。验证了测试系统的有效性,以及实用性。

关键词兵棋推演; 测试; 观察规则

System Based on War Game and Observe Rules Test

HU XiaolongLI Dehua

(School of Automation, Huazhong University of Science & Technology, Wuhan430070)

AbstractThe test is becoming more and more of the core part of a complete project, there is no reasonable test is unable to safeguard thepractical research project, it’s just like that there is a good idea, but the implementation is not good. Most enterprises will treat test as part of a separate, the importance of test is obvious. In this paper, in order to test the proposed test system as the core, based on moderatewargame wargame development, complete test framework is made, and the rules of war in a detailed test are observed, and the analysis is tested to the end of case modification and the successful application. The validity are practicability of the test system are verified.

Key Wordswargame, rules, test

Class NumberTP391

1引言

如今看似平静的世界,军事格局却暗潮涌动[1]。各国都在积极加强自身军事实力[2]。虽然没有爆发大战的可能性,但小规模战争和武装冲突时有发生[3]。

在当今历史的条件下,模拟作战就具有了很高的价值,而兵棋推演是模拟作战一种常用的表达方式,研究和开发一款可信度高、具有实战价值的兵棋推演系统对我国的作战模拟系统的发展具有十分重要的意义[4]。

兵棋并没有一个统一的定义[5]。它通过总结以往战争的经验,尝试来推演和估计当前战争的过程和结果[6]。

兵棋的开发系统还不够成熟,目前针对兵棋的测试系统并没有完全成为体系。软件测试的技术与过程、持续的软件测试、软件测试的充分性准则都没有很好地表现出来[7]。尤其是软件测试框架的搭建十分重要[8~9]。在搭建兵棋的测试系统,需要从兵棋的角度与测试的角度相结合。提出了自己的一套理论,并且以实际的观察规则为例印证[10]。

2基于兵棋测试系统的必要性

兵棋的开发工作是比较完善,但是测试系统并没有形成体系,所以测试是非常必要的,但不仅仅如此,测试的必要性如下:

· 测试重视性提升:很多公司都形成专门的测试部分,而且在研发一套系统时,需求设计,研发,测试已经形成了非常明确的三大块,足以说明测试的重要作用。

· 测试不同于调试:对整个系统进行简单的测试,通常是指调试,能够解决一部分的问题,但是有着很大的局限性,没有将能够分析的问题分析清楚,而在后期形成产品时出现了很多bug,再来调试就不容易了,效率很低下。

· 测试具有广泛性:测试理论的指出,只要提供了一种测试的方式,而不局限于个人,可以说不是谁研发谁来测试,而是任何一个人都可以去测试你的代码,不用局限到个人。

· 兵棋测试暂无人系统的指出:目前国内的兵棋开发还不成熟,所以在测试兵棋的想法上更不成熟,可以说几乎没有人会重视这个环节,而往往是丢给研发作者去调试,也没有系统的,科学的方式去管理。

· 不需要专业的测试框架:基于兵棋的测试是仅仅针对兵棋中的各个要素来进行测试,首先是分析了电子兵棋的表现方式,以及兵棋中可能出现的各个环节,针对性测试,而不需要完备的测试框架。

3构建测试框架

抛开了传统测试方法,这里不做详细介绍,主要抓住的是兵棋开发中可能出现的问题,针对性地做测试。兵棋中可能出现的问题就集中在电子兵棋的要素上,从算子、地图、武器、裁决表、想定上,那么主要可以分为三块部分的测试。

1) 数据输入测试:编辑器输入的数据集中在算子属性,一般的算子属性平均在30~60个左右,地图输入这些数据的偏差可能会导致一次推演的失误,所以在保证数据输入上需要测试。

2) 针对推演规则测试:在每一块实现的电子版本上都需要重新返回原需求去测试,满足原需求是非常必要的。在规则测试上,主要采用的方法是推理与规划。

3) 针对裁决连续随机数的测试:在裁决中可能会出现多个连续的随机数产生,而不确定是哪个随机数出现了问题,而随机数是兵棋裁决中非常重要的一个点,测试其准确性具有很高的价值[11]。

4观察规则测试方案分析与制定

4.1测试分析

分析因素,设计初步的黑盒测试方案,制作测试用例,回归代码修改,根据代码修改,查漏补缺进一步做详细白盒测试。经过分析可以得出三大因素,分别是高程、地形、运动状态(目标单位处于机动或者射击状态统称运动状态)。根据规则,我们可以得出需要测试的初步方案:

1) 测试通视的相互性:通视是相互的,在一个单位对另外一个单位通视时必然会有对方也对自己通视。

2) 测试观察规则中影响因子:运动状态、地形、高程。其中高程分为同高程、邻高程、多高程三种情况;运动状态分为机动,非机动两种情况;地形分为半遮蔽区,全遮蔽区边缘两种情况,其中半遮蔽区边缘分为有遮挡与无遮挡的差别。对于三大因子的组合或者单元测试需要详细设计。

3) 测试非影响因子的单元测试:运动状态中射击的测试;在设计时为了简化统一使用人作为测试单位,所以需要单独对车辆进行一次,简单的观察能力测试。以及在遮蔽区内部邻格同格,间格的测试。

4.2测试用例设计

非三大因子的单元测试:遮蔽区与发烟对高程的影响;运动状态中射击的影响;人与车辆被观察的距离差别。

三大因子的单元测试:源单位在平原开阔地

1) 目标单位有高程,在观察能力内:

(1)两方在同一高程:有遮蔽物、没有遮蔽物。

(2)两方在邻高程:变化点靠近高高程、变化点靠近低高程、多个变化点。

(3)两方在多高程:根据观察测量表显示通视、根据观察测量表显示不通视。

2) 目标方有地形因素:

(1)遮蔽区内部:没法通视。

(2)遮蔽区边缘:距离减少。

(3)半遮蔽地形:在有遮蔽的方向上,距离减少;非遮蔽方向,无影响。

3) 目标方有运动:距离增加。

三大因素,因素与因素组合测试:

1) 双方都在遮蔽区内部:邻格、同格、非邻格。

2) 目标单位在遮蔽区边缘,且是邻高程状态,以人为单位:

(1)在一半最大观察距离内:变化点靠近低高程;变化点靠近高高程。

(2)在一半最大观察距离外:变化点靠近低高程;变化点靠近高高程。

3) 目标方在机动,且是邻高程状态,以人为单位:

(1)在两倍最大观察距离外:变化点靠近低高程;变化点靠近高高程。

(2)在两倍最大观察距离内:变化点靠近低高程;变化点靠近高高程。

4) 目标方在机动,且一直在遮蔽区边缘运动,以人为单位:

(1)在一倍最大观察距离内。

(2)在一倍最大观察距离外。

5) 双方在邻高程,且目标单位在运动,且一直在遮蔽区边缘运动,以人为单位:

(1)在一倍最大观察距离内:变化点靠近低高程;变化点靠近高高程。

(2)在一倍最大观察距离外:变化点靠近低高程;变化点靠近高高程。

在以上详细方案制定后,就可以设计测试用例了,为了简化表达。如图1所示。

图1 想定用例设计图

5观察规则测试结果与修正

进行完全部的第一轮测试后,根据测试用例显示的结果分析出这次黑盒测试的结论:

1) 多高程并没有依据观察测量表实现,违背规则。

2) 目标单位一旦处于全遮蔽地形则不通视,与处于边缘距离减半违背。

3) 半遮蔽地形,在遮蔽方向上,没有距离减半,违背规则。

5.1有关高程的错误的修改

邻高程与多高程判断均出现了问题。由于代码结构上,两者用了比较类似的逻辑实现,这里就多高程来说明,修改前的流程图。

图2 修改前后修成对比图

通过上述的流程图,首先它采用的是相似三角形的原理,仔细分析可以发现误差与错误的原因是因为在计算高程变化点的时候,是以六角格中心点作为计算点而在原需求中,变化点是在六角格的边上,并且以中心点作为计算标准时,套用相似三角形有一定的误差,所以需要将其计算的方式回归到边上。在前面的电子兵棋的表现形式中大致介绍了六角格类SHexagon的成员的组成,那么有没有可能实现到边上呢,是肯定的。首先介绍接口获取源与目标单位中心点连线所经过的所有六角格hexagonsByLine(),在SHexagon中可以得出每个六角格所在的行列号,根据源与目标所在的行列号求出一个类矩形的范围圈,那么它们的连线经过的六角格必然在这个类矩形圈中,再获取源与目标单位的中心点,计算两点直线,在二维平面中,可以轻松地判断一个点是否在直线上,还是在直线下,如果一个六角格六个顶点都在此直线的上或下,则可以发现此六角格不在连线上。反之,则找到了连线所经过的六角格。为了实现在边上计算增加了一个接口edgesByLine(),找出中心点连线所结果的所有边,在hexagonsByLine()的基础上,每一个六角格若有一边与此连线有交点,则可以找出这条边。并计算此边相邻两个六角格的高度。还需要注意的是排除特殊情况,前面在同高层的判定中指出,源与目标所在六角格的高度是只计算地形,所以需要考虑边中有源与目标的边的高度计算。由于SHexagon提供了顶点坐标,所以直线的交点计算是可行的,通过上述修正完成了对多高程的修正,使之完全符合观测测量表。

5.2有关遮蔽的错误的修改

图3 可视判断流程图

在整个观测规则将通视与可视分开,可视即考虑的是运动状态与遮蔽的情况,在原来的遮蔽接口中,只要源与目标单位在遮蔽区中就直接判断不通视,这是不对,这一块接口错误非常大,制定后重写了可视函数,同时在接口中判断运动状态对观察能力的影响,是考虑按格算,而没有按距离上,这样的判断误差比较大,例如A在0m的地方,B在400m高度上,AB相距300m即六格,实际上AB的观察距离应该是:500m。那么误差达到了(500-300)/300=66%,相当大的误差,所以需要更改。可视是在通视已经通过的情况下,在通视中已经将地物换算成了高度,所以可以将通过了通视后,若在可视判断中算子处于遮蔽区中都可以视为处在边缘。由于在获取顶层地物类型时,接口里面没有获取半遮蔽类型的,主要因为对地物的获取是基于在做图时是中心点绘制地图信息,例如居民地,丛林区等全遮蔽地形,半遮蔽地形是在六角格边上绘制,底层是支持获取边上地物信息,所以首先在获取顶层地物信息接口中加入获取边上地物信息。可视接口的流程图如3所示。

对可视的接口完成后,整个观察的规则就完成了,通过测试,分析,修改后能够正确地施行其功能。

6结语

本文对兵棋测试系统做了全面的分析,提出了切合兵棋系统的测试系统模型,通过针对性测试,简化了常规测试的复杂方式,找到一条适合兵棋的方式,并以此理论套用到实际的测试方案中,对兵棋规则中的观察规则的实施做了应证,找出了测试后的问题,并通过分析修改使之完善,能够实现原需求功能。

参 考 文 献

[1] 吴兴佐,齐琳.当前世界军事安全形势特点[J].现代国际关系,2007.

WU Xingzuo, LIN Chai. At present the world military security situation characteristics[J]. Journal of Contemporary International Relations,2007.

[2] 宋玉华,姚建农.论新兴大国的崛起与现有大国的战略[J].国际问题研究,2004.

SONG Yuhua, YAO Jiannong. Theory of the rise of emerging powers and existing superpower strategy[J]. Journal of International Studies,2004.

[3] 邢爱芬.冷战结束十年来国际冲突回顾[J].世界经济与政治,1999,(5).

XING Aifen. Ten years to the end of the cold war international conflict review[J]. Journal of World Economics and Politics,1999,(5).

[4] 何建平,詹雷雷.研究战争的利器:兵棋[J].硅谷,2009.

HE Jianping, ZHAN Leilei. Study the weapon of war: war game[J]. Journal of Silicon Valley,2009.

[5] 杨鲁.集成创新的新版《中国人民解放军军语》[J].中国科技术语.

YANG Lu. Integrated innovation of the new "the language of the Chinese people’s liberation army"[J]. Science and Technology of China.

[6] Tzu S. The Art of War[J]. Art of War,2014.

[7] 单锦辉,姜瑛,孙萍.软件测试研究进展[J].北京大学学报:自然科学版,2005.

CHAN Jinhui, JIANG Ying, SUN Ping. Software testing research progress[J]. Journal of Beijing University: Natural Science Edition,2005.

[8] 朱菊,王志坚,杨雪.基于数据驱动的软件自动化测试框架[J].计算机技术与发展,2006.

ZHU Ju, WANG Zhijian, YANG Xue. Based on the data driven software automation test framework[J]. Computer Technology and Development,2006.

[9] 崔丽.软件测试自动化框架[J].电子与电脑,2006.

CUI Li. Software testing automation framework[J]. Journal of Electronics and Computers,2006.

[10] 朱刘兴,龙建国,陈春.兵棋实体数据规则建模[J].兵工自动化,2011.

ZHU Liuxing, LONG Jianguo, CHEN Chun. War game rules of the entity data model[J]. Automation of These,2011.

[11] 韩志军,柳少军,唐宇波,等.计算机兵棋推演系统研究[J].计算机仿真,2011.

HAN Zhijun, LIU Shaojun, TANG Yubo, et al. A computer war game exercise system research[J]. Computer Simulation,2011.

中图分类号TP391

DOI:10.3969/j.issn.1672-9722.2016.01.039

作者简介:胡小龙,男,硕士研究生,研究方向:人工智能。李德华,男,教授,博士生导师,研究方向:人工智能、思维科学与方法等。

收稿日期:2015年7月5日,修回日期:2015年8月21日

猜你喜欢

测试
幽默大测试
幽默大测试
幽默大测试
体能测试
“摄问”测试
“摄问”测试
一年级上册期末小测试
“摄问”测试
机敏测试
测试