上两个系列讲了软件测试基本常识问题,包括软件测试概念、流程及工作日常及需要具备的只是体系。请参阅:
本篇为大家详细讲解3个问题:
互联网IT行业,一般企业做项目会有哪些环境。
同步接口和异步异步接口是什么?区别是什么?
Web端测试和APP端测试的区别
question 1: 互联网IT行业,一般企业做项目会有哪些环境。
答:一般会有开发环境、测试环境、预生产环境、生成环境、回归环境、UAT环境。他们的特点如下:
开发和配置环境:所有的开发和配置在这个环境里进行。一般情况下,只有这个环境可以改配置和进行开发,并且一般不在这个环境下创建数据。
测试环境:向开发中的外部系统提供服务时,直接用生产环境进行联调是不合适,用测试环境就没什么风险了。因此,我们的产品上线后,测试环境仍要与生产环境长期共存、并保持开放状态。测试环境和生产环境一致,用测试环境的目的是,测试时,不影响线上项目的正常使用,等测试完毕,再上生产环境。
预生产环境(不是必须的):从生产环境不定期同步,保持和生产环境的设置、数据一致性,也是用于测试,它和测试环境最大的区别就是它和生产系统的同步性最高,几乎一样,有些测试,比如需要大数据量的,用这个环境测试看程序性能比用测试环境(一般情况下数据较少)会更准确。(不是必须的,有的公司没有)
生产环境:正式使用的系统环境。 即用户使用的环境。由特定人员来维护,一般人没有权限去修改。
回归环境:回归bug的环境,其实就是我们的测试环境,在测试环境上测试、回归验证bug。
UAT环境:要理解UAT环境,首先要明白UAT的概念,复UAT,(User Acceptance Test),用户接受度测试 即验收测试,所以UAT环境主要是用来作为客户体验的环境。
扩展:预生产环境和生产环境区别:
1)预发环境中新功能为最新代码,其他功能代码和生产环境一致。
2)预发环境和生产环境的访问域名不同。
题外话:
1. 预发布环境一般会连接生产环境的数据库,测试时要注意,以免产生脏数据,影响生产环境的使用。
2. 并不是所有的企业的环境都很齐全,根据公司规模大小,项目的需要等因素酌情选择环境。比如一般小规模的企业,就不会用预生产环境和回归环境。
3. 生产环境一般会部署在多台机器上,以防某台机器出现故障,这样其他机器可以继续运行,不影响用户使用。灰度发布会发布到其中的几台机器上,验证新功能是否正常。如果失败,只需回滚这几台机器即可。
4. 另外,还有个灰度发布,发生在预发布环境之后,生产环境之前。
question 2: 同步接口和异步异步接口是什么?区别是什么?
答:Java中交互方式分为同步和异步两种: 同步交互和异步交互
同步交互:指发送一个请求,需要等待返回,然后才能够发送下一个请求,有个等待过程;
异步交互:指发送一个请求,不需要等待返回,随时可以回再发送下一个请求,即不需要等待。
如果过于专业,听不懂,没关系,来举个通俗的栗子:
同步:比如排队取钱,你取完钱,后面的人才可以取,这就是同步
异步: 取钱的时候 ,发现忘记带卡了,要回去拿卡,这时候后面的人就直接取,不会等你取卡回来!
区别:同步需要等待,异步不需要等待,在部分情况下,我们的项目开发中都会优先选择不需要等待的异步交互方式。
同步场景:
银行的转账系统:当一个支付请求被发送到支付渠道方,支付渠道会很快返回一个结果。但是这个结果,只是告诉你调用成功了,不是扣款成功
对数据库的保存操作:只有先录入数据了,再进行保存操作
异步场景:
不涉及共享资源,或对共享资源只读,即非互斥操作
没有时序上的严格关系
不需要原子操作,或可以通过其他方式控制原子性
常用于IO操作等耗时操作,因为比较影响客户体验和使用性能
不影响主线程逻辑
优劣势分析
同步的好处:
1、同步流程对结果处理通常更为简单,可以就近处理。
2、同步流程对结果的处理始终和前文保持在一个上下文内。
3、同步流程可以很容易捕获、处理异常。
4、同步流程是最天然的控制过程顺序执行的方式。
异步的好处:
1、异步流程可以立即给调用方返回初步的结果。
2、异步流程可以延迟给调用方最终的结果数据,在此期间可以做更多额外的工作,例如结果记录等等。
3、异步流程在执行的过程中,可以释放占用的线程等资源,避免阻塞,等到结果产生再重新获取线程处理。
4、异步流程可以等多次调用的结果出来后,再统一返回一次结果集合,提高响应效率。
question3: Web端测试和APP端测试的区别
APP 测试、Web测试在流程和功能测试上是没有区别的,根据两者载体不一样,则区别如下:
1、系统结构方面:
web项目,b/s架构,基于浏览器的;web测试只要更新了服务器端,客户端就会同步会更新
app项目,c/s结构的,必须要有客户端;app 修改了服务端,则客户端用户所有核心版本都需要进行回归测试一遍
2、性能方面:
web项目需监测响应时间、CPU、Memory、吞吐等
app项目除了监测响应时间、CPU、Memory外,还需监测流量、电量、页面切换的速度等
3、兼容方面:
web项目:浏览器(火狐、谷歌、IE等);操作系统(Windows7、Windows10、Linux等)
app项目:设备系统: iOS(ipad、iphone)、Android(三星、华为、联想等) 、Windows(Win7、Win8)、OSX(Mac);手机设备可根据 手机型号、分辨率不同
4、相对于 Wed 项目,APP有专项测试:
干扰测试:中断,来电,短信,关机,重启等
弱网络测试(模拟2g、3g、4g,wifi网络状态以及丢包情况);网络切换测试(网络断开后重连、3g切换到4g/wifi 等)
安装:需考虑安装时的中断、弱网、安装后删除安装文件等情况
卸载:需考虑 卸载后是否删除app相关的文件
更新:分强制更新、非强制更新、增量包更新、断点续传、弱网状态下更新
5、测试工具方面:
自动化工具:APP 一般使用 Appium; Web 一般使用 Selenium
性能测试工具:APP 一般使用 JMeter; Web 一般使用 LR、JMeter
6. 界面操作:
关于手机端测试,需注意手势,横竖屏切换,多点触控,前后台切换
7. 安全测试:
安装包是否可反编译代码、安装包是否签名、权限设置,例如访问通讯录等
8. 边界测试:
可用存储空间少、没有SD卡/双SD卡、飞行模式、系统时间有误、第三方依赖(QQ、微信登录)等
9. 权限测试:
设置某个App是否可以获取该权限,例如是否可访问通讯录、相册、照相机等
看到这里,如果你有一颗想要顺利进阶,升职加薪的❤️不妨参与我们的软件测试一周集训吧!可以后台私信我,也可以进入qun :⑥③⑥⑧⑤⑨⑨⑥④,获取更多咨询哦~