目录

安全风险分析

客户端面临的主要风险

app的安全主要从:①客户端安全②通信安全③服务端的安全

测试开展---反编译

一、图片资源获取

二、XML资源获取

三、代码资源获取

dex2jar用法:

测试开展--二次打包

测试开展--数据安全

密码存储原理:

检测方法

Logcat日志

测试开展--键盘安全风险

键盘劫持测试

测试开展---账号登录/会话超时

账号登录

密码是否密文显示

会话超时监控

测试开展---其他

安全退出

密码修改

手势密码

密码锁定策略

短信验证码

业务逻辑

服务端方面漏洞

H5测试介绍

优势:

劣势:

H5功能验证

返回逻辑:

H5适配相关

小程序测试技术

什么是小程序

小程序的特点

小程序的入口

小程序的架构

小程序的测试点

1.功能测试

2.界面测试

3.兼容性测试

4.与微信功能的交互测试

5.性能测试

6.安全性测试

易用性测试

8.其他注意事项

小程序测试方法

adb logcat


内容是本人学习笔记整理-7-2019/04/19 20:00-22:00


定位:初级测试人员1-2年,功能测试(黑盒测试)


安全风险分析

木马       病毒 篡改 破解 钓鱼
二次打包    账号窃取 资源篡改 广告植入 信息劫持

客户端面临的主要风险

           客户端         数据传输          服务端
  • 反编译
  • 防二次打包
  • Webview漏洞
  • 键盘安全
  • 屏幕截屏风险
  • 数据安全
  • 界面劫持
  • 本地拒绝服务
  • 数据备份风险
  • Degbug调试风险
  • 数据窃听
  • 中间人攻击
  • 信息泄露
  • 业务逻辑漏洞
  • SQL注入
  • XSS
  • 上传漏洞
  • 暴力破解
  • 安全策略

app的安全主要从:①客户端安全②通信安全③服务端的安全

测试开展---反编译

  • 我们一般想要反编译一个apk,无非就是想获得三样东西:图片资源、XML资源、代码资源。

一、图片资源获取

  • apk->把后缀名改成zip->在res目录->获取到我们需要的图片

二、XML资源获取

  1. 打开的zip文件->.xml的文件->尝试打开->乱码或者是空白
  2. 借助一个jar包 axmlprinter2.jar,(Baidu)xml放在同级目录下
  3. 进入CMD->找到这个目录,如:java  -jar AXMLPrinter2.jar  xxxxx.xml>xxxxx.txt

三、代码资源获取

  • 一般情况下能正确反编译出来的只有未加密或者没有混淆的代码
  • 解决:dex2jar.rar和jd-gui.zip这两个工具。
  • dex2jar主要是用来把之前zip解压出来的classes.dex转成jar包的
  • jd-gui主要是用来打开Jar包的

dex2jar用法:

  1. 把dex2jar解压后,然后将之前zip的classes.dex放到dex2jar目录下,
  2. 注意,必须要跟dex2jar.bat是同级目录。
  3. 然后又要用到cmd,cd到dex2jar目录下,打命令行dex2jar.bat  classes.dex
  4. 然后你的目录里会多一个jar包,classes-dex2jar.jar的文件
  5. 然后在用jd-gui把jar打开,最终apk的代码就这样被剥离出来了。

开发:采用加密和混淆技术达到反编译保护。

测试开展--二次打包

  • “Android APP二次打包”则是盗版正规Android APP,破解后植入恶意代码重新打包。不管从性能、用户体验、外观它都很正规APP一模一样但是背后它确悄悄运行着可怕的程序,它会在不知不觉中浪费手机电量、流量,恶意扣费、偷窥隐私等等行为。
  • 利用二次打包工具对APP进行二次打包,看APP能否成功打包运行,如果重新打包后无法运行程序说明有防二次打包安全措施。

开发:采用签名的方法进行保护:获取二次打包后APK的签名与正确的APK签名做对比,判断APK程序是否进行过二次打包。

