面试题课程笔记

1.测试分为哪几个阶段?

①单元测试,集成测试------一般由开发人员完成

②系统测试和验收测试------一般由测试人员完成

2.如何编写测试计划

5w原则:

①What:测试的内容是什么

②Why:测试的目的是什么?---性能:得到的指标;功能:啥时候测完

③When:项目的开始截至日期

④How:明确测试方案(化,手工,兼容,性能)

⑤Where:明确资料位置---需求文档的存放地址,测试用例的存放地址,bug系统的地址等等

3.常用的测试用例设计方法有哪些?

①等价类划分

②边界值

③错误推测法:输入空格,或者什么都不输入

④正交表分析法:横坐标:浏览器的top;纵坐标:手机品牌,操作系统,分辨率;最终选择需要的手机

⑤场景分析法:

⑥因果图:

4.如何分层自动化测试?

①UI自动化回归

②接口自动化

③单元测试--白盒测试

5.如何保证脚本的有效性?

①保证定位有效性,封装处理异常

②保证流程的有效性,封装独立方法

③保证数据有效性,数据备份与恢复

6.UI自动化:针对不长变动的页面

②接口自动化:周期短,变动频繁---经常提测需要经常测试的

③框架分层:用例与框架分离

7.常见测试覆盖类型?---白盒测试

①语句覆盖

②判定/条件覆盖

③ 条件组合覆盖

④路径覆盖

8.B/S,C/S架构什么区别

CS架构:客户端软件

BS架构:网站

9.安全性测试包含哪些内容?

①用户访问认证

②传输数据加密

③安全防护策略:如日志安全,入侵检测,隔离防护,漏洞扫描

④数据的备份与恢复

⑤防病毒系统

⑥ Sql注入,JS注入

10.测试报告包含哪些内容呢?

①测试背景说明

②测试范围说明

③测试环境说明

④测试方法说明

⑤测试结果结论说明

⑥质量或风险说明

11.Alpha测试和Beta测试的区别?

Alpha测试:在开发环境进行测试

Beta测试:在真实环境测试,测试通过后进入发布阶段

12.bug的类型有哪些?

①Bug:由于代码编写错误导致的功能问题

②Defect即缺陷,实现与需求不一致

③Fault即故障,由于环境,系统问题引起运行失败

④Error即错误,语法错误,逻辑错误,不易被发现----不影响用户使用,但是会抛出异常

13.面向对象的概念?

简称OOP,是一种程序的设计思想

对象是一个类的实例,类是一系列事务的统称

主要包括:类,继承,多态,实例,属性,方法

14.进程,线程,协程

进程:有独立数据空间,进程间不共享数据,由系统调度

线程:执行程序的最小单元,进程内线程间资源共享,由系统调度

协程:程序员调度,分解一个线程成为多个“微线程”

15.如何使用python实现socket编程?

①Socket又称套接字,应用程序通过套接字向程序发送请求

②应用程序通过套接字应答网络请求

③主机间或者一台计算机上的进程间可以通讯

16.lambda函数,元组,列表

lambda匿名函数:

r = lambda x :x * 2

print r(10)

元组:里面的元素不可更改,但可更改整个元素内容

列表:元素可更改

17.range函数的用法

①返回一系列连续增加的整数

②工作方式类似于分片

③可以生成一个列表对象

ps:    list  = range (0 , 51)    输出0~50的数

print(list)

18.字符串的拆分方法?

① string 对象的split 方法,不允许有多个分隔符,

②函数 re.split(),允许为分隔符指定多个正则模式

19.单引号,双引号,三引号的区别

单双没区别,三引号可以换行

20.* args  、  *kwargs  有什么用?

* args :可变参数列表

*kwargs:键值对参数列表

21.python 中的PASS语句的作用

占位符,实现一个空函数

PS:    def student():

                pass

            student()      一个空函数,不输入pass就会报错

22.re模块中match和search方法的不同?

import re

a1 = "sgksajglkasjg"

a2 = "kjgklsdjlgkjals"

a3 = "dglkjaslkgjasklg"

print(re.match(a1 , a2))    -----只从字符串的开始位置开始匹配

