测试开发知识点整理(三)

Web测试和Web开发

Web手工测试

Web基础知识

124、 了解网络基础

【参考】TCP/IP协议简述
https://blog.csdn.net/u010785091/article/details/78791543
【参考】TCP/IP协议、HTTP协议、SOCKET通讯详解
https://www.cnblogs.com/jking10/p/5525519.html
【参考】网段划分
https://blog.csdn.net/lvyibin890/article/details/80181443
【参考】什么是POP3、SMTP和IMAP
http://help.163.com/09/1223/14/5R7P6CJ600753VB8.html

125、 了解防火墙

【参考】Windows防火墙配置
https://blog.csdn.net/qq_33633013/article/details/81912721
【参考】配置Windows 防火墙,允许SQL Server的远程连接
https://www.cnblogs.com/hgmyz/p/6405478.html

126、 了解浏览器

【参考】浏览器缓存机制详解
https://www.cnblogs.com/slly/p/6732749.html
【参考】chrome–浏览器调试工具详解
https://blog.csdn.net/qq_27056805/article/details/86383032

126、 URL地址的组成

1)协议名(http或https)
2)网站域名或者服务器IP
3)端口号(如果没有端口号的话,说明使用的是默认端口80或者443)
4)资源路径
5)参数列表
如果是传统格式的话,参数之间使用&隔开,比如:

http://192.168.0.153:8080/myweb/load.do?keyword=1176&status=1

如果是RESTful风格的话,参数是在资源路径里面的。比如:

http://nba.sports.163.com/team/1000000027/stat/

【参考】关于HTTP协议
https://www.cnblogs.com/ranyonsue/p/5984001.html
【参考】IP地址详解
https://blog.51cto.com/6930123/2112403
【参考】IP与域名的关系
https://blog.csdn.net/yanyanwenmeng/article/details/82705616
【参考】常用服务的端口号
https://blog.csdn.net/weibo1230123/article/details/82107104
【参考】端口号的作用
https://blog.csdn.net/flying_man_/article/details/79392923
【参考】URL详解
https://blog.csdn.net/tao546377318/article/details/69325972

127、 http请求的组成(掌握)

请求地址
请求方式(GET, POST, PUT, DELETE)
请求消息头
请求消息主体
【参考】Http消息头中常用的请求头和响应头
https://www.cnblogs.com/widget90/p/7650890.html
【参考】Http请求中Content-Type
https://www.cnblogs.com/klb561/p/10090540.html

128、 http响应的组成(掌握)

响应消息头
响应消息主体

129、http响应时间的组成

130、 http响应结果码(掌握)

200:处理成功
301:重定向(告诉浏览器请求的页面已经不存在了,请使用新的地址访问)
302:重定向(用户没有权限访问该页面,让浏览器跳转到登录页面)
404:请求的页面找不到(请求的地址错误)
403:没有访问权限
500:内部错误(后台报错),比如:空指针异常,数组越界异常,数据库连接超时等

【参考】网页状态码
https://blog.csdn.net/mjp_erhuo/article/details/80138283

【参考】http状态码301和302详解及区别
https://blog.csdn.net/zhouchangshun_666/article/details/79354193

131、 http和https的区别

【参考】HTTP与HTTPS的区别
https://www.cnblogs.com/wqhwe/p/5407468.html

132、 GET请求和POST请求的区别(掌握)

133、Post请求的参数内容的3种类型

Content-Type介绍
MediaType,即是Internet Media Type,互联网媒体类型;也叫做MIME类型,在Http协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息。

1)表单格式
在这里插入图片描述在这里插入图片描述
2)JSON格式
在这里插入图片描述在这里插入图片描述
3)多媒体文件格式
在这里插入图片描述在这里插入图片描述


cookie和session

133、 Cookie和Session的区别

134、 了解token技术

【参考】Java实现基于token认证
https://blog.csdn.net/kkkun_joe/article/details/81878231
【参考】Token身份认证
https://blog.csdn.net/sinat_22013331/article/details/79382367

