1. 测试流程
制定测试计划 编辑测试用例 执行测试用例发现并提交bug 开发人员进行修复bug 进行回归测试并将修改完善的bug状态进行关闭 未正确修改的bug重新激活
2. 测试计划的编写要素
why----为什么进行测试
what----测试那些方面 不同阶段的工作内容
when----测试不同阶段的起止时间
where----相应文档 缺陷的存放位置 测试环境等
who----项目有关人员组成 安排那些人员进行测试
how----怎么去做 使用那些测试工具以及方法进行测试
3. 测试原则
a:应当把“”尽早地和不断地进行软件测试“”作为软件开发者的座右铭
b:测试用例应有测试输入数据和对应的预期结果这两部分组成
c:程序员应避免检查自己的程序
d:在设计测试用例时 应包括合理的输入条件和不合理的输入条件
e:软件测试的原则
f:充分注意测试中的群集现象 经验表明 测试后程序中残有的错误数目与该程序中已发现的错误数目成正比
g:严格执行测试计划 排除测试的随意性
h:应当对每一个测试结果做全面检查
i:妥善保存测试计划 测试用例 出错统计和最终分析报告 为维护提供方便
4. 测试方法
黑盒:等价类划分法 边界分析法 因果图法 错误推测法 正交法和场景法
白盒:逻辑覆盖法 循环测试路径选择 基本路径测试
5. 测试分类
按阶段划分:单元测试 集成测试 系统测试 验收测试
按是否运行划分:静态测试 动态测试
按是否查看代码划分:白盒测试 黑盒测试 灰盒测试
其他:回归测试 冒烟测试 随机测试
功能测试:界面 业务逻辑功能 兼容性 易用性 安全性 安装测试
性能测试:性能 负载 压力 容量 并发 配置 可靠性 失败测试
6. 测试模型
V型
W型
7. 开发流程
需求分析--概要设计--详细设计--编码--测试--软件交付--验收--维护--升级--再测试--逐步淘汰
8. 黑盒和白盒的区别
黑盒测试:把测试对象当成一个黑盒子,测试人员完全不考虑逻辑结构和内部特性, 只依据程式的需求说明书来检查程式的功能是否满足它的功能说明。
白盒测试:把测试对象当成一个透明的盒子,允许测试人员利用程序内部逻辑结构及 相关信息,设计或选择测试用例,对程式所有逻辑路径进行测试。
9. 测试计划中有哪些
测试背景 测试目标 测试范围 测试输出文档 测试策略 测试规模 工作量分析 测试进程 测试进度及时间安排 测试资源 人力 设备 风险管理
10. 测试用例包含哪些
用例编号 所属模块 执行条件 测试输入 预期结果 实际结果 用例是否通过 测试人 版本 备注
11. 测试用例需要详细到什么程度才是合格的
首先根据需求文档 概要设计 测试评估 测试方案细分出各功能模块的测试项 再根据各测试项 按照概要设计 详细设计以及测试方案中测试的覆盖率细分出测试子项
12. 缺陷报告包含哪些
缺陷的标题 简要描述 却显得类型 缺陷的详细步骤描述 缺陷的实际结果 期望结果 有的缺陷需要上传截图 日志信息 缺陷的等级 缺陷指派给开发
13. 测试评审:(评审分类 评审内容 评审结束)
评审分类:部门 公司 客户评审
评审内容:
a:用例设计的结构安排是否清晰 合理 是否利于对需求进行覆盖
b:优先级安排是否合理
c:是否覆盖测试需求上的所有功能点
d:用例是否具有很好的可执行性
e:是否已经删除了冗余的用例
f:是否包含了充分的负面测试用例
g:是否从用户层面来设计用户使用场景和使用流程的测试用例
h:是否简洁 复用性强
评审结束:在评审活动中会搜集到用例的反馈信息,在此基础上进行用例更新 直接通过评审
14. 水杯 电梯 朋友圈点赞 视频播放 支付的测试用例的设计点有哪些
请看之前的简书
15. 测试发现bug开发不认为是bug的时候
16. Linux命令 15个
arch 显示机器的处理器架构
uname -m 显示机器的处理器架构
uname -r 显示正在使用的内核版本
dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)
hdparm -i /dev/hda 罗列一个磁盘的架构特性
hdparm -tT /dev/sda 在磁盘上执行测试性读取操作
cat /proc/cpuinfo 显示CPU info的信息
cat /proc/interrupts 显示中断
cat /proc/meminfo 校验内存使用
cat /proc/swaps 显示哪些swap被使用
cat /proc/version 显示内核的版本
cat /proc/net/dev 显示网络适配器及统计
cat /proc/mounts 显示已加载的文件系统
lspci -tv 罗列 PCI 设备
lsusb -tv 显示 USB 设备
17. Adb命令 15个 查看日志 (日志级别)
查看设备 adb devices
安装软件 adb install -r (APK路径)
卸载软件 adb uninstall <软件名> adb uninstall -k <软件名> 如果加 -k 参数,为卸载软件但是保留配置和缓存文件
登录设备 adb shell
查看内存情况 adb shell getprop
本机内存的使用情况 findstr dalvik
查看应用内存使用情况 adb shell dumpsys meminfo +包名
列出手机装的所有app的包名 adb shell pm list packages
列出系统应用的所有包名 adb shell pm list packages -s
列出除了系统应用的第三方应用包名 adb shell pm list packages -3
查看手机日志 adb logcat
日志的输出时间 adb logcat -v time
查看当前连接设备:adb devices
如果发现多个设备:adb -s 设备号 其他指令
安装apk文件:adb install xxx.apk
18. Monkey命令 和日志区别
adb shell monkey 100 执行monkey 测试100次针对rom测试或者
adb shell monkey -p com.example.login 100
adb shell monkey 100 >c:/log/b.txt 将log信息写到文档中
adb shell monkey -p com.example.login --throttle 300 100 表示执行100个伪随机用户事件流 事件间隔为300毫秒
--ignore-crashes 通常应用发生崩溃或异常时Monkey会停止运行 如果设置此项 Monkey将继续发送事件给系统 直到事件计数完成
--ignore-timeouts(ANR) 通常应用程序发生任何超时错 Monkey将停止运行,设置此项,Monkey将继续发送事件给系统,直到事件计数完成
-p 允许的包名列表
日志详细程度:
Level0 : adb shell monkey -p com.example.login -v 100//缺省值,仅提供启
动提示、测试完成和最终结果等少量信息
Level1: adb shell monkey -p com.example.login -v -v 100//提供较为详细的日志,包括每个发送到Activity的事件信息
Level2: adb shell monkey -p com.example.login -v -v -v 100//最详细的日志,包括了测试中选中/未选中的Activity信息
19. 查看日志的前10行后5行的命令
前10行:head -n 10/ect/profile
后5行:tail -n 5/ect/profile
20. Bug生命周期
提交bug--判断bug是否及时处理--分配bug--处理当前bug是否推迟--验证bug--修改完善--关闭bug
21. Bug的状态和优先级
严重等级:
第一级(blocker): 引起喜欢作系统“挂起”或“崩溃”的错误;
第二级(critical): 引起软件本身“挂起”或“崩溃”的错误;
第三级(major): 不能完成软件说明书定义的功能的错误;
第四级(normal): 程序所完成的功能与软件说明书定义不符的错误;
第五级(minor) : 显示方面的错误;
第六级(trivial) : 其它“轻微”的错误(如文本差错);
第七级(enhancement):增强或者改进。
优先级:
1.立即解决(Resolve Immediately)缺陷必须被立即解决。
2.正常排队(Normal Queue)缺陷需要正常排队等待修复或列入软件发布清单。
3.不紧急(Not Urgent)缺陷可以在方便时被纠正。
22. Bug的分类
1、代码错误 2、设计缺陷 3、界面优化 4、性能问题 5、配置相关
6、安装部署 7、安全相关 8、标准规范 9、测试脚本
10、其他划分:功能类、界面类、性能类、易用性类、兼容性类、其他
23. Chareles的弱网测试
1.proxy --> Throttle Settings... --> 勾选Enable Throttling,勾选Only for selected hosts 然后设置 里面数据
24. Chareles的断点替换(request response)
1.选择你要设置的断点接口 2.右击接口,选择断点 3.点击代理->断点设置
4.双击链接,进行配置 5.把参数删掉,换成*,可修改请求可修改返回
6.修改我们需要的数据,修改完成后点击执行即可
25. chareles的对app端抓包的步骤
设置代理
(1)查看默认端口:Proxy->Proxy Settings 在这个页面会看到HTTP Proxy的默认端口是8888
(2)查看当前电脑的IP:Help->Local IP Address,在这个页面会看到本机IP
(3)手机上设置代理(记住手机跟电脑要在同一个网络)
手机连接到Charles时会弹出提示框是否连接,点击Allow允许即可
完成后就可以看到已经能抓到http请求的数据了
26. Jmeter的接口测试
1测试计划中添加线程租
2在线程租中添加http请求 在http请求中需要填入
3在线程中添加查看结果树
27. Jmeter的压力测试 打压 1000
1测试计划中添加线程租
2在线程租中添加http请求 在http请求中需要填入
3. 在线程租中进行修改 并发数量 (修改线程数量 修改循环次数 )
4.在线程组添加聚合报告
28. Web端的性能指标
响应时间(客户端向服务端的请求时间,服务端对数据库的请求时间,服务端将结果展现到页面的时间)
响应时间2 5 8原则
吞吐量:指的是在一次性能测试过程中网络上传输的数据量的总和.吞吐量/传输时间,就是吞吐率.
TPS:每秒处理事务能力
并发数: 单用户的多次操作
多用户的单次操作
点击率:每秒钟用户向WEB服务器提 交的HTTP请求数.
资源使用率:cpu <80% 内存 <80% io <40 网络 <30%
29. App端的性能指标
Cpu内存 流量 电量 启动时间 帧率 cpu <80%内存 <80%
电量的损耗: 流量的损耗:
30. Jmeter的负载测试
1测试计划中添加线程租
2在线程租中添加http请求 在http请求中需要填入
3. 在线程租中进行修改 并发数量 (修改线程数量 修改循环次数 )
4.在线程组添加聚合报告
31. Jmeter的脚本录制(web /app)
通过Badboy来录制脚本(pc)
1.打开badboy ,点击红色按钮,在地址栏输入被测项目地址。
录制完后,点击旁边的黑色按钮结束录制。
2.选择文件,Export to Jmeter 保存.jmx类型文件
3.打开Jmter,打开“文件”->‘打开’选择刚保存的.jmx类型文件。
1.打开jmeter,创建一个线程(移动端)
2.添加代理服务器,点击 “工作台”,然后右键,根据如下图步骤,添加一个代理服务器。
3.设置端口以及录制地址 4.通过模拟机配置端口号就可以完成链接
32. TPS和qps区别
tps可以理解为是每秒对事务的处理的能力 qps是每秒对服务器的查询能力
性能测试web端和app端测试
33. 负载和压力区别
负载测试是从并发量维度出发,不断增加并发量的情况下,系统的性能指标;
压力测试是从访问时间维度出发,在并发量一定的情况下,不断增加连续访问的时间,系统的性能指标;
34. Mysql的 inner join left join right join full join 区别
左连接:LEFT JOIN 左连接:表emp是主表,因此查询结果是显示emp(主表)的全部信息和sal(附表)与emp相关的信息。
右连接:RIGHT JOIN 右连接:表sal是主表,因此查询结果显示sal(主表)的全部信息和emp(附表)与sal想关的信息。
内连接:INNER JOIN 内连接:显示的是连个表相关的信息
全连接:FULL JOIN 全连接:显示两个表所有的信息。
35. MySQL的数据库优化
1.优化索引、SQL 语句、分析慢查询;
2.设计表的时候严格根据数据库的设计范式来设计数据库;
3.使用缓存,把经常访问到的数据而且不需要经常变化的数据放在缓存中,能节约磁盘 IO
4.优化硬件;采用 SSD,使用磁盘队列技术(RAID0,RAID1,RDID5)等
5.采用 MySQL 内部自带的表分区技术,把数据分层不同的文件,能够提高磁盘的读取效率;
6.垂直分表;把一些不经常读的数据放在一张表里,节约磁盘 I/O;
7.主从分离读写;采用主从复制把数据库的读操作和写入操作分离开来;
8.分库分表分机器(数据量特别大),主要的的原理就是数据路由;
9.选择合适的表引擎,参数上的优化
10.进行架构级别的缓存,静态化和分布式;
11.不采用全文索引;
12.采用更快的存储方式,例如 NoSQL 存储经常访问的数据。
36. Mysq的存储过程
1、存储过程能实现较快的执行速度
2、存储过程允许标准组件是编程。
3、存储过程可以用流程控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。
4、存储过程可被作为一种安全机制来充分利用。
5、存储过程能够减少网络流量
37. 编写http接口的性能测试,和测试过程中的关注点 流程
性能测试流程
1.业务知识理解
2.工具的选择(jmeter)
3.设计性能测试场景(由需求或测试经理设计)
3.指定测试方案并评审
4.性能测试环境准备(注:独立于功能测试环境,使用局域网排除网络影响)
5.编写和调优性能测试脚本(有接口测试文档)//(无接口测试文档:fiddle抓包、badboy、jmeter代理录制---关联(把上一个请求的结果送给下一个请求))
6.执行性能测试,收集测试结果
7.分析测试结果-----系统的性能优化
38. http和https的区别
1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
39. OSI和tcp/IP的区别
(1)OSI和TCP/IP的相同点是二者均采bai用层次结构du,而且都是按功能分层。
OSI和TCP/IP的不同点:
(1).OSI分七层,自下而上分为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP分四层:网络接口层、网际层、传输层和应用层。
(2).OSI先有模型,再有协议,比较适合理论上探讨。TCP/IP先有协议,再有模型,已得到广泛的实际应用。
40. TCP 和UDP 的区别
1、连接方bai面区别
TCP面向连接(如du打电话要先拨号建立连接)。
UDP是无连接的zhi,即发送数据dao之前不需要建立连接。
2、安全方面的区别
TCP提供可靠的服务,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达。
UDP尽最大努力交付,即不保证可靠交付。
3、传输效率的区别
TCP传输效率相对较低。
UDP传输效率高,适用于对高速传输和实时性有较高的通信或广播通信。
4、连接对象数量的区别
TCP连接只能是点到点、一对一的。
UDP支持一对一,一对多,多对一和多对多的交互通信。
41. Get/post的区别
“1.Get是不安全的,因为在传输过程,数据被放在请求的URL中;Post的所有操作对用户来说都是不可见的。2.Get传送的数据量较小,这主要是因为受URL长度限制;Post传送的数据量较大,一般被默认为不受限制。
1、GET使用URL或Cookie传参。而POST将数据放在BODY中。
2、GET的URL会有长度上的限制,2kb,则POST的数据则可以非常大。
3、POST比GET安全,因为数据在地址栏上不可见。
4、一般get请求用来获取数据,post请求用来发送数据。
42. Web测试和app测试的区别
43. 给你一个网站你如何张开测试
性能测试
(1)连dao接速度测dao试:用户连接到电子商务网版的速度与上权网方式有关,他们或许是电话拨号,或是宽带上网,打开速度越快的网站,越受用户喜爱。
(2)负载测试:负载测试是在某一负载级别下,检测电子商务系统的实际性能。允许多少个用户同时在线,可以通过相应的软件在一台客户机上模拟多个用户来测试负载。
(3)压力测试:压力测试是测试系统的限制和故障恢复能力,也就是测试电子商务系统会不会崩溃。
安全性测试
对网站的安全性(服务器安全,脚本安全)可能有的漏洞测试,攻击性测试,错误性测试。对电子商务的客户服务器应用程序、数据、服务器、网络、防火墙等进行测试。用相对应的软件进行测试。
基本测试
包括色彩的搭配,连接的正确性,导航的方便和正确,CSS应用的统一性。
网站优化测试
(1)引擎优化测试:好的网站是看它是否经过搜索引擎优化了,网站的架构、网页的栏目与静态情况等。
(2)用户优化测试:用户来到网站能能够在3-5次,找到其需要的内容。方便用户的网站倍受用户的亲昵。
功能实现:网站现有版本,需求是否完全实现。满足需求的网站才是有用的网站。
44. 支付模块的测试如何展开
1、单元测试要写好
2、自己真实支付测试
3、接口自动化测试,由于要真实支付只能发起预支付,但不能付款。(测试环境可以自己写套假支付回调接口来改变支付结果来方便接口自动化测试)
45.如何在jinkens中实现打包并集成测试
46. 全量包 灰度包 debug包 的区别
Debug 版本的存在是为了方便程序员开发和调试,性能和体积不是它的重点;
Release 版本是最终交给用户的程序,性能和体积是需要重点优化的两个方面。
全量包就是相对于增量包而言的,是手机系统完整版安装包,增量包一般是官方线上推送统一更新的
在开发过程中,我们一般使用 Debug 版本,只有等到开发完成,确认没有任何 Bug 之后,希望交给用户时再生成 Release 版本。
47.charles的抓包,断电替换,【request,response-2种方式出现,弱网测试】
48、自动化测试框架的种类