.
B B C C C C C D D D D D E E E E E Goto D Goto E Goto A Goto B Goto C Goto D Goto E Goto A Goto B Goto C Goto D Goto E Goto A Goto B Goto C Goto D Goto E 3, 针对扩展需求1和2,测试背包功能,描述你的测试思路和法。
一道AS3面试题的解答
题目:
对一批编号为1-100全部开关朝上(开)的灯进行以下操作:
开关编号凡是1的倍数反向拨一次开关;若该编号也是2的倍数反向又拨一次开关;若该编号又是3的倍数反向又拨一次开关……以此类推一直计算到100为止。 目的:请trace出经过反复开关操作后所有关闭的灯的开关编号。
这是我写给大家看的易懂版本:
var n:int, m:int; var range:int = 100;
for(var i:int = 1; i <= range; i ++){ n = 1; while(true){ if(n > i / n){ break; }
专业资料
.
if(i % n == 0){ if(i / n == n){ trace(\结果\ break; } } n ++; } }
下面是写着玩的缩写版本,不过正常写项目代码,我不会这样干的,在这儿只是娱乐一下而已。下面这段代码想玩就看看,不想玩的看上面就行了,判断原理是一样,没区别! var n:int = 1, range:int = 1000;
for(var i:int = 1; i <= range; i += n = 1){
while(n > 0) n = n > i / n ? 0 : !(i % n) ? i / n == n ? -1 : n + 1 : n + 1; if(n == -1) trace(\结果\ }
我将range都改成100000后,第一种法耗时7233毫秒,第二种缩减的写法耗时1840毫秒。对于易读易懂,你会选择那种法呢?
对于暗泪同学的回复,下面增加一点容:
其实上面写的是正常算法,如果2亿次,通过分析题目,可以得出只要该数能被开平时,就是关闭状态,因此这道题目如果是写在项目里面,可以这样写: var range:int = 1000000000; var num:int = Math.pow(range,0.5); for(var i:int = 1; i <= num; i ++){ trace(\结果\ }
我测试过10亿次的效率,仅需要6毫秒~其快啊! 游戏软件功能测试——测试用例的编写法浅谈
一、 游戏软件与通用软件的区别
专业资料
.
a) 通用软件的需求明确,游戏软件需求理想化
i. 通用软件中用户每步操作的预期结果都是明确且有规可参考的,而网游中并不是所有的需求都有一个明确的预期结果,拿技能平衡性来说,我们所谓的平衡也只是相对的平衡,而非绝对的平衡。没有什么明确的参考参数。只能根据以往游戏的经验获得一个感知的结果。
ii. 网络游戏中的某些功能是有预期结果可参考的。例如组队、交易,而另外一些带有策划创意的功能,却是根据策划个人的理解,来确定其预期结果的。人的思考力都是有限的,所以不能保证在他的创意中会考虑到各种各样复杂的细节。也不能够保证这个创意就可以完全被用户所接受。
当你作为游戏测试人员时,很多时候你需要做的不仅仅是验证功能。也需要帮助开发者和用户找到一个互相容忍的平衡点。游戏软件的测试员带有对策划需求的怀疑,力求通过自己的努力在玩家和开发者之间将可能产生的矛盾减小。
b) 通用软件开发过程中需求变更少,游戏软件开发过程中需求便更快
i. 通用软件的使用人群和软件的功能针对性,决定软件从开始制作就很少再有新的需求变更。而游戏软件,为了满足玩家对游戏的认可度,策划需要不断的揣摩玩家的喜好,进行游戏功能的改进。加之网游制作本身就是一个庞大复杂的工程,开发者不可能做到在开发的前期,就对游戏架构及扩展性做出最好的评估。所以导致为了满足用户的需求而不断的进行一些基础架构的修改,基础架构的修改必然导致某些功能的颠覆。所以就出现了,游戏开发过程中的一个恶性循环,当基础架构修改到满意了,玩家的需求又有了新的变化,随之而来的又要进行新的调整,再进行新的修改。最终导致了游戏软件的开发期不断加长。任一个有经验的团队,对于每一个影响基础的改动都应该做出正确的评估。 二、 网游有哪些测试容 a) 性能 i. 客户端性能 ii. 服务器端性能 1. 服务器 2. 数据库 iii. 网络 b) 功能
专业资料
相关推荐: