简单网站建设优化推广,咨询公司来公司做调查,中国制造网下载,做网站带源码软件-dw一直以来大大小小参与过不少面试#xff0c;遇到过不少坑#xff0c;但是没来的及好好总结汇总下。现在把之前遇到的问题汇总下#xff0c;希望以后自己能加深印象。
1、appium 怎么定位toast弹框
appium1.6以后回答需要升级u2进行定位。
2、什么是事务#xff0c;知道事…一直以来大大小小参与过不少面试遇到过不少坑但是没来的及好好总结汇总下。现在把之前遇到的问题汇总下希望以后自己能加深印象。
1、appium 怎么定位toast弹框
appium1.6以后回答需要升级u2进行定位。
2、什么是事务知道事务提交、回滚
事务是并发控制单位用户定义的一个操作序列。这些操作要么都做要么都不做是不可分割的的工作单位。通过事务sql server能将逻辑相关的一组操作绑定在一起以便服务器保持数据的完整性主要用于一些对操作过程的完整性比较高的程序。事务的特性原子性、一致性、隔离性、持久性。
事务提交是提交事务的所有操作具体来说就是将所有对数据库的更新写回到磁盘上的物理数据库中事务正常结束。
事务回滚是数据库返回到事务开始的状态事务在运行过程中发生某种故障事务不能继续执行系统将事务中对数据库的所有已完成的更新操作全部撤销使数据回滚到事务开始时的状态。
3、怎么进行数据库优化 大致是有8种方法
a、选取最试用字段属性
b、使用连接join代替子查询
c、使用联合union来代替手动创建的临时表
d、使用事务
e、锁定表
f、使用外键
g、使用索引
h、优化查询语句
4、什么是分布式系统架构
分布式架构系统简单的说是运行在多个处理器上的软件架构设计。分布式系统是建立在网络之上的软件系统、正是因为软件的特性所以具有高度的内聚性和透明性。
5、linux中使用top什么命令可以查看系统详细内存
top 按 c 查看显示完整命令
6、python中列表和字典的区别列表和元祖的区别
元祖tuple元祖常用小括号表示即:()元素加逗号是元祖的标识。
列表list列表常用方括号表示即:[]创建一个列表只要把用逗号分隔的不同的数据项使用方括号括起来即可。
字典dict字典是由花括号{}来包含其数据的花括号内包含键(key)和其对应的值(value)一对键和值成为一个项键和值用冒号:隔开项和项之间用逗号,隔开空字典就是不包含任何项的字典也可理解为空字典就是花括号内不包含任何内容直接使用花括号{}表示
列表和字典的区别字典的查找和插入的速度极快不会随着key值的增加而增加需要占用大量的内存内存浪费多
列表和元祖的区别元祖比列表操作速度快对数据不可更改、可用于字符串格式化中、可作为字典的key
7、数据库中有使用过if等函数吗
if既可以作为表达式用也可在存储过程中作为流程控制语句使用
8、什么是脏数据
脏数据是在临时更新脏读中产生比如事务A更新了某个数据项x,但是由于某种原因事务A出现了问题于是要把A回滚。但是回滚之前另一个事务读取了数据X的值A更新后A回滚了事务数据项恢复了原值。事务B读取的就是数据项X的就是一个“临时”值这就是脏数据。
9、什么是幂等性
就是用户对同一操作发起一次请求或者多次请求的结果是一致的。不会因为多次点击二次产生副作用。简单的例子就是支付用户购买商品使用支付支付扣款成功但是返回结果的时候网络异常此事钱已经扣了用户再次点击此时会产生二次扣款结果返回成功用户查询余额返现多扣钱了。流水记录变成了两条、这就是幂等性。
10、我现在有个程序发现在Windows上运行得很慢怎么判别是程序存在问题还是软硬件系统存在问题
1、检查系统是否有中毒的特征 2、检查软件/硬件的配置是否符合软件的推荐标准 3、确认当前的系统是否是独立即没有对外提供什么消耗CPU资源的服务 4、如果是C/S或者B/S结构的软件需要检查是不是因为与服务器的连接有问题或者访问有问题造成的 5、在系统没有任何负载的情况下查看性能监视器确认应用程序对CPU/内存的访问情况
11、安卓四大组件
activity 通过Intent进行通信 service service用于在后台完成用户指定的操作 Content provider 指定数据集提供给其他应用程序 Broadcast Receiver 对外部事件进行过滤
12、什么是多线程
线程是程序中一个单一的顺序控制流程.在单个程序中同时运行多个线程完成不同的工作,称为多线程.
13、linux中vim模式有
1、命令模式2、编辑模式、3、末行模式
14、计算机网络模型
七层模型应用层、表示层、会话层、传输层、网络层、数据链层、物理层五层模型应用层、传输层、网络层、数据链层、物理层
15、什么是子网掩码
它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网以及哪些位标识的是主机的位掩码。子网掩码不能单独存在它必须结合IP地址一起使用。子网掩码只有一个作用就是将某个IP地址划分成网络地址和主机地址两部分。
16、如果测试时间不够你会怎么办
测试目前主要是产品测试和项目测试。做自己公司的产品测试如果碰到不能按原计划完成本着为质量负责一般都可以申请延期。 如果是做项目迫于合同和客户验收的压力碰到不能按原计划完成的情况就是项目风险了。而处理的方式基本都是“先测客户比较关心的比较常用的功能”保证通过客户验收拿到项目款。分析客户验收所关心的功能点比如客户最近几天提过什么需求肯定要测试因为时间短他肯定记得分析系统最脆弱的地方走通所有业务流程等。而客户验收时候不关心和不可能想到得地方可以不测试比如系统中很多同步功能
17、性能指标有哪些
注册用户数、在线用户数、并发用户数、请求响应时间、事务响应时间、每秒点击数、吞吐率、业务成功率、tps(每秒事务处理数、资源利用率cpu、内存、带宽等
18、什么是接口
传递数据的通道就叫接口
19、测试的基本6大法则
功能性、可靠性、效率性、可移植性、可维护性、易用性
20、接口测试测哪些东西
a、通过性验证
b、参数组合
c、接口安全
d、异常验证
e、根据业务逻辑来设计测试用例
21、用fiddler抓包时怎么制造异常情况
通过请求前打断点可以修改请求参数
22、 什么是mq,mq的特点是什么
把要传输的数据放在队列中保存消息的容器.
mq的特点是异步、解耦、广播、流控与销峰
23、怎么保证软件测试质量
测试人员需要做的工作
测试策略的设计 质量是多维度的功能测试、性能测试、兼容性测试等多种测试类型的结合
用例质量 采用合适的用例方法、如何进行需求分析、用例评审
执行质量 保证执行深度界面、关联模块、数据库、日志与广度系统测试类型
缺陷质量bug评审引入合适的bug流程
过程质量合理的软件测试流程测试过程监控
24、android和ios系统测试的不同点
1、Android长按home键呼出应用列表和切换应用然后右滑则终止应用 2、多分辨率测试Android端20多种ios较少 3、手机操作系统Android较多ios较少且不能降级只能单向升级新的ios系统中的资源库不能完全兼容低版本中的ios系统中的应用低版本ios系统中的应用调用了新的资源库会直接导致闪退Crash 4、操作习惯AndroidBack键是否被重写测试点击Back键后的反馈是否正确应用数据从内存移动到SD卡后能否正常运行等 5、push测试Android点击home键程序后台运行时此时接收到push点击后唤醒应用此时是否可以正确跳转ios点击home键关闭程序和屏幕锁屏的情况红点的显示 6、安装卸载测试Android的下载和安装的平台和工具和渠道比较多ios主要有appstoreiTunes和testflight下载 7、升级测试可以被升级的必要条件新旧版本具有相同的签名新旧版本具有相同的包名有一个标示符区分新旧版本如版本号对于Android若有内置的应用需检查升级之后内置文件是否匹配如内置的输入法
25、使用中间件中间件的作用
具体地说中间件屏蔽了底层操作系统的复杂性使程序开发人员面对一个简单而统一的开发环境减少程序设计的复杂性将注意力集中在自己的业务上不必再为程序在不同系统软件上的移植而重复工作从而大大减少了技术上的负担。 26、什么是orm(对象关系映射)
解决面向对象与关系数据库存在的互不匹配的现象技术简单说orm是通过使用描述对象和数据库之间映射的元数据将程序中的对象自动持久化到关系数据库中。
27、使用什么命令实现查看app手机内存
adb shell dumpsys meminfo 包名com.mbox.cn 28、什么是ANR(applicaton not responding)
29、APP日志分析查找关键字 crash ANR Exception ERROR force closed
30、多线程线程是程序中一个单一的顺序控制流程.在单个程序中同时运行多个线程完成不同的工作,称为多线程.
31、unittest工作原理
使用testcase 进行单元测试通过testsuit 装载用例 使用testrunner执行用例testresult查看用例执行结果。
32、给你的一个测试项目你怎么开展测试工作
在拿到项目后在熟悉需求、原型图后不必急着去设计用例而是先需思考下测试思路从哪方面下手有哪些地方需要覆盖到支持哪些平台有哪些不同的常用场景是否需要考虑到稳定性、性能等等针对项目进行大概的测试规划再根据大概的规划去逐个细化最后形成用例简单来说就是 1.明确测试任务 2.分析测试范围 3.制定测试计划和测试用例。 33、什么是cdn?
cdn的全称是 Content Delivery Network 即内容分发网络通俗的理解就网站加速CPU均衡负载可以解决跨运营商跨地区服务器负载能力过低带宽过少等带来的网站打开速度慢等问题。 34、怎么在VI模式下删除指定数据?
1.使用ctrlv或者v命令切换到块模式
2.然后选中需要删除的块
3.使用x命令进行删除
35、linux文件替换指定内容
表示操作的是文件括起来的grep命令表示将grep命令的的结果作为操作文件。
/yyyy/xxxx/表示查找yyyy并替换为xxxx后面跟g表示一行中有多个yyyy的时候都替换而不是仅替换第一个
另外如果不需要查找子目录仅需要在当前目录替换用sed命令就行了命令如下sed -i s/xxxx/yyyy/g ./*.txt 36、怎么查看linux下面的端口号
netstat -anp |grep 端口号
37、进程、线程、协程的区别
1、一个程序至少有一个进程一个进程至少有一个线程
2、线程的划分尺度小于进程资源比进程少使得多线程程序并发性高
3、进程在执行过程中拥有独立的内存单元而多个线程共享内存从而极大提高了程序的运行效率
4、线程不能独立运行必须依存于进程中
5、一个线程可以多个协程一个进程也可以单独拥有多个协程
6、线程进程都是同步机制协程是异步机制
38、http协议与websocket协议的区别
http协议每次都需要客户端定时轮询向服务器请求然后服务器再向客户端发送数据
websocket协议允许服务端主动向客户端推送数据浏览器和服务器只需要完成一次握手两者之间就可以创建持久性的连接并进行双向数据传输
保持连接状态与http不同的是websocket需要先创建连接这就使得其成为一种有状态的协议之后通信时可以省略部分状态信息。而http请求可能需要每个请求都携带状态信息
39、 性能测试通常需要监控的指标包括 1.服务器Linux包括CPU、Memory、Load、I/O。 2.数据库1.Mysql 2.Oracle缓存命中、索引、单条SQL性能、数据库[/url]线程数、数据池连接数。 3.中间件1.Jboss 2. Apache包括线程数、连接数、日志。 4.网络 吞吐量、吞吐率。 5.应用 jvm内存、日志、Full GC频率。 6.监控工具LoadRunner[/url]用户执行情况、场景状态、事务响应时间、TPS等。 7.测试机资源CPU、Memory、网络、磁盘空间。40、监控工具 性能测试通常采用下列工具进行监控 1.Profiler。一个记录log的类阿里巴巴集团自主开发嵌入到应用代码中使用。 2.Jstat。监控java[/url]进程GC情况判断GC是否正常。 3.JConsole。监控java内存、java CPU使用率、线程执行情况等需要在JVM参数中进行配置。 4.JMap。监控java程序是否有内存泄漏需要配合eclipse插件或者MemoryAnalyzer来使用。 5.JProfiler。全面监控每个节点的CPU使用率、内存使用率、响应时间累计值、线程执行情况等需要在JVM参数中进行配置。 6.Nmon。全面监控linux系统资源使用情况包括CPU、内存、I/O等可独立于应用监控。 7.Valgrind。监控C/C程序是否存在内存泄漏基于linux环境。 8.Vmmap和ApplicationVerifier。监控C/C程序是否存在内存泄漏基于windows环境。