App测试经验分享之登录注册
要诀
另外自己总结了一些要诀,仅供参考:
1)快:快速操作,营造冲突的场景,例如加载过程中返回键交互,快速点击登录按钮,快速切换菜单项,快速多次上下拉刷新
2)变:手机横竖屏、手机切换语言、手机调整字体、手机禁止权限、手机开启飞行模式、手机网络切换、手机删除后台、手机Home键、手机power键等
3)多:多帐号登录,多手机多系统操作(兼容性),多次频繁操作,后台长时间等待,多数据操作等
4)边:空格、特殊字符、字母大小写、大量字符、什么都不输入、表情符号、null等
5)逆:逆向思维,根据结果来创建场景,业务流程中断,业务流程逆向等
上面是自己总结的一字要诀,大家看看就好。
测试用例设计方法
本人喜欢武侠,练武之高人一般都有较强的内功,而我们测试人员的内功或者武功招式是什么?我想应该就是测试用例的八大设计手段,大家也可以理解为武功招式,如果能灵活应用,想必驰骋众测圈也只是时间问题。
好了,废话不多说了,让我们简单先回顾下测试用例的设计方法:
1) 等价类划分:把程序所有可能的输入域划分成若干部分,然后从中选取少数具有代表性的数据作为测试用例
2) 边界值分析:对输入或输出的边界值进行测试的一种黑盒测试方法
3) 错误推测法:基于经验和直觉推测程序中所有可能存在的各种错误
4) 因果图方法:是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况
5) 正交试验法:根据正交性从全面试验中挑选出部分具有代表性的点进行试验,这些代表性的点具备了均匀分散,齐整可比的特点
6) 判定表驱动:若功能说明中存在输入条件的组合情况,则结合因果图法,采用判定表驱动方法来设计测试用例
7) 场景设计法:同一事件的不同触发顺序和处理结果形成了事件流,根据不同的事件流来设计用例
8) 功能图方法:使用功能图形象地表示程序的功能说明,并机械地生成功能图的测试用例
综上所述,前面3种方法应该是平常测试运用最多的用例设计方法,下面主要采用错误推测法来展示“登录注册”模块常见的问题点。
登录注册易崩溃测试点
大家都知道移动端大部分App都会有登录注册功能,这个模块的测试工作也显得格外重要,自己总结了一些容易发现闪退和崩溃问题的测试点,具体如下:
1、页面基本元素的操作,验证是否可以正常操作,常见的问题比如“登录页面元素点击后无法正常响应(协议、按钮)和手机按键(返回键等),页面元素点击后响应不正常”
2、特殊字符的校验,验证系统是否会出现异常,具体特殊字符比如“空格,中英文,表情符号,特殊字符,null等特殊字符串等”,常见的问题比如“输入框输入特殊字符系统闪退或提示系统错误”,“输入框输入表情符号解析成问号”等
3、大量字符的测试应用,常见的问题比如“输入框输入大量字符闪退”,“大量字符导致的遮挡”,“大量字符处理过程中切换前后台闪退”等
4、边界值校验,主要体现在“输入框长度的校验”,“验证码获取次数上限”,“验证码过期的时效性”,“邮件中激活的时效性”等
5、页面跳转验证,包括App左上角返回键,手机系统返回键跳转以及各页面的交互跳转
6、密码的大小写是否敏感验证,注册账号大小写敏感验证
7、登录注册过程中跟系统按键的交互,主要包括返回键交互,Home键交互,Power键交互,飞行模式按键交互,网络开关切换交互等
8、信息不完整时的操作,例如“填写不完整信息登录注册”,“不输入任何内容登录注册”,“必填项不完整登录注册”等
9、常见的逆向思维,例如“已注册账号注册”,“未注册账号忘记密码”,“未注册账号登录”,“注册过程中返回后继续注册”等
10、验证码的验证,“必填性校验”,“错误验证码”,“过期验证码”,“无网络获取验证码”,“输入正确的验证码后修改手机号注册”,“重新获取验证码,获取验证码按钮多次点击”等
11、模块间数据统一性验证,登录注册和忘记密码界面各输入框的格式规范统一等
12、网络交互,常见的操作“输入完整内容断网登录或注册”,“登录注册加载过程中断网”,“连接无外网WiFi的操作”,“断网恢复网络后的操作”,“3G/4G等数据流量下的操作”,“弱网环境下的系统表现”,“网络设置代理服务器后的操作”等
13、手机号的特殊性验证,除了常见的手机号,还有一些虚拟的手机号验证,比如170号段,147号段等,另外还有携号转网的手机号是否可以正常注册等
14、输入法的交互,输入框输入内容调出键盘时,“快速切换键盘上的按键容易出现闪退”, “切换到手写输入法输入内容闪退”,“调出键盘后点击返回键键盘未隐藏”,“频繁调出键盘隐藏键盘,闪现其他界面”,“注册时输入正确的邮箱点击键盘上的完成无法进行注册”等
15、快速操作后出现的问题,比如“登录界面快速点击登录按钮多次闪退”,“注册成功自动登录后快速修改个人资料保存闪退”,“多次点击获取验证码按钮闪退”等
16、App跟手机系统设置之间的交互,比如“修改字体后登录注册”,“修改手机语言后登录注册”,“登录注册界面切换横竖屏操作”等
17、密码的安全性验证,常见易错点“密码明文显示”,“密码缺少明暗文切换按钮”,“通过抓包工具截取接口日志可以看到密码等敏感信息”,“获取验证码后可以通过抓包截获验证码”,“登录过程中抓包可以看到数据库表名和SQL语句”,“服务器主机ip和端口未通过nginx映射,用户能获取真实ip”,“客户端请求服务端,没有传递的安全令牌token,容易被恶意攻击”等
18、登录注册模块,容易出现的错别字,比如“登录界面输入错误的账号密码登录提示信息含有错别字(账号/帐号,登录/登陆,记录/纪录)”
19、输入框隐藏的操作,比如“长按输入框内容”,“删除输入框内容”,部分人可能容易忽略长按这种操作,只熟悉点击操作,常见问题“长按输入框内容弹出框未本地化”,“长按输入框内容弹出菜单项不可点击”等
20、杀掉App进程重新登录,常见问题如下“杀掉App进程后重新进入App相关数据消失”等
21、登录账号的多样性,比如“新版本旧账号的注册问题”,“首次注册账号登录后数据的情况”,“多个账号退出登录轮流切换数据处理情况”,“同一个账号存在多个角色登录的情况”等
22、第三方登录的验证,主要关注“第三方账号授权时的信息正确性”,“未安装第三方App登录时的系统反应”等
23、手机兼容性验证,一般App向下兼容的最低版本问题比较多,使用低版本手机测试容易发现一些兼容性闪退问题
24、注册账号邮件格式的验证,“邮件中含有特殊字符的正确邮箱无法注册”,“邮箱的大写敏感问题”,“已注册的邮箱再次注册”,“邮箱的长度格式验证”等
以上测试点是平时在众测中测试时出现问题且概率比较大的点,大家可以针对性的进行测试,而没有必要死搬测试用例的场景来测试,这样省时且效率高,大家再回顾下我们设计用例的方法,会发现平常容易出现Bug的测试点其实都可以通过用例设计的方法设计出来。
App测试经验分享之登录注册的更多相关文章
- 手机APP功能测试经验分享2016.06.06
1.登录时,Android和IOS同样的操作,提示信息不一致: 2.注册等页面切换成横屏容易不兼容.把内存卡去掉,再发送图片.音频.视频容易出错. 3.Android和IOS同样的功能,同样的原型图, ...
- APP测试经验总结
app测试哪几项: 每一款APP上线之前都需要经过严格的测试,测试周期可按项目开发周期来确定测试时间,一般测试时间为两三周(15个工作日),不过这个根据项目实际情况,可能推迟或提前的. ...
- 我在Xcode 6上Swift框架的测试经验分享
我耗费了两个多月时间来琢磨Swift作为一门函数是编程语言都能做些什么,而今已经转移 到使用Swift来开发库文件了. 我花了一天的时间,最后发觉之前做的Swift特性探究是相当愉快的经历,我发现仍旧 ...
- 使用Webpack+Gulp开发运行于Dcloud平台HTML5+引擎的混合APP项目经验分享
什么是5+Runtime? 首先简单介绍一下5+Runtime: HTML5 Plus Runtime(5+Rumtime)是由Dcloud开发的一套"增强版的手机浏览器引擎",与 ...
- camera主观测试经验分享.ppt33页
http://max.book118.com/html/2016/0802/50061502.shtm http://www.docin.com/p-1408441708.html
- 包建强的培训课程(4):App测试深入学习和研究
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
- 用vue开发一个app(4,一个久等了的文章)H5直播平台登录注册(1)
我上一篇关于vue的文章和这一篇时间隔了有点久了.最近终于写完了. 因为我一直想写个有点实绩的东西,而不是随便写一个教程一样东西.结合最近在项目中学到的经验和我的一点创意. 首先介绍下这是个什么! H ...
- 一次压力测试Loadrunner经验分享
一次压力测试Loadrunner经验分享 http://blog.csdn.net/lxlmj/article/category/553431 loadrunner测试socketstcpserver ...
- 【招聘App】—— React/Nodejs/MongoDB全栈项目:登录注册
前言:最近在学习Redux+react+Router+Nodejs全栈开发高级课程,这里对实践过程作个记录,方便自己和大家翻阅.最终成果github地址:https://github.com/66We ...
随机推荐
- Bootstrap Paginator分页插件+ajax
Bootstrap Paginator分页插件下载地址: DownloadVisit Project in GitHub Bootstrap分页插件属性介绍: http://www.cnblogs. ...
- 常用的JS代码块收集
/**数组去重一*/ (function (arr) { arr = arr.sort(); for (var i = 0; arr[i]; i++) { if (arr[i] === arr[i + ...
- servlet 3.0 的新特性之三对异步处理的支持
一.异步处理 1. 什么是异步处理 原来,在服务器没有结束响应之前,浏览器是看不到响应内容的!只有响应结束时,浏览器才能显示结果! 现在异步处理的作用:在服务器开始响应后,浏览器就可以看到响应内容,不 ...
- mysql执行计划图
- LeetCode-11-7
1.Reverse String Write a function that takes a string as input and returns the string reversed. Exam ...
- 字节流和字符流 in Java
@0: 深入理解Java中的流(Stream) @1:字节流:java.io.InputStream:public abstract class InputStreamThis abstract cl ...
- python中的关键字global和nonlocal
知识点: global将一个变量变为全局变量 nonlocal改变最近的变量,又不是全局作用. 1.global 在python中,当引用一个变量的时候,对这个变量的搜索按找本地作用域(Local). ...
- admin 模块功能
class CustomModelAdmin(admin.ModelAdmin): def has_module_permission(self, request): 是否会显示model def h ...
- mssql 中文乱码 字库集 问题解决方法
The database could not be exclusively locked to perform the operation(SQL Server 5030错误解决办法) SQL S ...
- LeetCode:旋转链表【61】
LeetCode:旋转链表[61] 题目描述 给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数. 示例 1: 输入: 1->2->3->4->5- ...