135、URL重写

【参考】URL重写来实现会话管理
https://www.iteye.com/blog/macleo-739590


Web手工测试使用到的测试工具

135、Web功能手工测试用到的工具

1)xenu(测试链接)
2)数据库客户端工具 navicat premium(查看考勤系统的登录账号,导入考勤的数据)
3)浏览器自带开发调试工具(抓包分析是否存在 404 的请求)

135、常用浏览器调试工具

https://jingyan.baidu.com/article/fd8044fa3495e95031137a9f.html

136、Web系统性能(等待时间)手工测试用到的工具

浏览器自带开发调试工具(抓包分析响应时间,请求资源文件的大小)

137、Web后台性能(Linux 服务器的 cpu 和内存)实时监控用的的工具

top 命令

138、Web兼容性手工测试用的的工具

Firefox(最新版本),IE(最新版本),Chrome(最新版本),Safari(最新版本)等主流浏览器

139、Web安全性手工测试用到的工具

浏览器自带开发调试工具(抓包分析敏感数据是否被加密)


Web手工测试的测试点

140、 Web功能测试(包括界面)(掌握)

比如:
1)页面的测试(界面是否与原型图一致,并且检查页面数据的正确性)
2)表单的测试(合法的输入和非法的输入,表单提交后检查实际的数据是否与录入的数据一致)
3)Ajax请求的测试
4)商品库存数量为1,使用LoadRunner或者JMter模拟两个用户同时(并发)下单的情况
【参考】常用输入框的测试用例汇总
https://blog.csdn.net/amazingcode/article/details/83717693
【参考】表单输入框的测试点:
https://testerhome.com/topics/10306
【参考】登录注册的测试点:
https://www.cnblogs.com/hkgov/p/7451548.html
【参考】购物车怎么测试:
https://www.jianshu.com/p/4ebb1988ca00
【参考】关于高并发和分布式中的幂等处理,你真的知道吗?
https://www.jianshu.com/p/cea3675a590b

141、 Web性能测试

比如:网页加载、系统响应的速度、图片等资源文件的大小
注意:系统刚上线的时候,由于数据比较少,速度一般都比较快,但是两三年后,后台的业务数据量很大,系统一些功能的响应速度可能会变慢(比如:搜索很慢,保存很慢等等),系统的性能缺陷就会暴露出来,系统响应慢的可能原因包括:
1)数据库的原因(缺少索引,sql代码的执行效率比较低,修改操作引起的索引更新比较占时间等等)
2)后台代码的执行效率低(需要优化)
3)前端代码(比如JS程序)的问题
4)环境问题(比如:网络不稳定、软件配置不合理)
5)硬件问题(系统老化,磁盘读写效率低)
6)架构设计问题(比如:没有使用缓存技术,给后台服务器或者数据库服务器造成的压力比较大)

142、 Web安全性测试(了解)

