先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
正文
3.兼容性方面
-
web项目:浏览器(火狐、谷歌、IE等);操作系统(Windows7、Windows10、Linux等)。
-
app项目:设备系统:iOS(ipad、iphone)、Android(三星、华为、联想等) 、Windows(Win7、Win8)、OSX(Mac);手机设备可根据 手机型号、分辨率、屏幕尺寸不同。
4、相对于 Wed 项目,APP有专项测试
1)干扰测试:中断,来电,短信,关机,重启等。
2)弱网络测试(模拟2g、3g、4g、5g,wifi网络状态以及丢包情况);网络切换测试(网络断开后重连、3g切换到4g、5g/wifi 等)。
3)安装、更新、卸载,中断、前后台切换。
-
安装:需考虑安装时的中断、弱网、安装后删除安装文件,全新安装、升级安装、第三方工具安装等情况;
-
卸载:需考虑第三方工具卸载、直接卸载卸,载后是否删除app相关的文件;
-
更新:分强制更新、非强制更新、增量包更新、断点续传、弱网状态下更新;
-
中断:来电中断、短信中断、闹钟中断、手机锁定、手机断电、手机死机;
4)界面操作:关于手机端测试,需注意手势,横竖屏切换,多点触控,前后台切换。
5)安全测试:安装包是否可反编译代码、安装包是否签名、权限设置,例如访问通讯录等。
6)边界测试:可用存储空间少、没有SD卡/双SD卡、飞行模式、系统时间有误、第三方依赖(QQ、微信登录)等。
7)权限测试:设置某个App是否可以获取该权限,例如是否可访问通讯录、相册、照相机等。
5、测试工具方面
-
自动化工具:APP 一般使用 Appium; Web 一般使用 Selenium;
-
性能测试工具:APP 一般使用Monkey、 JMeter; Web 一般使用 LR、JMeter;
5、Android手机和IOS手机,系统有什么区别?
1.两者运行机制不同:IOS采用的是沙盒运行机制,安卓采用的是虚拟机运行机制。
IOS 沙盒运行机制:
-
每个程序都有自己的虚拟地址空间。所以,程序之间不能进行访问。
-
默认只会将应用的最后运行数据,记录在RAM里面。
Android 虚拟机运行机制:
-
所有的应用程序都是运行在虚拟机中,用户界面其实是由虚拟机传递的,并且通过虚拟机,Android的任何程序都就可以轻松访问其他程序文件。
-
所有的Android的应用程序都是运行在RAM里面的,所以会发现有时候Android用着用着就开始有点卡顿。
2.两者后台制度不同:IOS中任何第三方程序都不能在后台运行;安卓中任何程序都能在后台运行,直到没有内存才会关闭。
3.IOS中用于UI指令权限最高,安卓中数据处理指令权限最高。
6、IOS和Android的APP测试有什么区别?
1.物理按键:Android长按home键呼出应用列表和切换应用,然后右滑则终止应用;iOS所有的返回上一层,只能靠页面功能实现。
2.多分辨率测试:Android端20多种;IOS较少。
3.手机操作系统:Android较多,IOS较少且不能降级,只能单向升级;新的IOS系统中的资源库不能完全兼容低版本中的IOS系统中的应用,低版本IOS系统中的应用调用了新的资源库,会直接导致闪退。
4.操作习惯:Android,Back键是否被重写,测试点击Back键后的反馈是否正确;应用数据从内存移动到SD卡后能否正常运行等。
5.push测试:Android点击home键,程序后台运行时,此时接收到push,点击后唤醒应用,此时是否可以正确跳转;IOS点击home键关闭程序和屏幕锁屏的情况(红点的显示)。
6.安装卸载测试:Android可以通过手机自带的应用市场或者是第三方的手机助手进行下载,下载和安装的平台和工具和渠道比较多;IOS主要有app store,iTunes和testflight下载。
7.升级测试:可以被升级的必要条件:新旧版本具有相同的签名;新旧版本具有相同的包名;有一个标示符区分新旧版本(如版本号)。
8.支付方式:对于一些有内购功能的APP,Android直接调用第三方支付渠道完成支付;IOS需要先在APP store里绑定支付方式,然后通过APP store去完成支付操作。
9.消息推送机制:Android使用第三方或者自建平台进行消息推送;IOS的消息推送渠道由苹果官方提供。
7、介绍一个APP抓包工具?
一般用Fiddler,主要用来做app抓包使用,先在Fiddler客户端做好各项配置,端口设置为8888;然后在手机上设置代理,就可以抓包,主要看的是服务器返回的值、还能够修改传入参数、传出的参数、模拟网络延时,构造不同场景。
8、APP日志如何抓取?
-
可以使用adb命令:adb logcat | find “com.sankuai.meituan” >d:\test.txt
-
也可以用ddms抓取,手机连上电脑,打开ddms工具;
-
或者在Android Studio开发工具中,打开DDMS;
9、常用的adb命令有哪些?
1.查看帮助手册列出所有的选项说明及子命令:
adb help
- 获取设备列表及设备状态:
adb devices
3.安装应用:adb install 路径\xx.apk, 安装应用;adb install -r 重新安装。
adb install
adb install -r
- 获取设备的状态,设备的状态有 device , offline , unknown3种,其中device:设备正常连接,offline:连接出现异常,设备无响应,unknown:没有连接设备。
adb get-state
5.卸载应用:adb uninstall <包名>, 后面的参数是应用的包名,区别于 apk 文件名。
adb uninstall
6.将 Android 设备上的文件或者文件夹复制到电脑本地:adb pull <远程路径> <本地路径>, 如复制 Sdcard 下的 pull.txt 文件到 D 盘:adb pull sdcard/pull.txt d:\,重命名:adb pull sdcard/pull.txt d:\rename.txt。
adb pull
7.推送本地文件至 Android 设备:adb push <本地路径> <远程路径>, 如推送 D 盘下的 ITester.txt 至 Sdcard:adb push d:\ITester.txt sdcard/ (注意sdcard 后面的斜杠不能少)。
adb push
8.结束和启动adb服务:adb kill-server /adb start-server , 结束 adb 服务/启动 adb 服务,通常两个命令一起用,设备状态异常时使用 kill-server,运行 start-server 进行重启服务。
adb kill-server
adb start-server
9.打印及清除系统日志:adb logcat , 打印 Android 的系统日志 ;adb logcat -c,清除日志。
adb logcat
adb logcat -c
10.查找包名/活动名
adb logcat | findstr START
10、adb三个组件是指?
ADB作为一个客户端/服务器架构的命令行工具,主要由3个部分组成。
-
adb clent(客户端):可以通过它对Android应用进行安装、卸载及调试。
-
adb service(服务器):管理客户端到Android设备上abd后台进程的连接,负责管理client和damon进行通信。
-
adb daemon(守护进程):运行在Android设备上的adb后台进程。
二、进阶篇
1、介绍一下Android四大组件?
Android四大基本组件:Activity、BroadcastReceiver广播接收器、ContentProvider内容提供者、Service服务。
-
Activity:应用程序中,一个Activity就相当于手机屏幕,它是一种可以包含用户界面的组件,主要用于和用户进行交互。一个应用程序可以包含许多活动,比如事件的点击,一般都会触发一个新的Activity。
-
BroadcastReceiver广播接收器:应用可以使用它对外部事件进行过滤只对感兴趣的外部事件(如当电话呼入时,或者数据网络可用时)进行接收并做出响应。广播接收器没有用户界面。然而,它们可以启动一个activity或serice 来响应它们收到的信息,或者用NotificationManager来通知用户。通知可以用很多种方式来吸引用户的注意力──闪动背灯、震动、播放声音等。一般来说是在状态栏上放一个持久的图标,用户可以打开它并获取消息。
-
ContentProvider内容提供者:内容提供者主要用于在不同应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访问数据的安全性。只有需要在多个应用程序间共享数据时才需要内容提供者。例如:通讯录数据被多个应用程序使用,且必须存储在一个内容提供者中。它的好处:统一数据访问方式。
Service服务:是Android中实现程序后台运行的解决方案,它非常适合去执行那些不需要和用户交互而且还要长期运行的任务(一边打电话,后台挂着QQ)。服务的运行不依赖于任何用户界面,即使程序被切换到后台,或者用户打开了另一个应用程序,服务仍然能够保持正常运行,不过服务并不是运行在一个独立的进程当中,而是依赖于创建服务时所在的应用程序进程。当某个应用程序进程被杀掉后,所有依赖于该进程的服务也会停止运行(正在听音乐,然后把音乐程序退出)。
2、Activity生命周期?
生命周期即活动从开始到结束所经历的各种状态,从一个状态到另一个状态的转变,从无到有再到无,Activity本质上有四种状态:
-
运行(Active/Running):Activity处于活动状态,此时Activity处于栈顶,是可见状态,可以与用户进行交互。
-
暂停(Paused):当Activity失去焦点时,或被一个新的非全面屏的Activity,或被一个透明的Activity放置在栈顶时,Activity就转化为Paused状态。此刻并不会被销毁,只是失去了与用户交互的能力,其所有的状态信息及其成员变量都还在,只有在系统内存紧张的情况下,才有可能被系统回收掉。
-
停止(Stopped):当Activity被系统完全覆盖时,被覆盖的Activity就会进入Stopped状态,此时已不在可见,但是资源还是没有被收回。
-
系统回收(Killed):当Activity被系统回收掉,Activity就处于Killed状态。
如果一个活动在处于停止或者暂停的状态下,系统内存缺乏时会将其结束(finish)或者杀死(kill)。这种非正常情况下,系统在杀死或者结束之前会调用onSaveInstance()方法来保存信息,同时,当Activity被移动到前台时,重新启动该Activity并调用onRestoreInstance()方法加载保留的信息,以保持原有的状态。
在上面的四中常有的状态之间,还有着其他的生命周期来作为不同状态之间的过渡,用于在不同的状态之间进行转换。
3、请介绍一下,Android SDK中自带的几个工具?
有如下几个工具:
-
ddms:Dalvik Debug Monitor Service,是 Android 开发环境中的Dalvik[虚拟机]调试监控服务。
-
monkey:Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。
-
uiautomator:UIAutomator是Eclipse自带的用于UI自动化测试工具,可仿真APP上的单击、滑动、输入文本等操作。
-
monitor:同uiautomator
-
adb:ADB的全称为Android Debug Bridge,就是起到调试桥的作用。通过ADB我们可以在Eclipse中方面通过DDMS来调试Android程序,就是debug工具。
4、你所了解的APP测试工具?
常用的APP测试工具如下,,查看对应工具地址。
APP自动化测试工具:
-
Appium
-
Airtest
-
uiautomator2(python)
APP稳定性测试工具:
-
Monkey
-
MonkeyRunner
-
Maxim
-
UICrawler
APP性能测试工具:
-
GT
-
Perfdog
-
SoloPi
APP弱网测试&抓包工具:
-
QNET
-
Fiddler
-
Charles
APP兼容性测试工具:
-
TestIn
-
腾讯优测
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
- SoloPi
APP弱网测试&抓包工具:
-
QNET
-
Fiddler
-
Charles
APP兼容性测试工具:
-
TestIn
-
腾讯优测
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-8NX6ejsA-1713704897271)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!