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的测试点其实都可以通过用例设计的方法设计出来。