1)敏感数据是否被加密(比如:账号的登录密码需进行加密保存到数据库里面,请求消息里面的敏感数据须加密,以及响应消息里面的敏感数据须加密)(掌握)
2)非登录状态下,不能通过URL地址的方式进入到相关业务的页面(能够自动跳转到登录页面)(掌握)
3)对登录模块的密码策略进行验证(掌握)
4)连续登录失败达到一定的次数后,检查账号是否被冻结(掌握)
5)检查登录系统是否需要输入验证码(掌握)
6)使用拥有不同角色的账号分别进行测试(检查用户的功能权限和数据权限是否正确)(掌握)
【参考】权限测试点
https://blog.csdn.net/Do_fang/article/details/49892869
【参考】权限管理详解(权限管理原理以及方案)
https://blog.csdn.net/u013087513/article/details/74979321
7)权限过期的情况(检查用户是否仍可以使用这些权限)
8)检查系统是否存在密码破解的漏洞(了解)
9)获取手机短信的验证码,需要先输入检验码
目的是为防止用户通过自动化脚本恶意调用发送短信的接口来攻击后台并且骚扰手机用户
image.png
10)购物车里面结算的时候,普通用户是无法修改总金额的,但是有技术背景的用户可以使用浏览器里面的调试工具恶意地去修改表单里面的总金额(比如修改为1.0元),然后提交,看看最终产生的订单的支付金额是否也是1.0元。
11)检查系统是否存在SQL注入的安全性漏洞(了解)
【参考】DVWA-1.9全级别教程之SQL Injection
https://www.freebuf.com/articles/web/120747.html
【参考】SQL注入攻防入门
http://www.cnblogs.com/heyuquan/archive/2012/10/31/2748577.html
12)检查系统是否存在命令注入的安全性漏洞(了解)
【参考】Web安全性测试实践
https://www.jianshu.com/p/ba8f98216b33
13)检查系统是否存在被CSRF攻击的安全性漏洞(了解)
14)检查系统是否存在验证码的安全性漏洞(了解)
15)检查系统是否存在文件包含的安全性漏洞(了解)
16)检查系统是否存在文件上传的安全性漏洞(了解)
【参考】文件上传漏洞
https://blog.csdn.net/fly_hps/article/details/80781196
【参考】DVWA-1.9全级别教程之File Upload
https://www.freebuf.com/articles/web/119467.html
17)检查系统是否存在被XSS攻击(存储型)的安全性漏洞(掌握)
18)检查系统是否存在被XSS攻击(反射型)的安全性漏洞(了解)
19)检查系统是否存在缓存溢出的安全性漏洞(了解)
【参考】缓冲区概念及缓冲区溢出
https://blog.csdn.net/zhengweiwei8608/article/details/6649716
【参考】缓冲区溢出攻击实验
https://blog.csdn.net/blackturtle/article/details/72768224
20)检查系统是否存在被DDoS攻击的安全性漏洞(了解)
【参考】DDOS攻击简易介绍
https://blog.csdn.net/fly_hps/article/details/79915142

143、 Web兼容性测试

了解当前哪些浏览器是主流,挑选前面3-5个左右的浏览器进行兼容性测试(一般选3个左右就差不多了,项目时间允许的话可以做得更多)

Edge, IE, FireFox, Chrome,Safari, 360浏览器, UC浏览器, QQ浏览器等
https://www.jd.com
https://m.jd.com
https://www.taobao.com
https://h5.m.taobao.com
HTML5: 用于手机端Web开发,以及app开发

同浏览器的不同版本也要进行兼容性测试(一般测试最新版本)
兼容各种分辨率(检查界面是否会出现问题)
比如,在分辨率较低的电脑的浏览器上面打开该网页,发现某块区域显示的内容是不完整的。
界面上元素功能是否正常、排版布局是否合理美观,这是兼容性最最最重要的测试范围
在不同浏览器中或者是同一浏览器不同版本里需要对哪些界面功能进行兼容性测试?
1)网页元素位置是否混乱与错位
2)功能按钮(增删改查、导入导出、超链接、清空)等等
3)各种控件的检查:日期和时间控件、搜索控件
【参考】兼容性测试介绍
https://www.cnblogs.com/fang1109/p/4977995.html

144、 Web易用性测试

用户体验

面试被问到的问题

Web测试面试题

145、并发测试,你们一般是测多少个?

模拟两个用户并发的场景比较麻烦,需要借助测试工具的,比如loadrunner,jmeter.
可以跟他说说大概的思路
1)如果是针对功能的话,并发数量可以很少(比如就2个)。比如,两个用户同时修改同一条数据,会出什么情况,这就是一个功能测试点。
2)如果是针对性能的话,并发数量就会很多(比如50个)。比如,50个用户同时订票,平均响应时间多少,这个就是性能测试点。
3)使用loadrunner模拟并发的话,先录制脚本,设置事务,文本检查,集合点,创建场景(设置虚拟用户数量和持续时间),最后运行场景和分析报告
4)使用jmeter模拟并发的话,先抓包分析请求,然后构造请求,设置线程数量和循环次数,添加监听(查看结果树和聚合报告),最后运行测试和分析结果
注意:一台电脑能够模拟的虚拟用户数量毕竟是有限的(最好不要超过100个)。