测试开展--数据安全

密码存储原理:

  • WebView默认开启密码保存功能:mWebView.setSavePassword(true),开启后,在用户输入密码是,会弹出提示框:询问用户是否保存密码;如果选择“是”,密码会被明文保存到/data/date/com.package.name/databases/webview.db中,这样就有被盗取密码的危险。

检测方法

  1. 方法1、用户输入密码时看是否有弹出提示框,询问用户是否保存密码,如果有询问则表示存在漏洞,否则不存在。
  2. 方法2、检查代码中setSavePassword的值是否为false。

开发:WebView.setSavePassword(false)

Logcat日志

  • 通过usb连接手机,然后使用adb logcat -v time >d:\xx 的方式获取logcat信息。
  • 不要把账号密码等敏感信息保存在本地明文存储,如果一定要存储敏感信息务必进行加密存储重要信息。
  • 敏感数据明文存储于Sdcard。
  • 非系统级的app只允许在Android/data/<package-name>/目录下操作。因此,每个app的文件读写权限被独立开来,不能互相访问。

测试开展--键盘安全风险

键盘劫持测试

  • 用眼观察每次弹出来的自定义的软键盘是否随机变化布局;
  • 通过观察app在输入密码的地方是否会弹出自定义的软键盘。

测试开展---账号登录/会话超时

经典用例:(一个字符一个字符匹配)

账号:如密码为1234 用例:12345  或1234 5

1->*: 1到*这个过程时间是多长?

账号登录

  1. 测试能否在两个设备上同时登录同一个登录
  2. 同一个设备是否可以重复登录

密码是否密文显示

  1. 密码是否符合规范,如数字,字母,大小写
  2. 比如登录时,密码输入错误时的提示信息。

会话超时监控

  • 客户端在一定时间内无操作(20分钟足够),是否会话超时登录。

测试开展---其他

安全退出

  • 客户端在用户退出登录时,查看session是否可用

密码修改

  1. 是否存在原密码验证
  2. 是否可以修改为原来密码

手势密码

  • 取消手势密码时是否会验证之前设置的手势密码

密码锁定策略

  1. 手势密码锁定策略
  2. 输入密码错误策略

短信验证码

  1. 是否单次有效(使用过的单次,还是发送的单次)
  2. 时间之内是否有效(5分钟内,10分钟内)

业务逻辑

  • 权限方面的测试(审批策略)(办公的ERP系统、OA系统)

服务端方面漏洞

  • SQL注入、XSS、任意文件上传漏洞等等。

H5测试介绍

优势:

  1. H5可以跨平台,开发成本相对较低;
  2. H5可随时上限就更新版本,适合快速迭代;
  3. H5可以轻量的触达用户,提供更快捷的服务;
  4. 在微信入口或者浏览器上,用户只需点开链接就可以获取我们所提供的服务。

劣势:

  1. H5->的转化强依赖于浏览器;
  2. H5目前基本无法将数据存储在本地,依赖实时性数据,网络状态不好的时候卡到哭。
  3. 性能相对较低,影响用户体验。

H5功能验证

  • 通过H5网页(非手机的返回功能)的返回功能可以返回,不会出现无法返回的情况。

返回逻辑:

  1. 对于页面中的返回,以及浏览器自带的返回的测试。页面中的返回要考虑业务逻辑,友好返回到相应层次,需要从用户角度返回的转跳逻辑,不能出现死循环。并要注意返回后是否需要刷新页面请求通过H5页面(非手机自带返回键)的返回功能键返回,可以返回到正确的页面(上一级/退出H5)点击返回与back键,回退页面是否是期望页面。
  2. 横屏竖屏相互切换,能自适应,并且布局不会乱掉;或页面只支持横或竖屏限制。
  3. 在手机上从list点击进入detail页面,要在原窗口打开,这样可以通过页头的返回按钮返回,而不需要通过手机的返回键返回,这样交互上更友好。
  4. 关注页面请求,是否会有多余的请求,或者请求后有多余的数据返回,尽量精简,否则会浪费流量。
  5. 图片适配测试,根据不同屏幕和分辨率做适配,以及适配后的清晰度,高端机取双倍尺寸的图--app兼容测试。

