赞
踩
一般玩的比较多的是手游,比如:糖果传奇、消灭星星、密室逃脱,以及前段时间比较风靡的阴阳师。
在电脑上,QQ欢乐四川麻将,以前还会玩一些经营类游戏,初高中的时候是:QQ宠物、QQ农场,大学的时候玩过模拟人生
1. 首先,最直观的感觉,精致的画风、恰到好处的背景音乐和优秀的故事情节。
对于游戏第一眼是UI界面,整体的画风、恰到好处的背景音乐,会让玩家赏心悦目,眼前一亮。
其次,一个大型的一点的游戏,相当于是一个虚拟世界,所以这个世界首先要有逻辑、故事情节不用太复杂,但是引人入胜。
2.易操作性
操作不能过于复杂和困难。
最经典的俄罗斯方块,操作只有上下左右,但是却一直延续至今
3. 竞技性,设置的关卡难但是经过努力会过,关卡过了以后有奖励机制
游戏中设置关卡是一定有难度阶梯的,随着前几关的熟悉,到后面越来越难。但是难度也不能特别不合理,不能称为一种套路
例如,之前我有玩过一个游戏,叫做小时代的换装游戏。
每一个关卡就是一个女生在打扮自己,然后评分,只有达到一定分数才能成功闯关,并且解锁更高级的衣服。
开始我玩的挺开心的,但是后面发现,每套衣服的搭配成了一种套路,不管这一关卡的主题, 只要搭配了其中几件很难得到的衣服就绝对可以有高分。同时,到了后面,关卡所必须的衣服实在太难,只能花钱购买。所以无奈之下只有弃玩。
4. 有抽奖或者连续登录、节假日奖励机制,可以让玩家保持一个新鲜度,并且刺激每天玩耍。
比如之前我玩的糖果传奇,累计登录的时间越久获得的奖励越高级,一旦终止所有奖励从头开始,于是我为了这个奖励每天都会登录,一登录就会忍不住玩耍。
其次,抽奖的东西是不确定的,存在是特别好的道具的可能,所以我每天最期待的就是抽奖。
1. UI测试:
画风、故事情节、背景音乐、文字的契合度
图片的显示、文字的排版、布局等
2. 功能测试
游戏分类很广泛,例如:射击类、经营类、竞技类等等。首先根据需求说明书,确定所测部分的具体流程、功能。
1. 我认为游戏测试最重要的是数值。
数值代表了一个角色的多种状态、行为、装备、技能、财富,一旦一个发生了变化,其他也会随之变化。同时如果一旦出错,例如我之前玩candy crush原有的金币全部消失,则会引起玩家极大的不满,或者弃玩。
所以尽可能的用边界值分析法和等价类划分法去模拟各种可能,测试角色的各种情况。
2. 活动
游戏会根据节假日、累计登录、抽奖创建各种抽奖或者奖励活动。所以我们需要确认活动的开始、终止时间,累计登录的次数、奖励是否和预期相同等
对于组队完成任务这种,更加复杂,需要将多角色融合在一起。
3. 存档。
3. 可用性测试
比如:
1. 需要重力感应的游戏,是否能够很好的识别到我们的动作。
2. 触屏的接触点灵敏
4. 性能测试
在游戏中,打开时间太长,或者游戏过程中出现卡顿都是会让玩家有厌倦感的。
1)手游:主要是客户端的性能测试
打开游戏、在游戏中响应时间、是否出现卡顿情况,内存占有、耗电量、流量等。
2)网游:服务器端的性能也十分重要
所以还需要对服务器端的CPU、内存情况进行测试
5. 安全测试
1. 用户端:用户是否需要登录/注册,如果需要注册,在注册框应该考虑:
2. 服务器端:
6. 兼容性测试
不同的浏览器、手机端、电脑系统。
7. 压力测试、强度测试
长时间多用户在线,服务器的CPU、内存情况,
1. UI界面
图像显示、文字排版是否合理规范,背景音乐是否恰当
2. 功能测试:
首先分析,俄罗斯方块主要有四个操作:左移、右移、变换方块、向下加速。
操作过程是:一个方块如果填补了一行的空缺之处,则消除对应行,否则一直累积,如果累积的高度达到了最大限制,则失败。
结合等价类划分法和边界值分析法,我们设计测试用例主要从几个方面:
3. 可用性测试;
4. 性能测试:
1. 客户端:CPU、内存、耗电情况、流量情况、游戏
5. 安全性:
1. 用户端:用户是否需要登录/注册,如果需要注册,在注册框应该考虑:
2. 服务器端:
6. 兼容性测试
不同的浏览器、手机端、电脑系统
7. 压力测试、强度测试
长时间多用户在线,服务器的CPU、内存情况,
农餐对接系统分为了两大子系统,一个是个人订餐系统,二是餐馆、个人与农产品供应商进行农产品交易系统。我主要负责组织测试人员对该系统进行测试。
第一步,分析需求规格说明书,制定测试计划。测试计划包括了5W1H,也就是Why、When、What、Who、Where、How。
首先,我们确定选用了禅道Bug管理系统,用来管理需求、测试用例和Bug。
其次,根据项目的开发时间和条件,确定使用:Jenkins持续集成工具、git版本控制工具,以及Selenium自动化测试工具、Unittest框架。
第二步,了解技术架构,设计测试方案、测试用例。
首先,因为最开始有涉及到使用Junit进行单元测试,所以对系统的架构有一定的了解,定位可能存在问题的瓶颈点。
其次,将测试用例涵盖的范围设定在7个方面:数据库测试、功能测试、性能测试、压力测试、安全性测试、兼容性测试、易用性测试。其中,设计测试用例的原则是:利用等价类划分法、边界值分析法、场景设计法等尽量多的覆盖所有的路径。——设计测试用例
第三步,进行测试。——搭建项目框架
在测试前先搭好测试框架,准备好各种测试要用到的工具,然后按照测试方案流程进行测试。
1. 使用PO设计模式
将一个页面内的操作对象(按钮框、输入框等)和操作的步骤封装在每个Page里面,以Page为单位进行管理。这样Selenium测试用例能够通过调用页面类来获取页面元素,从而巧妙的避开了当页面元素的ID等属性发生变化时,修改代码的情况。——>提高了代码的复用性、可读性及减少工作量。
2. Selenium+Unit test搭建四层框架——实现数据、脚本、业务逻辑分离(关键字驱动)
1)基础层(BasePage)
设计一个基本的Page类,所有页面皆继承该类。提供了一个页面需要实现的基本功能及公共方法。
2)业务逻辑层(Pages):
按照PO设计模式,将每个页面抽象为一个类,放在Pages包里面,每个页面继承Basepage,可调用Data层数据,内容包括:
3)数据层(Data)
该层存放相关数据,例如:用户数据和密码。在测试用例可通过调用数据层的数据来进行操作。
4)测试用例层(Testcases)
每一个测试用例testcase都对应Pages里面的一个页面,继承unnitest.TestCase类。通过调用对应页面类的方法,数据层的数据、增加断言(assert)来验证功能的正确性。
此外通过Jenkins自动执行测试、代码质量检测和部署到测试服务器、部署到生产服务器上
使用Jenkins持续集成工具来执行测试脚本和部署,主要设置了三个任务:
我们将测试分为三个阶段:
1. 开发新的需求时,创建分支devN。当在这个分支中,需求开发完成或者Bug修复,就配合测试人员利用JUNit框架进行单元测试以及功能测试。通过测试后,合并到master上。
2. 当master有变动,则触发tm_test任务,执行自动化测试脚本和代码质量检测。如果通过则自动出发tm_staging_deploy,部署到测试服务器,如果没有通过,自动化测试脚本会将Bug截图发送给测试人员。
3. 登陆生产服务器上,对网站进行功能测试。如果通过测试,则手动触发tm_deploy,部署到生产服务器。如果没有通过,在禅道管理系统上把bug指派给相应模块的开发人员。
第四步,发布
首先考虑灰度发布,先让小部分群体试用,如果有什么问题就能够及时发现、改正。
先分析这个模块的需求设计说明书,确认这个模块的界面、实现功能和步骤、其他技术设计。确定容易出错的地方。
1)这个模块界面组成部分:用户名输入框、密码输入框、登录按钮、“记住用户名”单选项、忘记密码链接、免费注册链接。
2)功能实现步骤:
输入用户名——输入密码——输入验证码——点击“登录”,则可以跳转到对应的页面(验证点:跳转页面有:欢迎xxx登录),最后退出。
3)其他设计需求:例如用户名的限制是:长度6-18位的非汉字,数字、字符、下划线的组合
其次确认测试的方案:
1. 界面测试:
2. 功能测试:
我们根据等价类划分法和边界值分析设计测试用例:
3. 性能测试:
在客户端:
在服务器端:资源利用率(CPU使用率,内存占用率),吞吐率,发布耗时,各接口平均响应时间等等
其次,我们设定预期正常并发用户量为1000,最高并发量为3000,我们使用Jmeter+BadBoy测试在这两个并发量范围内的网站响应速度和内存使用情况。
4. 安全测试
5. 可用性测试
6. 兼容性测试
不同的分辨率
首先根据需求说明书对这个功能模块进行分析,确认UI界面、实现的功能和步骤、其他技术设计。确定容易出错的地方。
1)模块的界面:首先搜索类别(食品还是餐馆)的下拉框,其次有一个输入框供输入查询的内容,在输入框右边有一个查询按钮,下边是热搜菜品。
2)模块的功能及实现步骤:
1. 直接点击:搜索框下面的热搜菜名,就可以跳转到对应菜品所在搜索页面;2. 首先选择类别:食品或者餐馆,其次在输入框中输入查询的内容,最后点击查询。
3)其他技术设计:
其次确认测试的方案:
1. 界面测试:
2. 功能测试。
按照等价类划分法和边界值法设计测试用例
3. 可用性测试:
4. 安全测试
5. 性能测试
在客户端:
在服务器端:资源利用率(CPU使用率,内存占用率),吞吐率,发布耗时,各接口平均响应时间等等
6. 兼容性测试
7. 本地测试
登录时,自动切换到响应国家的搜索页面(淘宝)
将测试阶段分为四个步骤:
一、首先根据需求说明书确认这个模块的UI界面、实现的功能和步骤、及其他技术设计架构,定位可能出错的地方。
二、其次确认测试的方案(5W1H):
三、进行测试。
在第一步中,我们已经确认了微信红包的功能及步骤:
一)作为发红包者:
1. 选择个人/群当作发红包对象
2. 进入聊天界面,点击右下角“+”——点击第二排第一个“红包”,进入“填写红包信息”页面
3. 在第一个输入框中:输入金额
4. 在第二个输入框中:输入红包祝福语如果是群发红包,还会输入红包的个数)
5. 点击“塞钱进红包”
6. 弹出支付提升框,选择“支付的方式”,点击“确认支付”,输入密码/输入指纹
7. 回到聊天界面,有一个红包显示,不会显示金额,但是会显示输入的红包祝福语
8. 如果该红包被领取了,会在聊天记录中,显示“XXX领取了你的红包”
9. 再点击红包,会显示你发的金额,及领取的人。(如果是在群发红包,会显示已领取红包的个数、金额,领取的人和对应的金额。全部红包领取完以后,会特别标记领取金额最多人为“手气最佳者”)
二)作为首红包者
1. 微信提示,收到红包(在电脑上不可显示)
2. 点击红包——点击“开”
3. 出现领取红包的信息,包括:红包祝福语、金额、“已存入红包、直接提现”——链接到“微信零钱”、“留言”、“查看我的红包记录”(如果是群发红包,还可以看到其他人领取的情况和最佳手气者)
4. 点击左上角“关闭”,聊天记录出现一条“你已领取XXX红包”
从测试的内容,我们确认测试从八个方面展开:
1. UI界面测试:包括
2. 功能测试:
首先进行链接测试:链接页面的正确
一)发红包时
二)在领取红包时
其次,根据边界值分析法和等价类划分法设计测试用例,主要测试功能:
3. 可用性测试:
4. 安全测试
5. 性能测试:
即测试在客户端,发红包、打开红包等响应时间是否符合需求设计;
在服务器端,资源利用率(CPU使用率,内存占用率),吞吐率,发布耗时,各接口平均响应时间等等
6. 负载测试
其次,通过增加并发量来测试系统性能情况。
7. 压力测试
最后,还要进行压力测试,即评估系统处于、超过预期负载时的处理能力。
还可以进行强度测试:检查程序对异常情况的抵抗能力,及在极限情况性能下降是否在允许的范围内。
疲劳强度测试:测试系统在长时间运行后的性能测试表现
8. 兼容性测试
四、最后发布
发布的时候必须要考虑灰度发布,先让小部分群体先试用,如果有什么问题能够更好更早的发现,然后进行相应的应对措施。
粲粲姐的答案:
第一步,根据需求进行分析,了解需求需要实现的是什么功能,假设我对这个需求比较了解,我还会对该需求的风险进行一个初步的判断。
第二步,我会先去大致了解微信红包的技术架构(定位可能存在问题的瓶颈点)然后根据需求拟定测试方案以及测试用例。测试方案所要考虑的内容比较多且也比较全面,主要包括:测试的范围(功能测试,性能测试,压力测试,安全测试,这些测试的测试点,测试的必要性,工具),测试目标,上线质量指标,测试策略,测试轮数,进度安排)测试方案涵盖所有测试过程,质量保障计划的提纲和方向。测试用例主要涵盖需求上的一些功能点以及异常点,边界值。
第三步,主要开始进行测试,在测试前先搭好测试框架,准备好各种测试要用到的工具,然后按照测试方案流程进行测试。对于微信红包,最基础的是要能够使得需求上的功能点都能正确实现。(这一点可以按照测试用例来进行,比如红包个数为零时,金额上限),因为考虑到微信红包的用户量大,高并发性,所以还需要考虑对各种性能的测试,比如资源利用率(CPU使用率,内存占用率),吞吐率,发布耗时,各接口平均响应时间等等,然后进行压力测试。因为使用的用户范围广,自然还要考虑到兼容性问题,是否不同的手机都能正常使用这一功能,并且还需要考虑安全测试。如果测试结束后能够达到上线指标,则可以考虑发布。
第四步,发布的时候必须要考虑灰度发布,先让小部分群体先试用,如果有什么问题能够更好更早的发现,然后进行相应的应对措施。
1)接口配置测试
由于微信公众号需要调用微信的接口,所以我们首先需要进行调用接口配置测试。查看调用接口后,基本原声功能是否正常运行。例如:自定义菜单展示和跳转、自动回复等功能
2)功能测试
其次,我们再测试自己设计的各项功能,主要从以下几个方面:
3)数据库测试
4)性能测试
首先,我们设定一个预期的正常用户访问量和最高用户访问量,然后分别在这两个数值范围内设定并发用户数目,来测试在这些情况下系统的性能,例如:页面响应时间、内存使用情况。
其次,再逐步增加并发用户量,观察在各种负载情况下系统的性能,直到达到系统的瓶颈。也就是负载测试
最后,评估系统在处于超过预期并发数(或者内存耗尽)的情况下的处理能力。也就是压力测试。
5)安全性测试
主要考虑三个方面:
1. cookie为HttpOnly,防止XSS攻击
2. 在自己HTML5页面中传输数据时,数据会加密,不会被拦截
3. 如果与用户有交互,在用户输入框中,对特殊字符有处理、不能输入脚本、SQL语句。
6)兼容性测试
首先分析杯子的设计需求说明书,确定它的界面设计、功能可和另一些制作技术(例如:材质,耐热程度等),其次从以下几个方面进行测试:
1. 界面测试
2. 功能测试
根据杯子的用途、规格、承受的冷热程度等(假设杯子的规格为:100ml,杯子承受的最高温度:100度),依据边界值分析法和等价类划分法,确认测试用例如下:
3. 安全性测试
4. 可用性测试
例子:有一个app,输入三角形的三条边长,判断是否能构成一个三角形(不考虑退化三角形,即面积为零的三角形),是什么样的三角形(直角、锐角、钝角、等边、等腰)。——考虑app兼容性!!
函数声明为:byte GetTriangleType(int ,int, int)。
(1) 如何用一个byte来表示各种输出情况?
(2) 如果你是一名测试工程师,应该如何写测试用例来完成功能测试呢?
答:
步骤一:分析这个函数的功能。
首先这个函数需要根据输入的a、b、c
其次,用一个byte表示所有的输出情况。
步骤二:
首先根据等价化分类划分输入的等价类,用边界法来补充。
其次用一个byte表示所有的情况,1个byte有8位,考虑用0、1标志位编码表示输出的情况。例如:byte从右到左,第0位表示等腰三角形、第1位是等边三角形。。。第七位是三角形标志,剩余的第6位和第5位可以留作错误编码,比如用于表示两边之和小于第三边等。
分析条件有:
1. 是否是三角形:
(1) a>0
(2) b>0
(3) c>0
(4) a+b>c
(5) a+c>b
(6) b+c>a
(7)a<=0
(8)b<=0
(9)c<=0
(10)a+b<=c
(11)b+c<=a
(12)c+a<=b
2. 是否是等腰三角形
(13) a=b
(14) b=c
(15) a=c
(16) a^2 + b^2 >c^2
(17) b^2 + c^2 >a^2
(18) a^2 + c^2 >b^2
(19) (a!=b)and(a!c)and(b!c)
3.是否是等腰直角三角形
(20) (A=B)and(A^2+B^2=C^2)
(21) (B=C)and(B^2+C^2=A^2)
(22) (C=A)and(C^2+A^2=B^2)
4. 是否是等边三角形
(23) (A=B)and(B=C)and(C=A)
(24) (A!=B) (21)
(25) (B!=C) (22)
(26) (C!=A) (23)
再根据边界值法补充测试用例:
(27) 三个零
(28) 有特殊字符
(29) 超过边界值
测试用例id | 条件 | 输入 | 预期输出 | 描述 |
1 | (1)-(6) | (3, 4, 5) | 10001000 | 锐角三角形 |
2 | (7) | (1, 1, 3) | 00000000 | 非三角形 |
3 | (8) | (0, 2, 3) | 00000000 | 非三角形 |
4 | (9) | (1,0,2) | 00000000 | 非三角形 |
5 | (10) | (1, 2, 3) | 00000000 | 非三角形 |
6 | (11) | (1, 3, 2) | 00000000 | 非三角形 |
7 | (12) | (3, 1, 2) | 00000000 | 非三角形 |
8 | (1)-(6)、(13)(16) | (3, 3, 4) | 1 | 等腰三角形 |
9 | (1)-(6)、(14)(17) | (3, 4, 4) | 等腰三角形 | |
10 | (1)-(6)、(15)(18) | (3 ,4, 3) | 等腰三角形 | |
11 | (1)-(6)、(20) | (2, 2, ^2) | ||
12 | (1) | |||
13 | ||||
14 | ||||
15 | ||||
16 | ||||
17 | (a, 1, 2) | |||
18 | (@, 2, 3) | |||
19 |
1. 对函数str()的测试
主要考察:边界、基本情况、鲁棒性、性能及算法优化
2. 个函数实现对字符串中第三个字符的替换,设计测试用例
1. cp命令设计测试用例
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。