146、请说出软件测试流程及对应的开发阶段,及各阶段提交件。

image.png
1)单元测试对应详细设计阶段,产出:单元测试计划,单元测试用例,缺陷报告,单元测试报告
2)集成测试对应概要设计阶段,产出:接口测试计划,接口测试用例,缺陷报告,集成测试报告
3)系统测试对应需求分析阶段,产出:系统测试计划,系统测试用例,系统测试用例评审记录,缺陷报告,系统测试报告
4)验收测试对应用户需求阶段,产出:验收测试计划,验收测试用例,缺陷报告,验收报告
系统测试计划主要包括:
1)功能测试的范围,即测试哪些功能点(发布上线的功能点)
2)兼容性测试的范围,即兼容哪些主流的浏览器,移动设备,以及分辨率
3)性能测试的范围,比如:检查请求的响应速度(页面的加载速度),检查测试服务器资源占用情况(cpu使用率,内存使用率,磁盘读写效率),检查安卓测试机和iOS测试机的资源占用情况(cpu使用率,内存使用率,耗电,流量,散热情况)
4)安全性测试的范围,比如:检查普通会员是否拥有vip资源的访问权限,检查非登录状态无法对资源进行评论,发送弹幕等
5)稳定性测试的范围,比如:使用monkey测试安卓app的稳定性
6)第一轮系统测试的起止时间
7)第二轮系统测试(回归测试)的起止时间
注意:实际工作中主要是做功能方面的测试。如果版本更新有涉及性能方面的需求,才需要定义性能测试的范围。比如:本次版本更新对搜索的性能做了优化,则需要测试搜索的性能。另外,如果版本更新有涉及安全方面的需求,则需要定义安全性测试的范围。

147、你是否参与过需求分析?你提了什么问题?

需求分析阶段,开发人员和测试人员都要对需求进行理解,测试人员主要是通过阅读需求文档(可以通过svn客户端从公司的svn服务器下载)对需求进行理解,测试人员可以针对需求文档中存在的问题向需求经理(负责调研客户需求,编写需求文档)提问。
需求文档一般会存在哪几类问题呢,比如:
1)需求经理对功能点的描述不够准确,存在歧义,用词模棱两可
2)需求经理对功能点的描述不够具体,不完整,导致测试人员无法根据需求描述来判断软件的运行结果是否正确
【思考】请针对考勤管理系统的需求文档,提出1~2个问题。
【参考】浅谈需求:软件需求的分类到底有哪些?
http://www.woshipm.com/pmd/886458.html

微信扫一扫关注公众号
image.png
点击链接加入群聊
https://jq.qq.com/?_wv=1027&k=5eVEhfN
软件测试学习交流QQ群号:511619105

Java编程

Java面向对象

148、 类和对象(掌握)

构造函数,成员变量(属性),成员方法,访问权限(public, protected, private),static关键字,封装,继承,多态,抽象类,抽象方法,接口
【参考】关于Object类
https://blog.csdn.net/qq_18505715/article/details/72511677
【参考】Java内存泄漏与内存溢出
https://www.cnblogs.com/panxuejun/p/5883044.html
【参考】Java垃圾回收机制
https://www.cnblogs.com/dolphin0520/p/3783345.html
【参考】JVM内存初学 堆、栈、方法区
https://www.cnblogs.com/dingyingsi/p/3760730.html
【参考】Java中的堆内存、栈内存和方法区总结
https://orochimaru-sama.iteye.com/blog/2372341

149、局部变量和成员变量的比较

149、 字符串类

String,StringBuffer,StringBuilder

150、 包装类

Integer,Double等

151 、 格式转换类

SimpleDateFormat等

152、 日期类

