Hi,大家好。最近很多朋友都在说今年的互联网行情不好,面试很难,不知道怎么复习,我最近总结了一份在软件测试面试中比较常见的WEB功能测试面试面试题合集,希望对大家有帮助。
建议点赞+收藏再阅读,防止丢失!只收藏不点赞都是坏人呀!
废话少说,直上干货。
目录
1.Student-coures-Studentcourse表关系如下:
2.请说出XHTML和HTML的区别
3.很多网站不常用table iframe这两个元素,知道原因吗
4.jpg和png格式的图片有什么区别?
5.简述—下src与href的区别
6. :before和::before区别?
7.如何理解HTML结构的语义化?
8.常见的视频编码格式有几种?视频格式有几种?
9.JS中null, undefined的区别?
10.什么是sql注入,什么是跨站脚本,什么是跨站请求伪造?
1.Student-coures-Studentcourse表关系如下:
student(sno,sname,age,sdept)学生表
course(cno,cname,teacher)课程表
Studentcourse(sno,cno,grade)选课表写出sql语句:
·查询所有课程都及格的学生号和姓名·查询平均分不及格的课程号和平均成绩
找出各门课程的平均成绩,输出课程号和平均成绩
找出没有选择c2课程的学生信息
2.请说出XHTML和HTML的区别
1、文档顶部doctype声明不同,xhtml的doctype顶部声明中明确规定了xhtml DTD的写法;
2. html元素必须正确嵌套,不能乱;3、属性必须是小写的;
4、属性值必须加引号;
5、标签必须有结束,单标签也应该用“/”来结束掉;
3.很多网站不常用table iframe这两个元素,知道原因吗
因为浏览器页面渲染的时候是从上至下的,而table和iframe这两种元素会改变这样渲染规则,他们是要等待自己元素内的内容加载完才整体渲染。用户体验会很不友好。
4.jpg和png格式的图片有什么区别?
jpg是有损压缩格式,png是无损压缩格式。所以,相同的图片,jpg体积会小。
比如我们一些官网的banner图,一般都很大,所以适合用jpg类型的图片。
但png分8位的和24位的,8位的体积会小很多,但在某些浏览器下8位的png图片会有锯齿。
5.简述—下src与href的区别
浏览器会识别href引用的文档并行下载该文档,并且不会停止对当前文档的处理
当浏览器解析到src引|用时,会暂停浏览器的渲染,直到该资源加载完毕。这也是将js脚本放在底部而不是头部的原因。
6. :before和::before区别?
单冒号(t)用于CSS3伪类,双冒号(:)用于CSS3伪元素。
对于CSS2之前已有的伪元素,比如:before,单冒号和双冒号的写法::before作用是一样的。
7.如何理解HTML结构的语义化?
所谓标签语义化,就是指标签的含义。语义化的主要目的就是让大家直观的认识标签(markup)和属性(attribute)的用途和作用,对搜索引擎友好,有了良好的结构和语义我们的网页内容便自然容易被搜索引擎抓取,这种符合搜索引擎收索规则的做法,网站的推广便可以省下不少的功夫,而且可维护性更高,因为结构清晰,十分易于阅读。这也是搜索引擎优化SEO重要的一步。
8.常见的视频编码格式有几种?视频格式有几种?
视频格式:MPEG-1、MPEG-2和MPEG4 、AVl .RM、ASF和WMV格式
视频编码格式:H.264、MPEG-4、MPEG-2.WMA-HD以及VC-1
9.JS中null, undefined的区别?
null表示一个对象被定义了,但存放了空指针,转换为数值时为0。
undefined表示声明的变量未初始化,转换为数值时为NAN。
typeof(null) - object;
typeof(undefined) - undefined
10.什么是sql注入,什么是跨站脚本,什么是跨站请求伪造?
SQL注入攻击是注入攻击最常见的形式(此外还有OS注入攻击( Struts 2的高危漏洞就是通过OGNL实施OS注入攻击导致的)),当服务器使用请求参数构造SQL语句时,恶意的SQL被嵌入到SQL中交给数据库执行。SQL注入攻击需要攻击者对数据库结构有所了解才能进行,攻击者想要获得表结构有多种方式:
1.如果使用开源系统搭建网站,数据库结构也是公开的(目前有很多现成的系统可以直接搭建论坛,电商网站,虽然方便快捷但是风险是必须要认真评估的);
2.错误回显(如果将服务器的错误信息直接显示在页面上,攻击者可以通过非法参数引发页面错误从而通过错误信息了解数据库结构,Web 应用应当设置友好的错误页,一方面符合最小惊讶原则,一方面屏蔽掉可能给系统带来危险的错误回显信息);
3.盲注。防范SQL注入攻击也可以采用消毒的方式,通过正则表达式对请求参数进行验证,此外,参数绑定也是很好的手段,这样恶意的SQL会被当做SQL的参数而不是命令被执行,JDBC中的PreparedStatement 就是支持参数绑定的语句对象,从性能和安全性上都明显优于Statement。
xss (Cross Site Script,跨站脚本攻击)是向网页中注入恶意脚本在用户浏览网页时在用户浏览器中执行恶意脚本的攻击方式。跨站脚本攻击分有两种形式:
反射型攻击(诱使用户点击一个嵌入恶意脚本的链接以达到攻击的目标,目前有很多攻击者利用论坛、微博发布含有恶意脚本的URL就属于这种方式)
持久型攻击(将恶意脚本提交到被攻击网站的数据库中,用户浏览网页时,恶意脚本从数据库中被加载到页面执行,QQ邮箱的早期版本就曾经被利用作为持久型跨站脚本攻击的平台)。
CSRF 攻击(Cross Site Request Forgery,跨站请求伪造)是攻击者通过跨站请求,以合法的用户身份进行非法操作(如转账或发帖等)。CSRF的原理是利用浏览器的Cookie或服务器的Session ,盗取用户身份,其原理如下图所示。防范CSRF的主要手段是识别请求者的身份,主要有以下几种方式:
1.在表单中添加令牌(token) ;
2.验证码;
3.检查请求头中的Referer (前面提到防图片盗链接也是用的这种方式)。
令牌和验证都具有一次消费性的特征,因此在原理上一致的,但是验证码是一种糟糕的用户体验,不是必要的情况下不要轻易使用验证码,目前很多网站的做法是如果在短时间内多次提交一个表单未获得成功后才要求提供验证码,这样会获得较好的用户体验。
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。