print(re.match(a1 , a2) .group())

print(re.search(a2 , a1))    -----查询整个字符串

print(re.search(a2 , a1).group)

23.WSGI、FastCGI的关系?

CGI:公共网关接口

HTTP服务器于机器与的程序进行交互的一种工具

程序必须运行在网络服务器上,和语言无关

WSGI:python web server gateway interface

python 服务器与web服务器之间的一种接口

FastCGI,像一个常驻型的CGI,可以一直执行着

24.python是如何操作文件的?

①打开文件

②写入或读取数据

③关闭文件

25.兼容性测试需要考虑哪些因素?

APP兼容性测试

①系统版本(Andorid Ios)不同版本

②分辨率:(小屏,大屏,全屏)

③android手机品牌(华为,小米,OPPO,VIVO)

Web兼容性测试

1.不同平台的不同浏览器(safari  ,chrome)

2.分辨率(大屏,小屏,全屏),是不是折行

3.是否允许转发,比如转发到第三方软件,qq,微信,微博等,转发后打开是否可以正常展示

PC页面兼容性测试

1.操作系统:windows,mac,os 平板电脑

2.浏览器(IE系列,火狐,chrome)等等

3.分辨率(笔记本,台式机,窗口缩放等)

26.ADB相关问题

1)Android的四大组件是什么?

①Activity:用户和程序的交互窗口

②Service:在程序后台,完成用户操作

③ContentProvider:提供数据的统一访问格式

④BroadcastReceiver:应用程序之间传输信息的机制

1)Activity的生命周期是什么?

Actived:激活

Paused:暂停状态---弹出对话框,看是否进一步操作

stop:停止状态

killed:被杀掉的状态

---------------------------

2)如何重启adb服务?

adb start-server

adb kill-server

2)app的安装与卸载

adb - s 设备名称 install 文件路径-----安装

adb - s 设备名称 install - r文件路径---覆盖安装

adb -s 设备名称 uninstall 包名---卸载

adb devices  ----获取当前连接设备的名称

adb logcat | findstr(grep  ----linux) START  ---获取安装apk的包名

3)adb push D:\test.apk / data /local /tmp/test.apk    把包导入手机系统

4)adb pull / data /local /tmp/test.txt D\:      把手机系统文件导入PC

adb shell  进入手机目录

cd /data /local /tmp /

ls  查看该目录下所有文件

5)如何静默安装app?

adb shell pm install -f /data /local/tmp /test.apk

6)如何使用adb启停一个app?

7)如何使用adb命令启动或者停止app

①adb shell am start -w-s package/activity

②adb shell am force-stop package

8)通过某个关键字查找已安装的包

①adb shell pm list package -f keyword

②abd shell pm list package -3 keyword  ---第三方自带的包

③adb shell pm list package -i keyword  ----查找已安装的包

④adb shell pm list package  ---查询设备安装的所有包名

9)如何截屏,录屏

①adb shell screencap /data /local /tmp /scree.png

②adb shell screenrecord /data /local /tmp /demo.mp4

10)如何抓取locat日志

①adb locat

②adb shell locat

11)如何获取当前CPU,内存状态

①adb shell dumpsys    meminfo package

②adb shell dumpsys cpuinfo | findstt package


27.monkey相关

1)如何让monkey执行指定事件

①触摸事件:pct- touch

②动作事件:pct-motion

③轨迹球事件:pct-trackball

④基本导航事件:pct-nav

⑤主要导航事件:pct-majornav

⑥系统导航事件:pct-syskeys

⑦应用启动事件:pct-appswitch

⑧其他类型事件:pct-anyevent

2)monkey测试命令总结

and shell monkey -v -v -v -s 6789  --throttle 300(设置执行的频率为多少毫秒) --ignore-crashes --ignore-timeouts --pct-touch 100 -p 包名 100(随机数)

获取日志  重定向 > monkey.log

cat monkey.log

Linux基本命令

mv  移动或重命名

rm -r 递归删除

rm-f 强制删除

wc 统计文本中行数,字数,字符数

28.fiddler工具

1)如何使用fiddler抓取手机上的数据包?