Date, Calendar等

153、 Scanner

154、 Random

155、 Math类

155、 Arrays类

156、泛型

157、 ArrayList和LinkedList(掌握)

  • 接口 Collection<E>
    • 接口 List<E>
      • 类 ArrayList<E>
      • 类 LinkedList<E>
  • 接口 Set<E>
    • 接口 SortedSet<E>
      • 类 TreeSet<E>
      • 类 HashSet<E>

158、 HashMap(掌握)

  • 接口 Map<K,V>
    • 类 HashMap<K,V> 哈希表
    • 接口 SortedMap<K,V>

159、匿名内部类

【参考】在匿名内部类中声明比较器
https://blog.csdn.net/darron_r/article/details/52719413
【参考】java中的匿名内部类总结
https://blog.csdn.net/hellocsz/article/details/81974251

160、 了解输入输出流(文件读写)

161、 异常处理

Exception的分类:运行异常和非运行异常(可检测异常)
运行异常(RuntimeException):算术异常,空指针异常,数据转换异常,数组越界异常等
非运行异常:输入输出异常,数据解析异常等
try catch,throw关键字,throws关键字

162、 JDBC框架

驱动,连接(建立和关闭),语句对象(SQL设定和SQL执行),事务
入门教程:
https://www.yiibai.com/jdbc/

163、 DAO

调用JDBC框架操作数据库

164、 了解网络编程

165、 了解多线程

【参考】Java线程池如何正确地等待所有任务执行完
https://www.oschina.net/question/2256297_2301666

166、 枚举类型(了解)

167、 Java反射机制(了解)

微信扫一扫关注公众号
image.png
点击链接加入群聊
https://jq.qq.com/?_wv=1027&k=5eVEhfN
软件测试学习交流QQ群号:511619105

Web前端

HTML

168、 HTML基础

HTML入门教程
http://www.runoob.com/html/html-tutorial.html
HTML特殊字符(实体引用)
http://www.w3school.com.cn/html/html_entities.asp
HTML5入门教程
https://www.w3cschool.cn/html5/
【参考】一文读懂HTML5和HTML区别
https://www.jianshu.com/p/9c8c0cb10b09
【参考】HTML5和HTML的区别
https://blog.csdn.net/qq_40542728/article/details/81742570
【参考】html meta标签使用总结
https://www.cnblogs.com/moyingliang/p/5748043.html

169、 表单(掌握)

学习资料:
https://www.w3cschool.cn/html/html-form.html
输入类型:
http://www.w3school.com.cn/html/html_form_input_types.asp
输入属性:
http://www.w3school.com.cn/html/html_form_attributes.asp

CSS

170、CSS基础

入门教程:
http://www.runoob.com/css/css-tutorial.html
CSS 单位:
http://www.w3school.com.cn/cssref/css_units.asp
CSS颜色:
http://www.w3school.com.cn/cssref/css_colors.asp
块级元素和行内元素
https://www.cnblogs.com/stfei/p/9084915.html
HTML行级元素和块级元素区别和转化(display属性)
https://blog.csdn.net/qingyisuo/article/details/78959942

171、 基本选择器(掌握)

元素定位器,ID定位器,类定位器

172、 交集选择器

173、 并集选择器

174、 组合选择器

175、 后代选择器(使用空格隔开)

176、子元素选择器(儿子选择器)(使用大于号隔开)

177、 bootstrap框架(了解)

入门教程:
http://www.runoob.com/bootstrap/bootstrap-tutorial.html
Bootstrap组件:
https://v3.bootcss.com/components/
Bootstrap日期和时间表单组件
https://www.bootcss.com/p/bootstrap-datetimepicker
Bootstrap模态框
https://www.runoob.com/bootstrap/bootstrap-modal-plugin.html

178、 面包屑设计(了解)

参考资料:
https://cdc.tencent.com/2009/07/06/面包屑设计/

JavaScript

179、JavaScript基础