H5适配相关

1.H5的适配其实比客户端的相对来说,要少一些,手机品牌之间的差异不大,所以不用太多关注,最容易出现问题的是Android2.3系统,这个要特别关注下:

  • A、大屏(如720*1280,重点关注页面背景是否完全撑开页面,刷新是否有抖动)、小屏手机(如320*480,重点关注下弹框样式和文案折行)
  • B、Android2.3、Android4.X随机找一个即可。
  • C、ios5、ios6、ios7.

2.H5的页面在PC端也是能访问的,Chrome对H5支持最好,功能的测试可以在PC端Chrome下先测试,也可以在手机上直接测试,这个看个人习惯。(ie系列包括ie8,及以下都支持的不好)

3.手指滑动是否流畅,手指点击是焦点是否定位正确,不同机型会不一样。焦点点击是否灵敏。

4.对于类似公司名称、offer名称长度的问题,在手机上最好能根据屏幕大小自适应而不是截断,因为手机上是不会有tips可以看的。截断导致大屏幕下也只能显示几个字,交互不好。

5.手机测试要特别关注交互是否友好,与PC机的事件模型不一样,,可能拖动后是否会导致一些体验的问题,比如:弹出层的点击,是否会穿透,影响到弹出层下面的页面。

6.对于一些浮层做的页面,例如地图、产品分类等浮层,注意拖动后是否可以看到它下面的页面,拖动后边缘是否有留白。

7.网络切换:从WiFi切换到2G/3g网络、从2G/3g网络切换到WiFi等。

弱网络降级:处于2G/3g网络省流量模式的一些特殊处理,比如2G网络下测试,图片多时是否要懒加载等。网络状况差的场景,可以提示文案,但不能闪退。

小程序测试技术

什么是小程序

  • 小程序是一种不需要下载安装即可使用的应用;
  • “触手可及”扫一扫/搜一下即可打开;
  • “用完即走”应用将无处不在随时可用,但又无需安装卸载;
  • 开发门槛相对较低,够满足简单的基础应用,生活服务类线下商铺/非刚需低频应用的转换;
  • 实现消息通知,线下扫码,公众号关联,历史列表,联系客服,小程序切换,七大功能。其中,通过公众号关联,用户可以实现公众号与小程序之间相互跳转;
  • 小程序可以借助微信联合登录,和开发者已有的App后台的用户数据进行打通,但不会支持小程序和App直接的跳转。

小程序的特点

  1. 类似WEB.非HTML5
  2. 即用即走,随手可得
  3. 拥有离线能力
  4. 基于微信跨平台
  5. 媲美原生操作体验

小程序的入口

  1. 扫码进入小程序
  2. 搜索小程序
  3. 小程序发送到桌面(Android)
  4. 发送给朋友

小程序的架构

  • 微信小程序的框架包含两部分,View视图层、App Serive逻辑层,View视图层用力啊渲染页面结构,App Serive逻辑层用来逻辑处理、数据请求、接口调用,它们在两个线程里运行。
  • View视图层使用WebView渲染,App Serive逻辑层使用JSCore运行。
  • View视图层和App Serive逻辑层通过系统层的JSBrigdage进行通信,App Serive逻辑层把数据变化通知到WebView渲染,触发WebView渲染页面更新,WebView渲染把触发的事件通知到App Serive逻辑层进行业务处理。

  • 小程序启动时会从CDN下载小程序的完整包

小程序的测试点

1.功能测试

  1. 输入
  2. 输出
  3. 边界值
  4. 页面交互---微信小程序里面界面交互
  5. 系统问题方面测试--低电,来电话,数据线插拔,充电状态,重启等情况