️pc端设置,设置端口号

️手机端设置,设置Wi-Fi,设置代理

2)数据包中都包含哪些内容?

️状态码、协议类型

️request(header:user-agent,cookies,referer)

️response(header,data)

3)如何设置Autoresponder?

️抓取请求

️制作数据

️设置规则

4)如何使用fiddler发送get/post请求?

️构造url(get&post)

️构造参数(get&post)

5)如何使用fiddler构造慢网络?

️rules-performances-simulate modem speeds

️修改代码,配置需要的配速

6)如何使用fiddler抓取https包?

️fiddler https相关设置

️在浏览器中安装证书

29.postman工具

1)如何使用postman发送get/post请求?

2)如何为postMan用例填写检查点?

3)如何使用postman批量运行测试用例?  ·

30.基于python常见算法有哪些?

1)排序

①从小到大排序:sorted(list)

list = [0,3,6,2,5,1,9]

print(sorted(list))t

②从大到小排序:sorted(list,reverse = ture)

list = [0,3,6,2,5,1,9]

print(sorted(list,reverse = ture))

③改变列表原有顺序并按排序后样式展示

list = [0,3,6,2,5,1,9]

list.sort()

print(list)

2)冒泡

①比较相邻得元素,如果第一个比第二个大就交换

②一轮遍历,每两相邻元素,重复1,最大放在队尾

③不包括已经排队尾的,重复2

3)快排

①从列表中挑出一个元素,作为基准值key

②所有小于key的元素放在左边,所有大于key的元素放在右边

③分别递归左侧列表,右侧列表


4)堆排序

5)二分查找

6)素数

31.Linux相关

1)基础命令

①cd切换目录

②ls -l  列出文件详细信息    ls - a 列出当前目录下所有文件

③touch 创建文件  mkdir 创建目录

④echo 创建带有内容的文件

⑤cat  查看文件内容

echo "hello world" > mookhello

cat mookhello  ---展示“hello world”

⑥cp  拷贝

⑦mv  移动或重命名

⑧rm -r 递归删除  ;rm -f  强制删除

⑨wc 统计文本中行数,字数,字符数

⑩grep 在文本文件中查找某个字符串

tree 显示目录结构

ln 创建软链

more  、 less 分页显示文本内容

head 、 tail 显示文件头尾内容

2)网络命令

①curl 利用 UIL 规则在命令行下工作的文件传输工具

curl http://www.baidu.com

②netstat 显示网络状态信息

telnet 127.0.0.1

③telnet 用于远程登录主机

netstat  所有的网络链接状态

3)系统命令思

① ping 测试网络连通

ping www.baidu.com

② man 查看帮助

man ping  -----ping的常用命令

③ kill 杀死进程

kill pid(38970)

④当前正在运行的进程

top 

⑤ps显示瞬间进程状态

⑥ df 查看磁盘大小  df -h 带有单位显示磁盘信息

2.计算机网络相关的问题

1)OSI 七层模型的具体内容

物理层:建立,维护,断开物理连接

数据链路层:逻辑连接,硬件地址寻址,差错校验

网络层:逻辑地址寻址,不用网络之间的路径选择,IP

传输层:传输数据的协议,TCP(确定地址已经连接),UDP(只确定目的地进行传输,可能出现丢包,无法传输)

会话层:建立,管理,终止会话,本地与远程主机的会话

表示层:数据的标示,安全,压缩,JPEG,ASCII等

应用层:与最终用户的连接,HTTP ,HTTPS ,SMTP

2)http 协议中get 和 post的区别

①功能差异

get 是客户端去服务端取东西

post 客户端提交东西至服务端

②数据传输

get:在Url 里带参数传输给服务端,服务端根据传输的内容返回值

post:把数据放在body里传输给服务端

③安全性

get不安全,参数存在url里

post安全,传输参数在url不可见

3)tcp 和 udp 的区别


4)tcp 连接三次握手具体过程



5)socket 建立连接的过程

①服务器建立监听,socket,bind,listen

②客户端发送请求,connect,send

③连接确认,accept,response

你可能感兴趣的:(面试题课程笔记)