【参考】入门教程
http://www.runoob.com/js/js-tutorial.html
【参考】数据类型转换
https://www.w3cschool.cn/javascript/js-type-conversion.html
【参考】正则表达式
https://www.w3cschool.cn/javascript/js-regexp.html
【参考】最全面的常用正则表达式大全
https://www.cnblogs.com/yunspider/p/8280132.html
【参考】正则表达式总结
https://www.cnblogs.com/yyds/p/6913550.html

180、 事件(提交、点击、产生焦点、失去焦点、切换、加载、hover等)

181、 网页元素的定位(查找)

182、 dom操作(节点的增、删、改)

183、 Ajax请求

入门教程:
http://www.runoob.com/ajax/ajax-tutorial.html
ajax的同步和异步有怎样的区别?
https://www.php.cn/js-tutorial-411396.html

184、 表单的校验(输入不允许为空等)

【参考】JavaScript表单验证
https://www.w3cschool.cn/javascript/js-form-validation.html
【参考】bootstrapValidator表单验证使用方法
https://blog.csdn.net/jewely/article/details/77810472

185、 JQuery框架

函数作用
$(selector)根据指定的选择器定位元素,比如:$("#list")
$(element)将JavaScript对象转成jQuery对象
//根据id查找元素,返回的是JavaScript对象
var node = document.getElementById("list");
//根据id选择器查找元素,返回的是JQuery对象
var $node = $("#list");

入门教程:
http://www.w3school.com.cn/jquery/

jQuery对象与js对象互相转换:
https://blog.csdn.net/jackliu16/article/details/79599173

186、JS跨域(Ajax跨域)

【参考】jsonp 关键字详解及json和jsonp的区别,ajax和jsonp的区别
https://www.cnblogs.com/grimm/p/8339833.html

187、JS代码调试

【参考】chrome–浏览器调试工具详解
https://blog.csdn.net/qq_27056805/article/details/86383032
【参考】google 浏览器的Debug 调试工具使用
https://www.cnblogs.com/zhukaixin/p/9154583.html
【参考】谷歌浏览器F12前端调试工具 Console
https://blog.csdn.net/u013380777/article/details/75331461

UI交互设计(美工)

188、切图(了解)

【参考】什么是切图
https://www.cnblogs.com/shiy/p/6577080.html

Java EE

189、 Servlet + JSP(了解)

【参考】Servlet入门教程:
http://www.runoob.com/servlet/servlet-tutorial.html
【参考】JSP入门教程:
http://www.runoob.com/jsp/jsp-tutorial.html

190、 Cookie和Session(了解)

参考资料:
http://www.runoob.com/servlet/servlet-cookies-handling.html
http://www.runoob.com/jsp/jsp-cookies.html
http://www.runoob.com/js/js-cookies.html
http://www.runoob.com/servlet/servlet-session-tracking.html
http://www.runoob.com/jsp/jsp-session.html

191、 了解token认证技术

【参考】Java实现基于token认证
https://blog.csdn.net/kkkun_joe/article/details/81878231
【参考】token身份认证
https://blog.csdn.net/sinat_22013331/article/details/79382367

192、单点登录系统(SSO)(了解)

微信扫一扫关注公众号
image.png
点击链接加入群聊

https://jq.qq.com/?_wv=1027&k=5eVEhfN
软件测试学习交流QQ群号:511619105

推荐阅读

[01]Java面试题全集(上)
[02]Java面试题全集(中)
[03]Java面试题全集(下)
[04] 测试开发知识点(一)
[05] 测试开发知识点(二)
[06] 测试开发知识点(三)
[07] 测试开发知识点(四)
[08] 测试开发知识点(五)
[09] Web测试经验分享
[10] 移动app测试经验分享
[11] 软件测试面试被问到的问题
[12] 测试工程师-简历真的拿得出手吗?
[13] 面试时如果发现回答不好,该怎么办?
[14] 如何在面试中介绍自己的项目经验
[15] 这 3 条原则让你简历上的项目经历稳过!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值