2.界面测试

  1. 设计是否美观
  2. 是否符合需求说明
  3. 尺寸是否合理
  4. 对于横竖屏切换使用好不同手机分辨率和尺寸的要求是否符合

3.兼容性测试

  1. 操作系统---IOS、Android
  2. 微信版本--小程序的api(接口)库
  3. 其他微信小程序
  4. 屏幕大小和分辨率因素
  5. 不同网络状态下的测试---2G/3G/4G/WIFI

4.与微信功能的交互测试

  1. 入口--下拉框、发现模块搜索
  2. 交易--微信钱包、微信卡包
  3. 与微信其他功能的切换--抢红包、文字聊天、语音聊天、视频通话

5.性能测试

  1. 页面响应时间
  2. 资源占用
  3. 渲染时间
  4. 耗电量
  5. 白屏时间
  6. 帧率

6.安全性测试

  1. 接口测试--传递的数据的安全性
  2. 危险账号授权
  3. 与小程序的app账号关联

易用性测试

  1. 是否方便使用
  2. 提示信息是否完整
  3. 各个功能是否可用
  4. 是否方便查找
  5. 是否可以离线使用
  6. 进入小程序过程是否简单易操作

8.其他注意事项

  1. 小程序升级更新--一般为强制升级和更新
  2. 小程序目前不支持分享至朋友圈,但是可以用图片的方式分享至朋友圈
  3. 小程序的添加和删除
  4. 微信端取消授权登录

小程序测试方法

  • 功能测试----以手动功能为主
  • 对于开发来说---微信开发者工具新增小程序测试系统
  • 云测试平台--http://utest.21kunpeng.com/        --租用云真机进行
  • 测试人员---http://airtest.netease.com/    ----airtest进行自动化测试
  • Monkyrunner   ----python写的,比较老,通过获取手机的坐标

adb logcat

  1. monkey
  2. 日常工作中
  • 连接USB打开CMD->执行重定向 命令->操作手机执行用例
  • ---->遇到bug以后,停止操作,把logcat的日志和截图提交给开发
  • ---->优势:如果是偶现的bug,也可以提交日志
  • ---->没有遇到bug,可以随时把logcat命令停止,删除重定向的文件,再次执行命令,继续执行用例。
  • ---->优势:可以避免一个不够发生以后,形成的日志过大,增加开发的分析难度。
  • ②单独用手机执行用例,一旦发生问题,就立刻连接USB,执行重定向命令
  • ---->以最快的速度把日志获取。
  • 新建一个txt文件,在里面输入 adb logcat -v time >D:\log\logcat0423.txt  然后另存为文件名: logcat.bat  编码: ANSI 点击保存到桌面。这是批处理文件。双击打开,即时打开抓取,手机发生问题后,立刻连接手机,直接点开双击。不用打开cmd,再输入命令。

