游戏测试的基本流程:分析测试需求-制定测试计划-设计测试用例-(可能会进行冒烟测试)-执行测试-生成测试报告
OSI七层协议:应用层-表示层-会话层-传输层-网络层-数据链路层-物理层
TCP与UDP的差别:

1、游戏测试是软件测试的一部分
游戏测试简单说就是发现游戏里的问题(BUG)并进行改进,从而提升游戏产品的质量。
游戏测试作为软件测试的一部分,它具备了软件测试所有的一切共同的特性:
①测试的目的是发现软件中存在的缺陷。
②测试都是需要测试人员按照产品行为描述来实施。产品行为描述可以是书面的规格说明书,需求文档,产品文件,或是用户手册,源代码,或是工作的可执行程序。
③每一种测试都需要产品运行于真实的或是模拟环境之下。
④每一种测试都要求以系统方法展示产品功能,以证明测试结果是否有效,以及发现其中出错的原因,从而让程序人员进行改进。
2、游戏测试体验更高
通过归纳总结,把游戏测试相对软件测试的不同归纳为以下几点:
大部分软件UI&&UE的重要性没有游戏那么高,在玩游戏的过程中,愉悦感和趣味性是至关重要的,如果缺失了这些要素,用户可能瞬间就流失了,也就意味着这款游戏失败了。
数值对游戏至关重要,无论单机还是网络游戏,玩家非常重视自己角色的数值增长。游戏功能之间的耦合度非常高,数值之间有着千丝万缕的关联,而软件功能之间的耦合度则没有这么高,很多情况下功能之间的数值是相对独立的。
游戏中,活动则是频度更高的一种玩法,测试过程中受到的关注度更高,游戏活动的测试更关注时间与资源产出,活动衔接也很重要,任何差错都可能导致更大的损失,而软件上的活动则没这么严格的概念。
游戏属娱乐,其产业链涉及很多前期的市场推广,各种广告和推广都是真金白银砸下去的,任何延期都可能导致前期的推广功亏一篑,商业信誉也会受影响。游戏测试作为产品发布前的最后一环,必须严格控制版本进度,确保能够按期交付。而软件测试,延期很普遍,没那么强的时间观念。
因为用户的数值和角色状态千差万别,为了尽量模拟用户状态,测试过程中总需要造出各色各样的测试数据,游戏测试依赖更多的测试工具。而且游戏测试还需要对测试工具本身的正确性进行测试,确保工具本身正确。这点在传统软件测试行业则是不多见的。
性能测试对游戏至关重要,无论在台式还是移动设备,卡顿会让玩家厌恶。为确保游戏流畅,客户端内存和cpu使用率在游戏测试中都要重视。而且用户的设备差异性很大,尤其是移动端。所以我们必须确保客户端的性能符合我们的预期标准。软件则没太多这方面的需求。
无论软件还是游戏,安全都无比重要。但对游戏来说,重要程度则关乎身家性命,尤其死于外挂横行。而且游戏的客户端与服务端的交互非常频繁,数据安全更加凸显。有资源产出的地方则有安全测试的地方。防刷防外挂,是游戏测试人员始终要保持谨慎认真的对待的地方。
这个是游戏的独有特色。有时候服务器中用户很少,需要合并几组服务器为1组。在合服的过程中需要保证原有服务器和目标服务器中所有用户的数据信息不发生错乱。涉及到用户方方面面的数据信息,所以要测试人员务必认真。确保测试无误后,才能正式开始合服操作。
大多针对网游,网游中很大程度的乐趣都来源于玩家与玩家之间的交互,传统软件(忽略社交软件而言)中并不多见。玩家交互的越频繁,数据之间交互的程度越高,数据之间的复杂变换及相互影响需时刻关注。
网络对于网络游戏和软件都是必不可少的,但游戏的实时交互性比较高。所以对网络的测试要求也比较高,因为不同的网络运营商,不同地区的网络信号,甚至移动过程中不同网络的切换,这些都需认真测试,这样才能更好的提高用户体验度。
优点:
1、英雄联盟手游继承了端游的质感如战场迷雾,整体峡谷色彩偏暗,但建模的精细度高、动作衔接感觉很好,入门的门槛较高、节奏较慢 ,而王者荣耀很明显是偏向于大众化、全民化的游戏,门槛低整体上手难度偏小,色彩艳丽,节奏快、技能打击感强
2、与用户的UI&UE交互比较优秀,一直在根据着用户进行着优化,游戏迭代较快
3、把一些中国传统文化与美术设计的融合如推出了一些西游记系列的皮肤
缺点:
1、玩家的基数比较大导致游戏体验感参差不齐,游戏中经常有挂机与骂人的场景发生
2、举报环境
3、游戏建模
4、可玩性比较单一
正文具体为:
1、功能点
好友系统界面-(游戏好友界面选项卡、黑名单界面选项卡、师徒界面选项卡、关注/粉丝界面选项卡、找朋友选项卡、附近的人选项卡、亲密关系界面选项卡)-功能分化:
好友系统功能-系统规则-亲密度增加规则、黑名单加入规则、添加/删除好友规则、添加屏蔽玩家规则、添加玩家人数限制规则
2、用例执行结果统计
1.1战场内数值:野怪(大小龙)、小兵、建筑相关属性。包括:生命、魔法、攻击力、移动速度、提供金钱值,属性以及涉及到的相关属性的成长。 地图属性:河道距离,击杀英雄获得经济,线上资源等
1.2英雄相关数值:
<1>英雄初始属性及其不同等级下的成长属性
<2>天赋提供的属性,是一种加成(某些辅助英雄带来的数值加成)
<3>英雄技能属性,技能等级数值变化,技能开启时间
<4>外部属性:装备带来的属性、战场中获得的buff属性、皮肤属性
1.3战场外数值
<1>商业化数值:英雄/皮肤价格、购买限制、夺宝(伪随机扭蛋)、碎片兑换和消耗
<2>运营活动数值
<3>经济系统:铭文产出消耗、金币、钻石产出消耗
<4>系统数值。排位赛的ELO算分,段位计算;战队活跃度,奖励投放等
技能模板:每个技能的实现机制是不尽相同的。所有需要开发各种机制的技能作为技能模板
指示器:技能的释放往往有指示器的,指示的范围、指示的目标等
技能效果:技能释放前、释放后命中、释放后不命中的效果
技能伤害值:技能的基础伤害、技能每升一级的伤害、技能对装备的伤害加成等
技能冷却cd:初始技能冷却cd,使用后冷却cd
技能的伤害类型:单体类型、AOE类型、锁定类型、指向型、buff型、debuff型
技能施法音效:命中音效、飞行音效等,技能音效对游戏体验提升非常大,特别是moba类游戏,在没有技能音效的情况下,一些技能的打击效果下降许多,一些试探技能比如用技能探草丛等命中音效的缺失就导致无法识别出来了。这可能会是影响一局比赛的关键。
触发特效:特效挂节点、特效效果播放情况
武器依赖:某些技能的释放是否依赖与某些武器才能释放
施法动作:不同技能的施法动作是不相同的
动作挂节点:施法动作挂节点,技能命中挂节点,一些技能动作是位移,所以应该是移动的动作,一些动作是原地站着的某个动作,比如钟馗的大招动作、姜子牙的大招动作
技能作用阵容:己方、敌方、中立方,比如王者里面的野怪算是中立方。
技能作用范围:地对地、地对空、空对空、空对地等情况。这主要还包括地图阻碍墙,有些空中技能是可以越过墙的,比如王者里面的鸟人、哪吒的大、韩信的跳,闪现等。像妲己的2技能魅惑就无法对空中单位生效,比如妲己无法魅惑飞行状态的鸟人。
技能打断优先级:优先级相同的相互不可以打断、优先级高的可以打断优先级第的,比如击飞、晕眩、沉默等技能一般能打断一些持续性技能,比如王者里面赵云的大招可以击飞打断张良的控制大招等。妲己的1技能无法打断刘邦的大招等。
技能前摇阶段是否可打断:有些技能是蓄力型技能,比如王者中姜子牙的大招、花木兰的大招、凯的大招、刘邦的大、吕布的大、诸葛亮的大等
技能后摇阶段是否可打断:有些技能前摇可以打断,但是后摇不可以打断,同时,打断又分为主动打断和被动打断。比如王者里面上官婉儿的大,后摇就不可以打断,但是前摇在她还没飞起来前是可以打断的
技能释放过程是否可控:不受控制包括无法选中和实体不受控制;比如王者中李白的大是无法选中的,LOL里面的霞的大也是无法选中的。比如LOL里面的奥拉夫的大招也是不受控制的。
技能释放过程是否能释放其他技能:有些技能可以几个同时是否,但是有些技能是释放过程,无法释放其他技能的。比如李白的大招过程,无法再释放1、2技能。安其拉放大过程无法再释放其他技能
技能是否可移动施法:比如王者中妲己的大招就可以移动施法,但是钟馗、姜子牙、安其拉等的大招动作是不可以移动施法的。
被控时,技能可用情况:大部分被控制时,技能是无法使用的,但是比如净化这个技能在被控制后就可以使用
很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当
我有一个围绕一些对象的包装类,我想将这些对象用作散列中的键。包装对象和解包装对象应映射到相同的键。一个简单的例子是这样的:classAattr_reader:xdefinitialize(inner)@inner=innerenddefx;@inner.x;enddef==(other)@inner.x==other.xendenda=A.new(o)#oisjustanyobjectthatallowso.xb=A.new(o)h={a=>5}ph[a]#5ph[b]#nil,shouldbe5ph[o]#nil,shouldbe5我试过==、===、eq?并散列所有无济于事。
我有一些Ruby代码,如下所示:Something.createdo|x|x.foo=barend我想编写一个测试,它使用double代替block参数x,这样我就可以调用:x_double.should_receive(:foo).with("whatever").这可能吗? 最佳答案 specify'something'dox=doublex.should_receive(:foo=).with("whatever")Something.should_receive(:create).and_yield(x)#callthere
Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/
我遵循MichaelHartl的“RubyonRails教程:学习Web开发”,并创建了检查用户名和电子邮件长度有效性的测试(名称最多50个字符,电子邮件最多255个字符)。test/helpers/application_helper_test.rb的内容是:require'test_helper'classApplicationHelperTest在运行bundleexecraketest时,所有测试都通过了,但我看到以下消息在最后被标记为错误:ERROR["test_full_title_helper",ApplicationHelperTest,1.820016791]test
我已经构建了一些serverspec代码来在多个主机上运行一组测试。问题是当任何测试失败时,测试会在当前主机停止。即使测试失败,我也希望它继续在所有主机上运行。Rakefile:namespace:specdotask:all=>hosts.map{|h|'spec:'+h.split('.')[0]}hosts.eachdo|host|begindesc"Runserverspecto#{host}"RSpec::Core::RakeTask.new(host)do|t|ENV['TARGET_HOST']=hostt.pattern="spec/cfengine3/*_spec.r
我在app/helpers/sessions_helper.rb中有一个帮助程序文件,其中包含一个方法my_preference,它返回当前登录用户的首选项。我想在集成测试中访问该方法。例如,这样我就可以在测试中使用getuser_path(my_preference)。在其他帖子中,我读到这可以通过在测试文件中包含requiresessions_helper来实现,但我仍然收到错误NameError:undefinedlocalvariableormethod'my_preference'.我做错了什么?require'test_helper'require'sessions_hel
只是想确保我理解了事情。据我目前收集到的信息,Cucumber只是一个“包装器”,或者是一种通过将事物分类为功能和步骤来组织测试的好方法,其中实际的单元测试处于步骤阶段。它允许您根据事物的工作方式组织您的测试。对吗? 最佳答案 有点。它是一种组织测试的方式,但不仅如此。它的行为就像最初的Rails集成测试一样,但更易于使用。这里最大的好处是您的session在整个Scenario中保持透明。关于Cucumber的另一件事是您(应该)从使用您的代码的浏览器或客户端的角度进行测试。如果您愿意,您可以使用步骤来构建对象和设置状态,但通常您
我有:When/^(?:|I)follow"([^"]*)"(?:within"([^"]*)")?$/do|link,selector|with_scope(selector)doclick_link(link)endend我打电话的地方:Background:GivenIamanexistingadminuserWhenIfollow"CLIENTS"我的HTML是这样的:CLIENTS我一直收到这个错误:.F-.F--U-----U(::)failedsteps(::)nolinkwithtitle,idortext'CLIENTS'found(Capybara::Element