一、简单用户界面登录过程
1.功能测试
(1)输入正确的用户名和密码,点击提交按钮,验证是否正确登录;
(2)输入错误的用户名或者密码,验证登录会失败,并且提示相应的错误信息;
(3)登录成功后能否跳转到正确的页面;
(4)用户名和密码,如果太短或者太长,应该怎么处理;
(5)用户名和密码,中有特殊字符(比如空格),和其他非英文的情况;
(6)记住用户名的功能;
(7)登录失败后,不能记录密码的功能;
(8)用户名和密码前后有空格的处理;
(9)密码是否非明文显示,使用星号圆点等符号代替;
(10)牵扯到验证码的,还要考虑文字是否扭曲过度导致辩认度大,考虑颜色(色盲使用者),刷新或换一个按钮是否好用;
(11)登录页面中的注册、忘记密码,退出用另一账号登录等连接是否正确;
(12)输入密码的时候,大写键盘开启的时候要有提示信息;
(13)什么都不输入,点击提交按钮,检查提示信息。
2.界面测试
(1)布局是否合理,testbox和按钮是否整齐;
(2)testbox和按钮的长度,高度是否符合要求;
(3)界面的设计风格是否与UI的设计风格统一;
(4)界面中的文字简洁易懂,没有错别字。
3.性能测试
(1)打开登录页面,需要的时间是否在需求的时间内;
(2)输入正确的用户名和密码后,检查登录成功跳转到新页面的时间是否在需求的时间内;
(3)模拟大量用户同时登录,检查一定压力下能否正常登录跳转。
4.安全性测试
(1)登录成功后生成的cookie,是否是httponly(否则容易被脚本盗取);
(2)用户名和密码是否通过加密的方式,发送给web服务器;
(3)用户名和密码的验证,应该是服务器端验证,而不能单单是在客户端用javascript验证;
(4)用户名和密码的输入框,应该屏蔽SQL注入攻击;
(5)用户名和密码的输入框,应该禁止输入脚本(防止XSS攻击);
(6)防止暴力破解,检测是否有错误登录的次数限制;
(7)是否支持多用户在同一机器上登录;
(8)同一用户能否在多台机器上登录。
5.可用性测试
(1)是否可以全用键盘操作,是否有快捷键;
(2)输入用户名,密码后按回车,是否可以登录;
(3)输入框能否以Tab键切换。
6.兼容性测试
(1)不同浏览器下能否显示正常且功能正常(IE 6,7,8,9、Firefox、Chrome、Safari等);
(2)同种浏览器不同版本下能否显示正常且功能正常;
(3)不同的平台是否能正常工作,比如Windows、Mac;
(4)移动设备上是否正常工作,比如Iphone、Andriod;
(5)不同的分辨率下显示是否正常。
7.本地化测试
(1)不同语言环境下,页面的显示是否正确。
二、一个系统,多个摄像头,抓拍车牌,识别车牌,上传网上,网上展示,对该系统进行测试
1.功能:
(1)每个摄像头都能抓拍车牌;
(2)每个摄像头抓拍到的车牌能正常交给系统处理;
(3)系统能够正确识别车牌;
(4)系统能够将识别出的车牌上传;
(5)上传至网络的车牌能够正常展示出来。
2.功能测试:
(1)使用正常的车牌,保持车牌静止,检查每个摄像头是否能抓拍车牌;
(2)使用类似非车牌的写有字的纸板,检查每个摄像头是否抓拍;
(3)使用正常的车牌,保持车牌较高速移动,检查每个摄像头是否能正常抓拍车牌;
(4)在多种情况下检查每个摄像头抓拍到的车牌能否正常交给系统处理,如临时断电、断网后能否将数据交给系统;
(5)使用抓拍到的正常车牌,交由系统处理,检查系统能否识别车牌;
(6)使用非车牌的其他图片,交由系统处理,检查系统能否识别;
(7)在多种情况下检查系统能否将正常识别出的车牌进行上传,如临时断电、断网后未上传数据是否能继续上传;
(8)构造非车牌的其他内容数据,检查系统能否将异常内容进行上传;
(9)检查上传至网络的车牌能否正常展示出来;
(10)上传非车牌的其他内容的数据,检查能否正常显示出来。
3.性能测试
(1)同时向一个摄像头展示多个静止的车牌,检查摄像头能否抓拍到多个车牌;
(2)同时向一个摄像头展示多个极高速运动的车牌,检查摄像头能否抓拍到多个车牌;
(3)抓拍后,检查系统识别车牌的时间是否在需求要求的时间内;
(4)模拟大量抓拍照片同时交由系统处理,检查一定压力下系统能否正常识别车牌;
(5)模拟大量车牌同时上传,检查一定压力下能否上传成功。
4.安全性测试
(1)检查是否能够通过给车牌加装饰等方法,使摄像头无法抓拍或抓拍后系统无法正常识别车牌。
三、对吃鸡游戏进行压力测试
1.首先明确需要测试压力的内容:
1.1游戏服务器硬件
(1)硬盘I/O;
(2)内存;
(3)CPU;
1.2网络压力
(1)长连接:
①最大连接数;
②流量(内网、外网、进、出)。
(2)长连接短周期(类似Http的TCP应用,这个比较特殊的一个需求,专门针对LoginAgent):
①每秒建立的连接数;
②实际处理能力。
(3)数据库:
①每秒事务数;
②每秒锁等待数;
③平均延时(ms);
④CPU暂用。
(4)多线程的最优线程数:
①数据库执行的多线程;
②多连接处理。
2.Windows Server环境测试方式
2.1服务器性能监测
使用Server自带的性能监测器设置各个进程的监测参数。
2.2案例设计注意
(1)对于数据库的性能测试上,现在由于所有的游戏服务器构架在DB前面都有一个实现DB缓冲功能的进程,以减少数据库频繁的读写操作。所以其实数据库的读是一个轻量级的数量,而数据库的写操作是一个周期性能过程。案例设计一定要能够驱动这种周期性能过程。比如我们游戏的战斗,导致游戏玩家数据的改变,或驱动所有在线玩家数据的周期性存储;
(2)选择具有代表性,并且最频繁的游戏操作。用于进行最高用户在线的各种性能指标采集。如,开枪、道具拾取、道具使用、移动、聊天;
(3)聊天性能测试,广播聊天是最为考验游戏信息发送能力的功能,通过进行全局广播的压力测试,我们可以获取服务器进程发送信息到客户端的最高承载量,进而可以对我们的各种广播功能进行一个预估和频率限制;
(4)同屏玩家的移动测试,移动+广播,这两种信息,基本是网络游戏流量的70-80%左右。同屏玩家数量,将会增加各种数据的广播需求,非常影响游戏性能。所以同屏的移动测试也是广播测试的一个必要环节,需要根据实际结果进行适当的优化。
(5)大量玩家同时登录测试,玩家登录时,有大量的信息需要进行分配和初始化,同时也有大量的数据需要下传客户端。服务器需要进行大量的TCP连接建立。所以是一个比较关键的过程,这个测试案例是一个比较特殊,但是运营是肯定会碰到的案例。
(6)由于线程池处理事务,随着事务的时耗,存在一个最优线程数的问题,过多的线程反而会降低服务器效率。
2.3细节问题
(1)进行测试需要仔细思考客户端性能影响服务器最后表现的可能性,比如:
①模拟客户端的性能无法有效处理服务器返回信息,可能就导致服务器发送的信息缓存在服务器系统缓存,从而表现出服务器内存不断增加。表现为服务器发送能力不足,其实可能根本就是客户端性能的问题;
②客户端性能问题,导致发起的请求数量过少,从而导致单位时间内服务器处理的请求过少,表现为服务器性能不足,其实根本就是客户端的请求能力不足;
(2)网络带宽导致最后表现不足
①确认服务器的各个网卡,以及相互的带宽。不然可能因为相互带宽,导致服务器对于客户端请求的处理延时,表现为服务器卡机;
②客户端模拟多个玩家,比如1000个玩家,而客户端的网卡或者客户端与服务器之间的中转服务器带宽过小,导致服务器数据发送不出,内存不断增加,表现为服务器发送能力不足,其实就是中间带宽问题。
(3)debug I/O导致服务器性能下降
①进行性能测试,一定要取消debug用的同步的I/O,比如我们服务器的debugintermaiLog,同步I/O是非常影响性能的,特别是在压力测试下可能导致每秒上千上万甚至几十万次的执行。一处的文件写入操作就可以导致几十万次的处理能力变成几千次的处理能力;
②客户端避免进行阻塞操作导致模拟多用户性能下降,导致服务器表现性能下降。
(4)流量需要区分内外网
内、外网流量在游戏正式运行时是完全分开的,价格也是完全不同的。一个千兆的外网是一个无法想象的运营成本,而kmbps/s现在已经是一个可以接受的代价。游戏进程需要进行不同网卡的配置和绑定,确定内外网流量。
四、根据微信登录界面设计测试用例
1.功能测试
①输入正确的用户名和密码,点击提交按钮,验证是否能正确登录;
②输入错误的用户名或者密码,验证登录会失败,并且提示相应的错误信息;
③登录成功后,能否跳转到正确的页面;
④检查能否选择不同的登录方式进行登录,如使用手机号登录、使用微信号进行登录或扫码登录;
⑤记住用户名的功能;
⑥登录失败后,不能记录密码的功能;
⑦密码是否非明文显示,使用星号圆点等符号代替;
⑧有验证码时,还要考虑文字是否扭曲过度导致辨认难度大,考虑颜色、刷新或换一个按钮是否好用;
⑨登录页面中的注册、忘记密码,退出用另一个账号登录连接是否正确;
⑩输入密码的时候,大写键盘开启的时候要有提示信息。
2.界面测试
①布局是否合理,testbox和按钮是否整齐;
②testbox和按钮的长度、高度是否符合要求;
③界面的设计风格是否与UI的设计风格统一;
④界面中的文字简洁易懂,没有错别字。
3.性能测试
①打开登录页面,需要的时间是否在需求要求时间内;
②输入正确的用户名和密码后,检查登录成功跳转到新页面的时间是否在需求要求的时间内;
③模拟大量用户同时登录,检查一定压力下能否正常登录跳转。
4.安全性测试
①登录成功后生成的cookie,是否是Httponly(否则容易被脚本盗取);
②用户名和密码是否是通过加密的方式,发送给Web服务器;
③用户名和密码的验证,应该是用服务器端验证,而不能单单是在客户端用Javascript验证;
④用户名和密码的输入框,应该屏蔽SQL注入攻击;
⑤用户名和密码的输入框,应该禁止输入脚本(防止XSS攻击);
⑥防止暴力破解,检测是否有错误登录的次数限制;
⑦是否支持多用户在同一机器上登录;
⑧同一用户是否在多台机器上登录。
5.兼容性测试
①不同移动平台或PC环境下能否显示正常且功能正常;
②同种平台下不同微信版本能否显示正常且功能正常;
③不同的分辨率下显示是否正常。
6.本地化测试
①不同语言环境下,页面的显示是否正确。
五、对朋友圈点赞功能进行测试
①是否可以正常点赞和取消;
②点赞的人是否在可见分组里;
③点赞状态是否能即时更新显示;
④点赞状态共同好友是否可见;
⑤性能监测,网速快慢对其影响;
⑥点赞显示的是否正确,一行几个;
⑦点赞是否按时间顺序排序,头像对应的是否正确;
⑧是否能在消息列表中显示点赞人的昵称;
⑨不同手机,系统显示界面如何;
⑩可扩展性测试,点赞后是否能发表评论;
⑪是否在未登录时可查看被点赞的信息。
六、对一个杯子的测试
1.功能:
①水倒水杯容量的一半;
②水倒规定的安全线;
③水杯容量刻度与其他水杯一致;
④盖子拧紧水倒不出来;
⑤烫手验证。
2.性能:
①使用最大次数或时间;
②掉地上不易损坏;
③盖子拧到什么程度水倒不出来;
④保温时间长;
⑤杯子的耐热性;
⑥杯子的耐寒性;
⑦长时间放置水不会漏;
⑧杯子上放置重物达到什么程度杯子会被破坏。
3.界面:
①外观完整、美观;
②大小与设计一样(高、宽、容量、直径);
③拿着舒服;
④材质与设计一样;
⑤杯子上的图案掉落;
⑥图案遇水溶解。
4.安全:
①杯子使用的材质毒或细菌的验证;
②高温材质释放毒性;
③低温材质释放毒性。
5.易用性:
①倒水方便;
②喝水方便;
③携带方便;
④使用简单、容易操作;
⑤防滑措施。
6.兼容性:
①杯子能够容纳果汁、白水、酒精、汽油等。
7.震动测试:
①杯子加包装(有填充物),六面震动,检查产品是否能应对铁路/公路/航空运输。
8.可移植性:
①杯子在不同地方、温度环境下都可以正常使用。
七、对一个页面进行测试
1.UI测试:页面布局、页面样式检查、控件长度是否够长;显示时,是否会被截断;支持的快捷键,Tab键切换焦点顺序正确性等;
2.功能测试:页面上各类控件的测试范围,测试点。结合控件的实际作用来补充检查点,比如:密码框是否*显示,输入是否做trim处理等;
3.安全测试:输入特殊字符,sql注入,脚本注入测试。后台验证测试,对于较重要的表单,绕过js检验后台是否验证;数据传输是否加密处理,比如:直接请求转发,地址栏直接显示发送字符串;
4.兼容性测试;
5.性能测试。
八、对淘宝搜索框进行测试
1.功能测试:
1.1输入关键字,查看:返回结果是否准确,返回的文本长度需限制;
①输入可查到结果的正常关键字、词、语句,检索到的内容、链接正确性;
②输入不可查到结果的关键字、词、语句;
③输入一些特殊的内容,如空、特殊字符、标点符号、极限值等,可能引入等价类划分的方法等;
1.2结果显示:标题、卖家、销售量、单行/多行、是否有图片
1.3结果排序:价格、销量、评价、综合
1.4返回结果庞大时,限制第一页的显示量,需支持翻页;
1.5多选项搜索:关键字、品牌、产地、价格区间、是否天猫、是否全国购;
1.6是否支持模糊搜索,支持通配符的查询;
1.7网速慢的情况下的搜索;
1.8搜索结果为空的情况;
1.9未登陆的情况和登录的情况下的搜索(登录情况下存储用户搜索的关键字/搜索习惯)。
2.性能测试
2.1压力测试:在不同发用户数压力下的表现(评价指标如响应时间等);
2.2负载测试:看极限能承载多大的用户量同时正常使用;
2.3稳定性测试:常规压力下能保持多久持续性运行;
2.4内存测试:有无内存泄露现象;
2.5大数据量测试:如果模拟从庞大的海量数据中搜索结果、或搜索出海量结果后列出来,看表现如何等。
3.易用性:交互界面的设计十分便于、易于使用
3.1依据不同的查询结果会有相关人性化提示,查不到时友好提示,查到时统计条数并告知,有疑似输入条件错误时提示可能正确的输入项等等处理;
3.2查询出结果罗列有序,如按点击率或其他排序规则,确保每次查询出的结果位置按规则列示方便定位,显示字体、字号、色彩便于识别等等;
3.3标题查询、全文搜索、模糊查询、多关键字组织查询(空格间隔开)等实用的检索方式是否正常;
3.4输入搜索条件的控件风格设计、位置摆放是否醒目便于使用者注意到,有否快照的等快捷查看方式等人性化设计。
4.兼容性
4.1Windowns/Linux/Unix等各类操作系统下及各版本条件下的应用;
4.2IE/Firefox/Google/360/QQ等各类浏览器下及各版本条件下、各种显示分辨率条件下的应用;
4.3SQL/Oracle/DB2/Mysql等各类数据库存储情况下的兼容性测试;
4.4简体中文、繁体中文、英文等各类语种软件平台下的兼容性测试;
4.5Iphone/Ipad、安卓等各类移动应用平台下的兼容性测试;
4.6与各相关的监控程序的兼容性测试,如输入法、杀毒、监控、防火墙等工具同时使用。
5.安全性
5.1被删除、加密、授权的数据,不允许被SQL注入等攻击方式查出来的是否有安全控制设计;
5.2录入一些数据库查询的保留字符,如单引号、%等等,造成查询SQL拼接出的语句产生漏洞,如可以查出所有的数据等等,这方面要有一些黑客攻击的思想并引入一些工具和技术,如爬虫等;
5.3通过白盒测试技术,检查一下在程序设计上是否存在安全方面的隐患;
5.4对涉及国家安全、法律禁止的内容是否进行了相关的过滤和控制。
九、对一瓶矿泉水进行测试
①界面测试:查看外观是否美观;
②功能性:查看水瓶漏不漏,瓶中水能不能被喝到;
③安全性:瓶子的材质有没有毒或细菌;
④可靠性:从不同的高度落下的损坏程度;
⑤可移植性:在不同的地方、温度等环境下是否都可以正常使用;
⑥兼容性:能够容纳果汁、白水、酒精、汽油等;
⑦易用性:是否烫手、是否有防滑措施、是否方便饮用;
⑧用户文档:使用手册是否对的用法、限制、使用条件等有详细描述;
⑨疲劳测试:将盛上水(案例一)放24小时检查泄露时间和情况;盛上汽油(案例二)放24小时检查泄露时间和情况等;
⑩压力测试:用根针并在针上不断加重量,看压强多大时会穿透;
⑪跌落测试:测试在何种高度跌落会破坏水瓶。
十、测试登录界面
1.功能测试
①输入正确的用户名和密码,点击提交按钮,验证是否能正确登录;
②输入错误的用户名或密码,验证登录会失败,并且提示相应的错误信息;
③登录成功后能否跳转到正确的页面;
④用户名和密码,如果太短或太长,应该怎么处理;
⑤用户名和密码,中有特殊字符(比如空格),和其他非英文的情况;
⑥记住用户名的功能;
⑦登录失败后,不能记录密码的功能;
⑧用户名和密码前后有空格的处理;
⑨密码是否非明文显示,使用星号圆点等符号代替;
⑩牵扯到验证码的,还要考虑文字是否扭曲过度导致辨认难度大,考虑颜色(色盲使用者),刷新或者换一个按钮是否好用;
⑪登录页面中的注册、忘记密码,退出用另一个账号登录等连接是否正确;
⑫输入密码的时候,大写键盘开启的时候要有提示信息;
⑬什么都不输入,点击提交按钮,检查提示信息。
2.界面测试
①布局是否合理,testbox和按钮是否整齐;
②testbox和按钮的长度、高度是否符合要求;
③界面的设计风格是否与UI的设计风格统一;
④界面中的文字简洁易懂,没有错别字。
3.性能测试
①打开登录页面,需要的时间是否在要求的时间内;
②输入正确的用户名和密码后,检查登录成功跳转到新页面的时间是否在要求的时间内;
③模拟大量用户同时登录,检查一定压力下能否正常登录跳转。
4.安全性测试
①登录成功后生成的Cookie,是否是Httponly(否则容易被脚本盗取);
②用户名和密码是否是通过加密的方式,发送给Web服务器;
③用户名和密码的验证,应该是用服务器端验证,而不能单单是在客户端用javascript验证;
④用户名和密码的输入框,应该屏蔽SQL注入攻击;
⑤用户名和密码的输入框,应该禁止输入脚本(防止XSS攻击);
⑥防止暴力破解,检测是否有错误登录的次数限制;
⑦是否支持多用户在同一机器上登录;
⑧同一用户能否在多台机器上登录。
5.可用性测试
①是否可以全用键盘操作,是否有快捷键;
②输入用户名,密码后按回车,是否可以登录;
③输入框能否以Tab键切换。
6.兼容性测试
①不同浏览器下能否显示正常且功能正常(IE 6,7,8,9、Firefox、Chrome、Safari等);
②同种浏览器不同版本下能否显示正常且功能正常;
③不同的平台是否能正常工作,比如Windows、Mac;
④移动设备上是否正常工作,比如Iphone、Andriod;
⑤不同的分辨率下显示是否正常。
7.本地化测试
①不同语言环境下,页面的显示是否正确。
十一、购物车的测试用例
1.界面测试
(1)界面布局、排版是否合理;文字是否显示清晰;不同卖家的商品是否区分明显。
2.功能测试
(1)未登录时
①将商品加入购物车,页面跳转到登录页面,登录成功后购物车数量增加;
②点击购物车菜单,页面跳转到登录页面。
(2)登录后
①所有链接是否跳转正确;
②商品是否可以成功加入购物车;
③购物车商品总数是否有限制;
④商品总数是否正确;
⑤全选功能是否好用;
⑥删除功能是否好用;
⑦填写委托单功能是否好用;
⑧委托单中的功能是否好用;
⑨价格总计是否正确;
⑩商品文字太长时是否显示完整;
⑪店铺名字太长时是否显示完整;
⑫创新券商品是否打标;
⑬购物车中下架商品是否有特殊标识;
⑭新加入购物车商品排序(添加购物车中存在店铺的商品和购物车中不存在店铺的商品);
⑮是否支持Tab、Enter等快捷键;
⑯商品删除后商品总数是否减少;
⑰购物车结算功能是否好用。
3.兼容性测试
不同浏览器测试。
4.易用性测试
删除功能是否有提示;是否有回到顶部的功能;商品过多时结算按钮是否可以浮动显示。
5.性能测试
压力测试;并发测试。
十二、手机开机键测试
1.功能测试
①按下开机键,屏幕是否亮起。
2.性能测试
①按下开机键,屏幕能否在规定时间内亮起。
3.压力测试
①连续多次按下开机键,观察屏幕是否能一直亮起,到多久时间失灵。
4.健壮性测试
①给定一个中了病毒的手机或者是淘汰许久的老机子,按下开机键观察屏幕能否亮起。
5.可靠性测试
①连续按下开机键有限次数,比如1万次,记录屏幕未亮起的次数。
6.可用性测试
①开机键按下费力不费力,开机键的形状设计是否贴合手指,开机键的位置设计是否方便。