app安全测试和H5测试相关推荐

  1. APP测试、H5测试、小程序测试的区别

    APP测试.小程序测试.H5测试.Web 测试区别如下: APP H5 Web 微信小程序 运行环境 iOS.Android手机设备 iOS.Android手机设备.PC的浏览器 PC浏览器 微信 兼 ...

  2. 测试流程||H5测试

    H5测试流程 进入公司,在了解了公司基本业务后,一些公司可能会直接让测试实习人员从实践中进一步了解相关业务.比较常见的是给你一个H5,让你来测(当然也会安排一个前辈带你).今天就来聊聊测试H5的相关流 ...

  3. 十一、安全测试和H5测试

    1.安全测试 1.1 安全测试分析 木马 病毒 篡改 破解 钓鱼 二次打包 账号窃取 资源篡改 广告植入 信息劫持 1.2 安全分析 客户端 数据传输 服务端 反编译 防二次打包 组件导出 Webvi ...

  4. app测试、h5测试、服务端测试区别

    (存放位置)1.h5页面放在服务端,网速慢的时候,页面出来的就慢,app的页面都是本地写出来的.可以用弱网测试看出一些区别来.(访问机制)2.h5的页面都是访问url,app都是本地写出来的页面,不需 ...

  5. APP测试/web测试/H5测试的区别

    随着手机应用的不断状态,同一款产品的移动端应用市场占相较PC端也越来越大,那么app与PC端针对这些产品的测试有什么相同与不同之处呢?笔者总结如下: 首先谈一谈相同之处... 一,针对同一个系统功能的 ...

  6. 为何一个简单的测试类H5却要花费我2天时间才完成?

    心血来潮想做一个H5小游戏,考察人们的创造力和想象力,由于更复杂的交互形式(诸如移动.旋转)还没有学会,只能采用之前学习到的"测试类"游戏思维来做. 那么做测试类的H5第一步是找寻 ...

  7. H5测试||锦上添花的辅助工具

    在进行H5测试时,常常会用到一些辅助工具,有了他们,会让测试工作进行得更加顺利高效.今天就先给大家介绍几个我实际用到的辅助工具(都是在线工具,十分方便哟),一起康康叭~ 草料二维码 网址:https: ...

  8. 必须知道的app测试与web测试的区别

    随着移动互联网的极速发展,移动应用更是呈指数增长,在app测试方面更是需求大涨,已经完全超过遗忘web测试.今天就简单说说两者的区别 从功能测试方面的来看,在流程和功能测试上是没有区别的.系统测试和一 ...

  9. app、web和接口测试测试流程

    一.web测试流程 1.需求分析,了解具体需求 2.测试准备:原型图.效果图.需求文件.测试用用例.用例评审.各种测试数据准备 3.测试环节:接受版本开始执行 1)冒烟测试:对版本质量的控制以及此版本 ...

最新文章

  1. 【细无巨细,包你学会】自学Python运行时会遇到的异常与解决方法
  2. Codeforces Round #297 (Div. 2)E. Anya and Cubes 折半搜索
  3. Vue Router路由嵌套
  4. eclipse自定义快捷键
  5. 获取当前目录所有文件名 并且保存为1个00000.txt的文件文件bat
  6. [译]php和curl_multi_exec
  7. mysql dba系统学习(1)mysql各版本编译安装
  8. beanfactorypostprocessor_Spring源码分析(六)容器的扩展点(BeanFactoryPostProcessor)
  9. liunx系统中的盘符能修改嘛_装系统教程!如何从U盘启动(中)!小白也能变装机大神!...
  10. Centos7.5源码编译安装nodejs
  11. 《Arduino计算机视觉编程》一3.3 总结
  12. C#关于电脑DPI改动显示的问题
  13. android 自定义 对号,Android自定义View实现打钩动画功能
  14. Linux的netstat命令使用
  15. 怎么用python制作随机点名软件_python用tkinter实现一个简易能进行随机点名的界面...
  16. Mac上优秀的取色工具——ColoFolXS for mac支持m1
  17. linux是乱码,linux乱码的解决方法 -
  18. 《普林斯顿微积分读本》笔记-第3章极限导论
  19. Maven中的dependencyManagement 详解
  20. V神站台--黑马BZZ究竟如何?和FIL 有什么区别?

热门文章

  1. odoo16作网站记录
  2. 领取价值100美元的XTC代币构建一个Dfinity Dapp
  3. java sdk 聊天机器人_给女朋友做个聊天机器人,这样就能安心写代码了
  4. 基因数据处理121之SSW的score matrix调整,使得与SparkSW评分一致
  5. 匈牙利二分图最大匹配——过山车(hdu2063)
  6. git回退到某个版本,以及从过去的版本返回到新的版本(三)
  7. BAT程序员面试小公司遭拒绝,面试官:统筹能力差,只适合流水线
  8. k8s-pv-pvc概述
  9. C# Winform 程序 使用DotNetBar美化界面
  10. python链表库_[转]为什么python标准库没有实现链表