web测试工程师.docx
《web测试工程师.docx》由会员分享,可在线阅读,更多相关《web测试工程师.docx(19页珍藏版)》请在冰点文库上搜索。
web测试工程师
1.语言类:
要求:
熟悉C/Java等面向对象的开发语言
1、面向对象程序设计有哪些特点?
参考答案:
面向对象程序设计以需求当中的数据作为中心,来进行设计,具有良好的代码重用性。
封装性:
也叫数据隐藏,用户无需知道部工作流程,只要知道接口和操作就可以的,C++中一般用类来实现封装。
继承性:
一种支持重用的思想,在现有的类型派生出新的子类,例如新型电视机在原有型号的电视机上增加若干中功能而得到,新型电视机是原有电视机的派生,继承了原有电视机的属性,并增加了新的功能。
多态性:
指在一般类中定义的属性或行为,被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。
动态联编:
指一个计算机程序自身彼此关联的过程,按照联编所进行的阶段不同,可分为两种不同的联编方法:
静态联编和动态联编。
2.描述软件产生存泄露的原因以及检查方式。
(可以结合一种开发语言进行描述)(5分)
参考答案:
存泄露的原因,主要是由于开发过程当中申请了计算机资源(例如对象、存等),但是使用资源完成以后没有及时释放资源导致的。
例如在C语言当中使用了malloc申请了存,但是未使用free来释放存。
3.编程输出1/1+1/3+1/5+……+1/99的和。
(用Java)
参考答案:
publicclassSum{
publicstaticvoidmain(String[]args){
floatsum=0.0f;
for(floati=1.0f;i<=99.0f;i=i+2)
{
sum=1/i+sum;
}
System.out.println(sum);
}
}
4、全局变量和局部变量有什么区别?
实怎么实现的?
操作系统和编译器是怎么知道的?
答:
主要的区别是变量的作用围不同。
全局变量在全局围都有效,而局部变量只在声明此变量的作用域有效。
全局变量是属于实例的,在初始化对象的时候初始化,生命周期与该实例相同,之所以叫全局变量是因为该实例中的所有方法或属性都可以引用;局部变量是在实例方法或static块中,生命周期从调用该方法到该方法退出,并且只有该方法能够引用之。
全局变量和局部变量的区别是在存储器中位置不同,具体说,全局变量存储在数据段中,局部变量都有可能,一般来说在堆栈段
5、请问C++的类和C里面的STRUCT有什么区别?
答:
除关键字不同外(class,struct)的唯一区别是,
结构在默认情况下的成员是公共(public)的,
而类在默认情况下的成员是私有(private)的。
在C++中,结构是特殊的类。
class是从struct发展而来的。
之所以将struct和class都保留,是因为:
1、提出class是为了强调一种概念。
2、保留struct是为了照顾到大多数人的习惯。
struct和class是有区别的。
struct保证成员按照声明顺序在存中存储。
class不保证等等
而它们都可以继承,实现多态等。
但也有少许区别。
比如:
structA{};
classB:
A{};//private继承
structC:
B{};//public继承
这是由于class默认是private,struct默认是public。
一般说来,struct和class可以换用(当然要注意一些语法问题)。
而struct更适合看成是一个数据结构的实现体,
class更适合看成是一个对象的实现体,
对私有成员进行保护,还提供与外界的接口。
从习惯上更多class。
6、全局变量和局部变量有什么区别?
实怎么实现的?
操作系统和编译器是怎么知道的?
答:
主要的区别是变量的作用围不同。
全局变量在全局围都有效,而局部变量只在声明此变量的作用域有效。
全局变量是属于实例的,在初始化对象的时候初始化,生命周期与该实例相同,之所以叫全局变量是因为该实例中的所有方法或属性都可以引用;局部变量是在实例方法或static块中,生命周期从调用该方法到该方法退出,并且只有该方法能够引用之。
全局变量和局部变量的区别是在存储器中位置不同,具体说,全局变量存储在数据段中,局部变量都有可能,一般来说在堆栈段
2.测试类
要求:
了解B/S软件测试机制;能熟练使用自动化测试工具:
tomcatwebspherewebblogicQCRunnerLoadrunnerQTPSeleium等等;了解测试流程:
白盒测试,自动化测试,性能测试,测试流程
1、简述一下C/S模式和B/S模式的区别?
参考答案:
c/s是客户端/服务器架构
b/s是浏览器/服务器架构
C/S模式有以下特点:
1.C/S模式将应用与服务分离,系统具有稳定性和灵活性
2.C/S模式配备的是点对点的结构模式,适用于局域网,有可靠的安全性
3.由于客户端实现与服务器端的直接连接,没有中间环节,因此响应速度快
4.在C/S模式中,作为客户机的计算机都要安装客户机程序,一旦软件系统升级,每台客户机都要安装客户机程序,系统升级和维护较为复杂
B/S模式有以下特点:
1.系统开发、维护、升级方便
每当服务器应用程序升级时,只要在服务器上升级服务应用程序即可,用户计算机上的浏览器软件不需要修改,系统开发和升级维护方便
2.B/S模式具有很强的开放性
在B/S模式下,用户通过通用的浏览器进行访问,系统开放性好
3.B/S模式的结构易于扩展
由于Web的平台无关性,B/S模式的结构可以任意扩展,可以从包含一台服务器和几个用户的小型系统扩展成为拥有成千上万个用户的大型系统
4.用户使用方便
B/S模式的应用软件都是基于Web浏览器的,而Web浏览器的界面是类似的。
对于无用户交换功能的页面。
用户接触的界面都是一致的,用户使用方便
2.一条软件缺陷记录都包含哪些容?
参考答案:
bug编号bug发现人bug发现时间bug状态
bug严重程度bug所属版本bug所属模块
bug处理人bug修改日期bug简单描述
bug详细描述bug相关附件bug初步分析
3.一套完整的测试应该由哪些阶段组成?
参考答案:
测试计划、测试设计与开发、测试实施、测试评审与测试结论
4.请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。
(10分)
参考答案:
黑盒测试:
把测试对象当成一个黑盒子,测试人员完全不考虑逻辑结构和部特性,只依据程式的需求说明书来检查程式的功能是否满足它的功能说明。
白盒测试:
把测试对象当成一个透明的盒子,允许测试人员利用程序部逻辑结构及相关信息,设计或选择测试用例,对程式所有逻辑路径进行测试。
单元测试:
白盒测试的一种,对软件设计中的单元模块进行测试。
集成测试:
在单元测试的基础上,对单元模块之间的连接和组装w进行测试。
系统测试:
在所有都考虑的情况下,对系统进行测试。
验收测试:
第三方进行的确认软件满足需求的测试
5.你所熟悉的测试用例设计方法有哪些?
分别以具体的例子说明在实际测试中的应用。
参考答案:
1.等价类划分
划分等价类:
等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:
测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:
有效等价类和无效等价类.
2.边界值分析法
边界值分析方法是对等价类划分方法的补充。
测试工作经验告诉我,大量的错误是发生在输入或输出围的边界上,而不是发生在输入输出围的部.因此针对各种边界情况设计测试用例,可以查出更多的错误.
使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.
3.错误推测法
基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法.
错误推测方法的基本思想:
列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例.例如,在单元测试时曾列出的许多在模块中常见的错误.以前产品测试中曾经发现的错误等,这些就是经验的总结.还有,输入数据和输出数据为0的情况.输入表格为空格或输入表格只有一行.这些都是容易发生错误的情况.可选择这些情况下的例子作为测试用例.
4.因果图方法
前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系,相互组合等.考虑输入条件之间的相互组合,可能会产生一些新的情况.但要检查输入条件的组合不是一件容易的事情,即使把所有输入条件划分成等价类,他们之间的组合情况也相当多.因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例.这就需要利用因果图(逻辑模型).因果图方法最终生成的就是判定表.它适合于检查程序输入条件的各种组合情况.
6.系统测试的策略有那些?
功能测试,性能测试,可靠性测试,负载测试,易用性测试,强度测试,安全测试,配置测试,安装测试,卸载测试,文挡测试,故障恢复测试,界面测试,容量测试,兼容性测试,分布测试,可用性测试,
7.设计系统测试计划需要参考的项目文挡有那些?
软件测试计划,软件需求工件和迭代计划。
8.白盒测试有几种方法?
总体上分为静态方法和动态方法两大类。
静态:
关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义
动态:
语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。
9.测试结束的标准是什么?
用例全部测试。
覆盖率达到标准。
缺陷率达到标准。
其他指标达到质量标准
10.软件的缺陷等级应如何划分?
A类—严重错误,包括以下各种错误:
1.由于程序所引起的死机,非法退出2.死循环3.数据库发生死锁4.因错误操作导致的程序中断5.功能错误6.与数据库连接错误7.数据通讯错误
B类—较严重错误,包括以下各种错误:
1.程序错误2.程序接口错误3.数据库的表、业务规则、缺省值未加完整性等约束条件
C类—一般性错误,包括以下各种错误:
1.操作界面错误(包括数据窗口列名定义、含义是否一致)2.打印容、格式错误3.简单的输入限制未放在前台进行控制4.删除操作未给出提示5.数据库表中有过多的空字段
D类—较小错误,包括以下各种错误:
1.界面不规2.辅助说明描述不清楚3.输入输出不规4.长操作未给用户提示5.提示窗口文字未采用行业术语6.可输入区域和只读区域没有明显的区分标志
E类—测试建
11.您在从事性能测试工作时,是否使用过一些测试工具?
如果有,请试述该工具的工作原理,并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的。
有使用过loadrunner,该工具能够录制测试人员的操作步骤,然后对这个操作步骤模拟出多个用户来播放出来。
A,VisuralUserGenertor创建脚本,选择协议,录制操作,编辑操作。
B,中央控制器(Gontroller)调度虚拟用户。
创建场景,选择脚本,建立虚拟用户,设计shedual,设置ipspoofer。
C,运行脚本。
分析shedual。
D,分析测试结果。
12.什么是兼容性测试?
兼容性测试侧重哪些方面?
参考答案:
兼容测试主要是检查软件在不同的硬件平台、软件平台上是否可以正常的运行,即是通常说的软件的可移植性。
兼容的类型,如果细分的话,有平台的兼容,网络兼容,数据库兼容,以及数据格式的兼容。
兼容测试的重点是,对兼容环境的分析。
通常,是在运行软件的环境不是很确定的情况下,才需要做兼容。
根据软件运行的需要,或者根据需求文档,一般都能够得出用户会在什么环境下使用该软件,把这些环境整理成表单,就得出做兼容测试的兼容环境了。
兼容和配置测试的区别在于,做配置测试通常不是CleanOS下做测试,而兼容测试多是在CleanOS的环境下做的。
13.你所熟悉的软件测试类型都有哪些?
请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性能测试……)?
参考答案:
CompatibilityTesting(兼容性测试),也称“Configurationtesting(配置测试)”,测试软件是否和系统的其它与之交互的元素之间兼容,如:
浏览器、操作系统、硬件等。
验证测试对象在不同的软件和硬件配置中的运行情况。
Functionaltesting(功能测试),也称为behavioraltesting(行为测试),根据产品特征、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。
本地化软件的功能测试,用于验证应用程序或对目标用户能正确工作。
使用适当的平台、浏览器和测试脚本,以保证目标用户的体验将足够好,就像应用程序是专门为该市场开发的一样。
Performancetesting(性能测试),评价一个产品或组件与性能需否符合的测试。
包括负载测试、强度测试、数据库容量测试、基准测试等类型。
14、.你用过什么缺陷管理工具流程是什么有什么能改进的
答:
我所熟悉的是TD
流程是讲测试计划、方案、测试用例录入TD,在TD上执行测试用例记录缺陷,并对bug进行跟踪。
15、你有没有用过QTP做项目,QTP的工作原理
答:
我有用QTP做过项目
QTP的工作原理是执行重复的手动测试,
首先制定测试计划再根据测试计划创建测试脚本,然后对脚本进行优化增强测试脚本的能接下来运行脚本分析测试的结果
16、详细的描述一个测试活动完整的过程。
1.项目经理通过和客户的交流,完成需求文档,由开发人员和测试人员共同完成需求文档的评审,评审的容包括:
需求描述不清楚的地方和可能有明显冲突或者无法实现的功能的地方。
项目经理通过综合开发人员,测试人员以及客户的意见,完成项目计划。
然后sqa进入项目,开始进行统计和跟踪
2.开发人员根据需求文档完成需求分析文档,测试人员进行评审,评审的主要容包括是否有遗漏或者双方理解不同的地方。
测试人员完成测试计划文档,测试计划包括的容上面有描述。
3.测试人员根据修改好的需求分析文档开始写测试用例,同时开发人员完成概要设计文档,详细设计文档。
此两份文档成为测试人员撰写测试用例的补充材料。
4.测试用例完成后,测试和开发需要进行评审。
5.测试人员搭建环境
6.开发人员提交第一个版本,可能存在未完成功能,需要说明。
测试人员进行测试,发现bug后提交给bugzilla。
7.开发提交第二个版本,包括bugfix以及增加了部分功能,测试人员进行测试。
8.重复上面的工作,一般是3-4个版本后bug数量减少,达到出货的要求。
9.如果有客户反馈的问题,需要测试人员协助重现以及回归测试。
17、黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点!
答:
黑盒测试的优点有:
1)比较简单,不需要了解程序部的代码及实现;
2)与软件的部实现无关;
3)从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;
4)基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;
5)在做软件自动化测试时较为方便。
黑盒测试的缺点有:
1)不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;
2)自动化测试的复用性较低。
白盒测试的优点有:
帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题。
白盒测试的缺点有:
1)程序运行会有很多不同的路径,不可能测试所有的运行路径;
2)测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;
3)系统庞大时,测试开销会非常大。
18、常用的软件测试工具有哪些?
答:
开源测试管理工具:
Bugfree、Bugzilla、TestLink、mantis
开源功能自动化测试工具:
Watir、Selenium、MaxQ、WebInject
开源性能自动化测试工具:
Jmeter、OpenSTA、DBMonster、TPTEST、WebApplicationLoadSimulator
[TestDirector]:
企业级测试管理工具,也是业界第一个基于Web的测试管理系统。
[QualityCenter]:
基于Web的测试管理工具,可以组织和管理应用程序测试流程的所有阶段,包括指定测试需求、计划测试、执行测试和跟踪缺陷。
[QuickTestProfessional]:
用于创建功能和回归测试。
[LoadRunner]:
预测系统行为和性能的负载测试工具。
19、
20、
21
3.操作系统(linux)
要求:
熟悉linux;能熟练使用linux命令;熟悉shell脚本能熟练使用jsp,PHP,python脚本语言
1、在Linux系统中,一个文件的访问权限是755,其含义是什么?
参考答案:
755表示该文件所有者对该文件具有读、写、执行权限,该文件所有者所在组用户及其他用户对该文件具有读和执行权限。
2、Linux中,如何从root用户切换到普通用户?
参考答案:
su
suuser1切换到user1,但切换后的当前目录还是root访问的目录
su–user1切换到user1,并且当前目录切换到user1的根目录下(/home/user1/)
3、Windows操作系统中PATH环境变量的作用是什么?
参考答案:
PATH是Windows操作系统环境变量,PATH作用是用户在命令行窗口执行一个命令,则在PATH变量设置的目录下依次寻找该命令或对应的执行文件,若找到,则执行,若没有找到,则命令行窗口返回无效命令。
4、说出4种及以上常用的操作系统及其主要的应用围(微软的操作系统除外)。
参考答案:
Linux(RedHat、SUSE、Debian、TruboLinux):
主要用于搭建各类服务器
MACOS:
苹果机的操作系统,用于图像处理
Unix(AIX:
IBM服务器的专用操作系统;
Solaris:
Sun操作系统;FreeBSD、NetBSD)
5.linux下安装foo.rmp,写出安装,卸载命令;怎么查看挂载状态;查看磁盘情况;查看端口;只有tar.gz包,怎么安装
答:
Rpm–ivhfoo.rmp
Rpm–efoo.rmp
Ps–aux
6.解释下列命令的含义,ls-la|greplog;ps-ef;kill-92543
答:
ls-la|greplog查找当前目录含有log的文件
Ps–ef查看所有进程
Kill-92543强制终止2543进程
7.8086是多少位的系统?
在数据总线上是怎么实现的?
答:
16位系统,8位数据传送,通过总线控制逻辑实现数据线和地址线的分时复用.
8086是Inter的16位微处理器
有16根数据线和20根地址线,它既能处理16位数据,也能处理8位数据
部数据总线都是按16位设计的,单外部数据总线只有8条.
8.
9.
4.网页
要求:
熟悉浏览器机制;对HTML,JS,JavaScript对Backbone,ReactJS,Angular,Vue等框架有一定了解
1.index.htm属于什么属性的网页?
答:
静态网页
2.CSS样式有哪几种?
答:
样式,嵌式,式,导入式
3.li元素中包含img元素的时候,IE中img下面多出了5px左右的空白,该如何处理?
答:
设置img的margin:
0;
4.目前常用的WEB标准静态页面语言是什么?
答:
xhtml
5.div与span的区别是什么?
答:
div是块元素,span是行或联元素
6.xhtml和html有什么区别?
HTML是一种基本的WEB网页设计语言,XHTML是一个基于XML的置标语言
最主要的不同:
XHTML元素必须被正确地嵌套。
XHTML元素必须被关闭。
标签名必须用小写字母。
XHTML文档必须拥有根元素。
7.Doctype严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?
答:
用于声明文档使用那种规(html/Xhtml)一般为严格过度基于框架的html文档
加入XMl声明可触发,解析方式更改为IE5.5拥有IE5.5的bug
8.行元素有哪些?
块级元素有哪些?
CSS的盒模型?
块级元素:
divph1h2h3h4formul
行元素:
abbrispaninputselect
Css盒模型:
容,border,margin,padding
9.CSS引入的方式有哪些?
link和import的区别是?
联嵌外链导入
区别:
同时加载
前者无兼容性,后者CSS2.1以下浏览器不支持
Link支持使用javascript改变样式,后者不可
10.CSS选择符有哪些?
哪些属性可以继承?
优先级算法如何计算?
联和important哪个优先级高?
标签选择符类选择符id选择符
继承不如指定Id>class>标签选择
后者优先级高
11.前端页面有哪三层构成,分别是什么?
结构层Html表示层CSS行为层js
12.怎么样才能让层显示在FLASH之上呢?
答:
解决的办法是给FLASH设置透明:
5.数据库
要求:
能熟练使用sqlOracle数据库
1.为管理业务培训信息,建立3个表:
S(S#,SN,SD,SA)S#,SN,SD,SA分别代表学号,学员,所属单位,学员年龄
C(C#,CN)C#,CN分别代表课程编号,课程名称
SC(S#,C#,G)S#,C#,G分别代表学号,所选的课程编号,学习成绩
(1)使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和?
答:
selects#,snfromswhereS#in(selectS#fromc,scwherec.c#=sc.c#and=’税收基础’)
(2)使用标准SQL嵌套语句查询选修课程编号为’C2’的学员和所属单位?
答:
selectsn,sdfroms,scwheres.s#=sc.s#andsc.c#=’c2’
(3)使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员和所属单位?
答:
selectsn,sdfromswheres#notin(selects#fromscwherec#=’c5’)
(4)查询选修了课程的学员人数
答:
select学员人数=count(distincts#)fromsc
(5)查询选修课程超过5门的学员学号和所属单位?
答:
selectsn,sdfromswheres#in(selects#fromscgroupbys#havingcount(distinctc#)>5)
2编辑sql语句时,年月日型时间字段如何表达
答:
加引号
3执行SQL脚本