常见的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应
用。
1.
等价类划分
常见的软件测试面试题划分等价类
:
等价类是指某个输入域的子集合
.
在该子集合中
,
各个输入数
据对于揭露程序中的错误都是等效的
.
并合理地假定
:
测试某等价类的代表值就等于对这一类其它值的
测试
.
因此
,
可以把全部输入数据合理划分为若干等价类
,
在每一个等价类中取一个数据作为测试的输入
条件
,
就可以用少量代表性的测试数据
.
取得较好的测试结果
.
等价类划分可有两种不同的情况
:
有效等
价类和无效等价类
.
2.
边界值分析法
边界值分析方法是对等价类划分方法的补充。测试工作经验告诉我
,
大量的错误是发生在输入或输
出范围的边界上
,
而不是发生在输入输出范围的内部
.
因此针对各种边界情况设计测试用例
,
可以查出更
多的错误
.
使用边界值分析方法设计测试用例
,
首先应确定边界情况
.
通常输入和输出等价类的边界
,
就是应着
重测试的边界情况
.
应当选取正好等于
,
刚刚大于或刚刚小于边界的值作为测试数据
,
而不是选取等价类
中的典型值或任意值作为测试数据
.
3.
错误推测法
基于经验和直觉推测程序中所有可能存在的各种错误
,
从而有针对性的设计测试用例的方法
.
错误推测方法的基本思想
:
列举出程序中所有可能有的错误和容易发生错误的特殊情况
,
根据他们
选择测试用例
.
例如
,
在单元测试时曾列出的许多在模块中常见的错误
.
以前产品测试中曾经发现的
错误等
,
这些就是经验的总结。还有
,
输入数据和输出数据为
0
的情况。输入表格为空格或输入表格只
有一行
.
这些都是容易发生错误的情况。可选择这些情况下的例子作为测试用例
.
4.
因果图方法
前面介绍的等价类划分方法和边界值分析方法
,
都是着重考虑输入条件
,
但未考虑输入条件之间的
联系
,
相互组合等
.
考虑输入条件之间的相互组合
,
可能会产生一些新的情况
.
但要检查输入条件的组
合不是一件容易的事情
,
即使把所有输入条件划分成等价类
,
他们之间的组合情况也相当多
.
因此必须
考虑采用一种适合于描述对于多种条件的
组合
,
相应产生多个动作的形式来考虑设计测试用例
.
这就需
要利用因果图(逻辑模型)
.
因果图方法最终生成的就是判定表
.
它适合于检查程序输入条件的各种组
合情况
.
5.
正交表分析法
有时候,可能因为大量的参数的组合而引起测试用例数量上的激增,同时,这些测试用例并没有明
显的优先级上的差距,而测试人员又无法完成这么多数量的测试,就可以通过正交表来进行缩减一些用
例,从而达到尽量少的用例覆盖尽量大的范围的可能性。
6.
场景分析方法
名人堂:众名人带你感受他们的驱动人生
马云任志强李嘉诚柳传志史玉柱
指根据用户场景来模拟用户的操作步骤,
这个比较类似因果图,
但是可能执行的深度和可行性更好。
您认为做好测试用例设计工作的关键是什么?
白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果
黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以
最少的用例在合理的时间内发现最多的问题
详细的描述一个测试活动完整的过程。
1.
项目经理通过和客户的交流,完成需求文档,由开发人员和测试人员共同完成需求文档的评审,
评审的内容包括:需求描述不清楚的地方和可能有明显冲突或者无法实现的功能的地方。项目经理通过
综合开发人员,测试人员以及客户的意见,完成项目计划。然后
sqa
进入项目,开始进行统计和跟踪
2.
开发人员根据需求文档完成需求分析文档,
测试人员进行评审,
评审的主要内容包括是否有遗漏
或者双方理解不同的地方。测试人员完成测试计划文档,测试计划包括的内容上面有描述。
3.
测试人员根据修改好的需求分析文档开始写测试用例,
同时开发人员完成概要设计文档,
详细设
计文档。此两份文档成为测试人员撰写测试用例的补充材料。
4.
测试用例完成后,测试和开发需要进行评审。
5.
测试人员搭建环境
6.
开发人员提交第一个版本,可能存在未完成功能,需要说明。测试人员进行测试,发现
bug
后提
交给
bugzilla
。
7.
开发提交第二个版本,包括
bug fix
以及增加了部分功能,测试人员进行测试。
8.
重复上面的工作,一般是
3-4
个版本后
bug
数量
减少,达到出货的要求。
9.
如果有客户反馈的问题,需要测试人员协助重现以及回归测试。
注:
SQA
的缩写是
Software Quality Assurance(
软件质量保证
)
软件质量保证(
SQA
)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践
和方法能够正确地被所有项目所采用。软件质量保证的目的是使软件过程对于管理人员来说是可见的。
它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。软件质量保证组在项目开始时就一
起参与建立计划、标准和过程。这些将使软件项目满足机构方针的要求。
SQA
素质要求有:
1.
过程为中心:应当站在过程的角度来考虑问题,只要保证了过程,
QA
就尽到了责
任。
2.
服务精神:为项目组服务,帮助项目组确保正确执行过程
。
3.
了解过程:深刻了解企业的工程,
并具有一定的过程管理理论知识
。
4.
了解开发:对开发工作的基本情况了解,能够理解项目的活动。
5.
沟通技巧:善于沟通,能够营造良好的气氛,避免审计活动成为一种找茬活动。
以往是否曾经从事过性能测试工作?请尽可能的详细描述您以往的性能测试工作的完整过程。
曾经做过一套网管系统的性能测试,主要测试该软件在同时管理大量终端的情况下,在响应时间,
cpu/
磁盘
/
内存等参数是否满足要求。
也曾经做过软交换系统的呼叫性能测试,
主要是测试软交换系统在有大量呼叫的情况下,
响应时间,
呼叫成功率,
cpu/
磁盘
/
内存等参数是否满足设计要求。
您在从事性能测试工作时,是否使用过一些测试工具?如果有,请试述该工具的工作原理,并以一个具
体的工作中的例子描述该工具是如何在实际工作中应用的。
测试网管系统中,使用的
mimic
来模拟终端,能够大量的节省成本。
测试软交换系统的时候,使用的
prolab
来模拟终端并发送呼叫软交换,他完成了同时数百人才能
完成的摘机拨号工作,主要工作原理是产生一些符合要求的
ip
包并发送给软交换系统,同时对软交换
系统的回应进行处理,决定下一步动作。
您认为性能测试工作的目的是什么?做好性能测试工作的关键是什么?
主要是保障在大量用户的情况下,服务能正常使用。
在您以往的工作中,一条软件缺陷(或者叫
bug
)记录都包含了哪些内容?如
何提交高质量的软件缺陷
(
bug
)记录?
1.
在传统的
bugzilla
中,
bug
描述应该包括以下的信息
2.
和
bug
产生对应的软件版本
3.
开发的接口人员
4. bug
的优先级
5. bug
的严重程度
6. bug
可能属于的模块,如果不能确认,可以用开发人员来判断
7. bug
标题,需要清晰的描述现象
8. bug
描述,需要尽量给出重新
bug
的步骤
9. bug
附件中能给出相关的日志和截图。
高质量的
bug
记录就是指很容易理解的
bug
记录,所以,对于描述的要求高,能提供的信息多且准
确,很好的帮助开发人员定位。
1
、
软件测试的原则是什么?
2
、软件测试的
V
模型?
3
、画出
bug
的跟踪状态图?
4
、描述下
oracle
中得
SGA
是什么?
5
、输入三个整数,判断他是不是有效的三角形,设计下测试用例?
6
、一个查找对话框,设计下测试用例?
7
、
SQL
语句中
having
的作用?
8
、
文件传输过程,设计下测试用例?
9
、黑盒测试用例的设计的方法?
10
、描述下常用的测试工具?
11
、描述下测试活动完整的过程?
12
、描述下
loadrunner
和
QTP
的区别?
13
、一个杯子,设计下测试用例?
14
、描述下内连接在什么时候下应用?
15
、左连接和右连接有什么区别?
16
、
distinct
是什么意思?
17
、描述下一个软件项目的流程?
18
、描述下你怎么理解黑盒测试的?
19
、
bugfree
、
QC
、
TD
你认为三者有什么区别?
20
、一个网上订单提交的过程。设计下测试用例?
21
、描述下功能测试、性能测试、系统测试、集成测试的区别及联系?
22
、给一个
C++
的程序,画出它的流程图。
23
、描述下软件工程中软件测试的重要性?
24
、测试一个程序,并发用户为
50
个,在
Loadrunner
中怎么设置?
25
、描述下
Loadrunner
测试过程?
26
、
Loadrunner
在录制脚本时,对于那种加密的密码,录制完成后,会产生乱码,你在脚本增强时,
怎么样让其解码?
27
、在用
Loadrunner
测试的时候,首先要选择的就是录制的协议,假设一个程序,既是
B/S
的程序,
页面中还嵌入
Javalet
的内容,在录
制时,你选择什么协议
?
28
、为什么要使用存储过程?在程序中怎么调用存储过程?
29
、
bug
的状态有哪些?
30
、写一个语句,去除重复项?
31
、一个
bug
描述都包括哪些内容?
32
、怎么样提交高质量的
bug
?
33
、把
A
库的数据移动
B
库中,怎么实现?
34
、包括
A
表和
B
表中所有的行并消除重复行,应用哪个关键字?
35
、
.Net
的程序怎么搭建?
36
、会不会搭建测试
bugfree
、
QC
或者
TD
?怎么搭建?
37
、了解中间件吗?
38
、在
QC
或者
TD
中,会不会对字段进行维护?
39
、
Oracle
中转换日期的函数是什么?
40
、数据库设计三大范式?
性能测试
?
1.
如何理解
TPS
?
?
2.
如何理解线程调用?
?
3.
如何理解响应时间?
?
4.
如何理解性能建模?(可分类回答)
?
5.
如何理解响应时间、
TPS
曲线和用户之间的关系?
?
6.
在
LoadRunner
中为什么要设置思考时间和
pacing
?
应用服务器
?
1.
如何理解
J2EE
的系统架构?
?
2.
如何理解
J2EE
应用服务器的容器?
?
3.
如何理解内存泄露?如何定位
JAVA
类的应用的内存泄露?如何定位
C
语言编写
的应用的内存泄露?
?
4.
如果用纯
JAVA
的应用调用
J2EE
应用服务器的容器资源会出现什么结果?需要如
何维护容器资源?(说明原理即可)
?
5.
如何定位
JAVA
的方法调用消耗的时间?
(不通过在源代码中加时间戳的方式)
?
?
6.
如何定位
C
语言中的函数调用消耗的时间?
?
7.
如何监控
J2EE
应用服务器?(可以用一个具体的应用服务器做例子)
数据库
?
1.
如何理解数据库架构?(可以用一个数据库做例子)
?
2. SQL
语句在数据库中的执行分成几步,每一步都做什么?(可以用一个数据库做
例子)
?
3.
如何跟踪
SQL
的执行时间和内存的消耗?(可以用一个数据库做例子)
?
4.
如何监控数据库?监控能得到什么数据?(可以用一个数据库做例子)
?
5.
如何定位死锁问题?如何定位热块问题?如何监控日志切换?
(可以用一个数据
库做例子)
?
6.
有几种手段可以改变执行计划?(可以用一个数据库做例子)
操作系统
?
1.
如何判断
CPU
、内存、磁盘的瓶颈?
?
2.
如何理解
CPU
、内存、磁盘之间的关系?
?
3.
如何理解
paging in/paging out
?
?
4.
如何监控操作系统的资源?(可以用一个操作系统做例子)
?
5.
如何理解内存管理和线程调度?(可以用一个操作系统做例子)
?
6.
如何理解
CSwitch
?(可以用一个操作系统做例子)
?
7.
如何理解磁盘
IO
?(可以用一个操作系统做例子)
网络
?
1.
如何定位数据包的传输在网络上消耗的时间?
?
2.
如何理解纯路由和
NAT
的区别?
性能测试工具
?
1.
解释
LoadRunner
的工作原理。
?
2.
如何理解
LoadRunner
里的关联?
?
3.
如何理解性能压力工具?
?
4.
如何理解虚拟用户?(可以用一个工具做例子)
?
5.
如果理解业务到脚本的转化?(可以用一个工具做例子)
?
6.
如何做到业务统计数据到场景的转化?(可以用一个工具做例子)
一般测试流程:
1.
需求分析阶段:只要就是对业务的学习,分析需求点。
2.
测试计划阶段:测试组长就要根据
SOW(
工作说明书
)
开始编写《测试计划》,其中包括人
员,软件硬件资源,测试点,集成顺序,进度安排和风险识别等内容。
3.
测试设计阶段:测试方案一般由对需求很熟的高资深的测试工程师设计,测试方案要求
根据《
SRS
》上的每个需求点设计出包括需求点简介,测试思路和详细测试方法三部分的方
案。《测试方案》编写完成后也需要进行评审。
4.
测试方案阶段:主要是对测试用例和规程的设计。测试用例是根据《测试方案》来编写
的,通过《测试方案》阶段,测试人员对整个系统需求有了详细的理解。这时开始编写用
例才能保证用例的可执行和对需求的覆盖。测试用例需要包括测试项,用例级别,预置条
件,操作步骤和预期结果。其中操作步骤和预期结果需要编写详细和明确。测试用例应该
覆盖测试方案,而测试方案又覆盖了测试需求点,这样才能保证客户需求不遗漏。同样,
测试用例也需要评审。
5.
测试执行阶段:执行测试用例,及时提交有质量的
Bug
和测试日报,测试报告等相关文
档。
流程:
需求分析→测试计划→测试设计→测试环境搭建→测试执行→测试记录→缺陷管理→软件
评估→
RTM
.
测试工具:
C/S
及
B/S
架构相关的软件产品,那么对不同操作系统,如
Windows
系列、
unix
、
linux
甚
至苹果
OS
等
测试环境都是必须的
常用的软件测试工具分为:
[
开源测试工具
]
:
开源测试管理工具:
Bugfree
、
Bugzilla
、
TestLink
、
mantis
开源功能自动化测试工具:
Watir
、
Selenium
、
MaxQ
、
WebInject
常见的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应
用。
1.
等价类划分
常见的软件测试面试题划分等价类
:
等价类是指某个输入域的子集合
.
在该子集合中
,
各个输入数
据对于揭露程序中的错误都是等效的
.
并合理地假定
:
测试某等价类的代表值就等于对这一类其它值的
测试
.
因此
,
可以把全部输入数据合理划分为若干等价类
,
在每一个等价类中取一个数据作为测试的输入
条件
,
就可以用少量代表性的测试数据
.
取得较好的测试结果
.
等价类划分可有两种不同的情况
:
有效等
价类和无效等价类
.
2.
边界值分析法
边界值分析方法是对等价类划分方法的补充。测试工作经验告诉我
,
大量的错误是发生在输入或输
出范围的边界上
,
而不是发生在输入输出范围的内部
.
因此针对各种边界情况设计测试用例
,
可以查出更
多的错误
.
使用边界值分析方法设计测试用例
,
首先应确定边界情况
.
通常输入和输出等价类的边界
,
就是应着
重测试的边界情况
.
应当选取正好等于
,
刚刚大于或刚刚小于边界的值作为测试数据
,
而不是选取等价类
中的典型值或任意值作为测试数据
.
3.
错误推测法
基于经验和直觉推测程序中所有可能存在的各种错误
,
从而有针对性的设计测试用例的方法
.
错误推测方法的基本思想
:
列举出程序中所有可能有的错误和容易发生错误的特殊情况
,
根据他们
选择测试用例
.
例如
,
在单元测试时曾列出的许多在模块中常见的错误
.
以前产品测试中曾经发现的
错误等
,
这些就是经验的总结。还有
,
输入数据和输出数据为
0
的情况。输入表格为空格或输入表格只
有一行
.
这些都是容易发生错误的情况。可选择这些情况下的例子作为测试用例
.
4.
因果图方法
前面介绍的等价类划分方法和边界值分析方法
,
都是着重考虑输入条件
,
但未考虑输入条件之间的
联系
,
相互组合等
.
考虑输入条件之间的相互组合
,
可能会产生一些新的情况
.
但要检查输入条件的组
合不是一件容易的事情
,
即使把所有输入条件划分成等价类
,
他们之间的组合情况也相当多
.
因此必须
考虑采用一种适合于描述对于多种条件的
组合
,
相应产生多个动作的形式来考虑设计测试用例
.
这就需
要利用因果图(逻辑模型)
.
因果图方法最终生成的就是判定表
.
它适合于检查程序输入条件的各种组
合情况
.
5.
正交表分析法
有时候,可能因为大量的参数的组合而引起测试用例数量上的激增,同时,这些测试用例并没有明
显的优先级上的差距,而测试人员又无法完成这么多数量的测试,就可以通过正交表来进行缩减一些用
例,从而达到尽量少的用例覆盖尽量大的范围的可能性。
6.
场景分析方法
名人堂:众名人带你感受他们的驱动人生
马云任志强李嘉诚柳传志史玉柱
指根据用户场景来模拟用户的操作步骤,
这个比较类似因果图,
但是可能执行的深度和可行性更好。
您认为做好测试用例设计工作的关键是什么?
白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果
黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以
最少的用例在合理的时间内发现最多的问题
详细的描述一个测试活动完整的过程。
1.
项目经理通过和客户的交流,完成需求文档,由开发人员和测试人员共同完成需求文档的评审,
评审的内容包括:需求描述不清楚的地方和可能有明显冲突或者无法实现的功能的地方。项目经理通过
综合开发人员,测试人员以及客户的意见,完成项目计划。然后
sqa
进入项目,开始进行统计和跟踪
2.
开发人员根据需求文档完成需求分析文档,
测试人员进行评审,
评审的主要内容包括是否有遗漏
或者双方理解不同的地方。测试人员完成测试计划文档,测试计划包括的内容上面有描述。
3.
测试人员根据修改好的需求分析文档开始写测试用例,
同时开发人员完成概要设计文档,
详细设
计文档。此两份文档成为测试人员撰写测试用例的补充材料。
4.
测试用例完成后,测试和开发需要进行评审。
5.
测试人员搭建环境
6.
开发人员提交第一个版本,可能存在未完成功能,需要说明。测试人员进行测试,发现
bug
后提
交给
bugzilla
。
7.
开发提交第二个版本,包括
bug fix
以及增加了部分功能,测试人员进行测试。
8.
重复上面的工作,一般是
3-4
个版本后
bug
数量
减少,达到出货的要求。
9.
如果有客户反馈的问题,需要测试人员协助重现以及回归测试。
注:
SQA
的缩写是
Software Quality Assurance(
软件质量保证
)
软件质量保证(
SQA
)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践
和方法能够正确地被所有项目所采用。软件质量保证的目的是使软件过程对于管理人员来说是可见的。
它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。软件质量保证组在项目开始时就一
起参与建立计划、标准和过程。这些将使软件项目满足机构方针的要求。
SQA
素质要求有:
1.
过程为中心:应当站在过程的角度来考虑问题,只要保证了过程,
QA
就尽到了责
任。
2.
服务精神:为项目组服务,帮助项目组确保正确执行过程
。
3.
了解过程:深刻了解企业的工程,
并具有一定的过程管理理论知识
。
4.
了解开发:对开发工作的基本情况了解,能够理解项目的活动。
5.
沟通技巧:善于沟通,能够营造良好的气氛,避免审计活动成为一种找茬活动。
以往是否曾经从事过性能测试工作?请尽可能的详细描述您以往的性能测试工作的完整过程。
曾经做过一套网管系统的性能测试,主要测试该软件在同时管理大量终端的情况下,在响应时间,
cpu/
磁盘
/
内存等参数是否满足要求。
也曾经做过软交换系统的呼叫性能测试,
主要是测试软交换系统在有大量呼叫的情况下,
响应时间,
呼叫成功率,
cpu/
磁盘
/
内存等参数是否满足设计要求。
您在从事性能测试工作时,是否使用过一些测试工具?如果有,请试述该工具的工作原理,并以一个具
体的工作中的例子描述该工具是如何在实际工作中应用的。
测试网管系统中,使用的
mimic
来模拟终端,能够大量的节省成本。
测试软交换系统的时候,使用的
prolab
来模拟终端并发送呼叫软交换,他完成了同时数百人才能
完成的摘机拨号工作,主要工作原理是产生一些符合要求的
ip
包并发送给软交换系统,同时对软交换
系统的回应进行处理,决定下一步动作。
您认为性能测试工作的目的是什么?做好性能测试工作的关键是什么?
主要是保障在大量用户的情况下,服务能正常使用。
在您以往的工作中,一条软件缺陷(或者叫
bug
)记录都包含了哪些内容?如
何提交高质量的软件缺陷
(
bug
)记录?
1.
在传统的
bugzilla
中,
bug
描述应该包括以下的信息
2.
和
bug
产生对应的软件版本
3.
开发的接口人员
4. bug
的优先级
5. bug
的严重程度
6. bug
可能属于的模块,如果不能确认,可以用开发人员来判断
7. bug
标题,需要清晰的描述现象
8. bug
描述,需要尽量给出重新
bug
的步骤
9. bug
附件中能给出相关的日志和截图。
高质量的
bug
记录就是指很容易理解的
bug
记录,所以,对于描述的要求高,能提供的信息多且准
确,很好的帮助开发人员定位。
1
、
软件测试的原则是什么?
2
、软件测试的
V
模型?
3
、画出
bug
的跟踪状态图?
4
、描述下
oracle
中得
SGA
是什么?
5
、输入三个整数,判断他是不是有效的三角形,设计下测试用例?
6
、一个查找对话框,设计下测试用例?
7
、
SQL
语句中
having
的作用?
8
、
文件传输过程,设计下测试用例?
9
、黑盒测试用例的设计的方法?
10
、描述下常用的测试工具?
11
、描述下测试活动完整的过程?
12
、描述下
loadrunner
和
QTP
的区别?
13
、一个杯子,设计下测试用例?
14
、描述下内连接在什么时候下应用?
15
、左连接和右连接有什么区别?
16
、
distinct
是什么意思?
17
、描述下一个软件项目的流程?
18
、描述下你怎么理解黑盒测试的?
19
、
bugfree
、
QC
、
TD
你认为三者有什么区别?
20
、一个网上订单提交的过程。设计下测试用例?
21
、描述下功能测试、性能测试、系统测试、集成测试的区别及联系?
22
、给一个
C++
的程序,画出它的流程图。
23
、描述下软件工程中软件测试的重要性?
24
、测试一个程序,并发用户为
50
个,在
Loadrunner
中怎么设置?
25
、描述下
Loadrunner
测试过程?
26
、
Loadrunner
在录制脚本时,对于那种加密的密码,录制完成后,会产生乱码,你在脚本增强时,
怎么样让其解码?
27
、在用
Loadrunner
测试的时候,首先要选择的就是录制的协议,假设一个程序,既是
B/S
的程序,
页面中还嵌入
Javalet
的内容,在录
制时,你选择什么协议
?
28
、为什么要使用存储过程?在程序中怎么调用存储过程?
29
、
bug
的状态有哪些?
30
、写一个语句,去除重复项?
31
、一个
bug
描述都包括哪些内容?
32
、怎么样提交高质量的
bug
?
33
、把
A
库的数据移动
B
库中,怎么实现?
34
、包括
A
表和
B
表中所有的行并消除重复行,应用哪个关键字?
35
、
.Net
的程序怎么搭建?
36
、会不会搭建测试
bugfree
、
QC
或者
TD
?怎么搭建?
37
、了解中间件吗?
38
、在
QC
或者
TD
中,会不会对字段进行维护?
39
、
Oracle
中转换日期的函数是什么?
40
、数据库设计三大范式?
性能测试
?
1.
如何理解
TPS
?
?
2.
如何理解线程调用?
?
3.
如何理解响应时间?
?
4.
如何理解性能建模?(可分类回答)
?
5.
如何理解响应时间、
TPS
曲线和用户之间的关系?
?
6.
在
LoadRunner
中为什么要设置思考时间和
pacing
?
应用服务器
?
1.
如何理解
J2EE
的系统架构?
?
2.
如何理解
J2EE
应用服务器的容器?
?
3.
如何理解内存泄露?如何定位
JAVA
类的应用的内存泄露?如何定位
C
语言编写
的应用的内存泄露?
?
4.
如果用纯
JAVA
的应用调用
J2EE
应用服务器的容器资源会出现什么结果?需要如
何维护容器资源?(说明原理即可)
?
5.
如何定位
JAVA
的方法调用消耗的时间?
(不通过在源代码中加时间戳的方式)
?
?
6.
如何定位
C
语言中的函数调用消耗的时间?
?
7.
如何监控
J2EE
应用服务器?(可以用一个具体的应用服务器做例子)
数据库
?
1.
如何理解数据库架构?(可以用一个数据库做例子)
?
2. SQL
语句在数据库中的执行分成几步,每一步都做什么?(可以用一个数据库做
例子)
?
3.
如何跟踪
SQL
的执行时间和内存的消耗?(可以用一个数据库做例子)
?
4.
如何监控数据库?监控能得到什么数据?(可以用一个数据库做例子)
?
5.
如何定位死锁问题?如何定位热块问题?如何监控日志切换?
(可以用一个数据
库做例子)
?
6.
有几种手段可以改变执行计划?(可以用一个数据库做例子)
操作系统
?
1.
如何判断
CPU
、内存、磁盘的瓶颈?
?
2.
如何理解
CPU
、内存、磁盘之间的关系?
?
3.
如何理解
paging in/paging out
?
?
4.
如何监控操作系统的资源?(可以用一个操作系统做例子)
?
5.
如何理解内存管理和线程调度?(可以用一个操作系统做例子)
?
6.
如何理解
CSwitch
?(可以用一个操作系统做例子)
?
7.
如何理解磁盘
IO
?(可以用一个操作系统做例子)
网络
?
1.
如何定位数据包的传输在网络上消耗的时间?
?
2.
如何理解纯路由和
NAT
的区别?
性能测试工具
?
1.
解释
LoadRunner
的工作原理。
?
2.
如何理解
LoadRunner
里的关联?
?
3.
如何理解性能压力工具?
?
4.
如何理解虚拟用户?(可以用一个工具做例子)
?
5.
如果理解业务到脚本的转化?(可以用一个工具做例子)
?
6.
如何做到业务统计数据到场景的转化?(可以用一个工具做例子)
一般测试流程:
1.
需求分析阶段:只要就是对业务的学习,分析需求点。
2.
测试计划阶段:测试组长就要根据
SOW(
工作说明书
)
开始编写《测试计划》,其中包括人
员,软件硬件资源,测试点,集成顺序,进度安排和风险识别等内容。
3.
测试设计阶段:测试方案一般由对需求很熟的高资深的测试工程师设计,测试方案要求
根据《
SRS
》上的每个需求点设计出包括需求点简介,测试思路和详细测试方法三部分的方
案。《测试方案》编写完成后也需要进行评审。
4.
测试方案阶段:主要是对测试用例和规程的设计。测试用例是根据《测试方案》来编写
的,通过《测试方案》阶段,测试人员对整个系统需求有了详细的理解。这时开始编写用
例才能保证用例的可执行和对需求的覆盖。测试用例需要包括测试项,用例级别,预置条
件,操作步骤和预期结果。其中操作步骤和预期结果需要编写详细和明确。测试用例应该
覆盖测试方案,而测试方案又覆盖了测试需求点,这样才能保证客户需求不遗漏。同样,
测试用例也需要评审。
5.
测试执行阶段:执行测试用例,及时提交有质量的
Bug
和测试日报,测试报告等相关文
档。
流程:
需求分析→测试计划→测试设计→测试环境搭建→测试执行→测试记录→缺陷管理→软件
评估→
RTM
.
测试工具:
C/S
及
B/S
架构相关的软件产品,那么对不同操作系统,如
Windows
系列、
unix
、
linux
甚
至苹果
OS
等
测试环境都是必须的
常用的软件测试工具分为:
[
开源测试工具
]
:
开源测试管理工具:
Bugfree
、
Bugzilla
、
TestLink
、
mantis
开源功能自动化测试工具:
Watir
、
Selenium
、
MaxQ
、
WebInject