包含的模块:
本文分为十九个模块,分别是:软件测试 基础、liunx、MySQL、web测试、接口测试、APP测试 、管理工具、Python、性能测试、selenium、lordrunner、计算机网络、组成原理、数据结构与算法、逻辑题、人力资源!!
如下图所示:
共包含400 道面试题,本文的宗旨是为读者朋友们整理一份详实而又权威的面试清单,下面一起进入主题吧。
Q1测试的策略有哪些?
参考答案:
黑盒/白盒,静态/动态,手工/自动,冒烟测试,回归测试,公测(Beta 测试的策略)
Q2、正交表测试用例设计方法的特点是什么?
参考答案:
用最少的实验覆盖最多的操作,测试用例设计很少,效率高,但是很复杂;
对于基本的验证功能,以及二次集成引起的缺陷,一般都能找出来;但是更深的
缺陷,更复杂的缺陷,还是无能为力的;
具体的环境下,正交表一般都很难做的。大多数,只在系统测试的时候使用此方
法。
Q3、描述使用 bugzilla 缺陷管理工具对软件缺陷(BUG)跟踪的管理的流程?
参考答案:
就是 Bugzilla 的状态转换图。
Q4、你觉得 bugzilla 在使用的过程中,有什么问题?
参考答案:
界面不稳定;
根据需要配置它的不同的部分,过程很烦琐。
流程控制上,安全性不好界定,很容易对他人的 Bug 进行误操作;
没有综合的评分指标,不好确认修复的优先级别。
Q5、描述测试用例设计的完整过程?
参考答案:
需求分析 需求变更的维护工作;
根据需求 得出测试需求;
逻辑覆盖、循环覆盖、同行评审、桌前检查、代码走查、代码评审、景泰数据流
分析
用户动作设计;
场景设计;
测试数据分析;
设计测试方案,评审测试方案;
方案评审通过后,设计测试用例,再对测试用例进行评审;
Q6、单元测试的策略有哪些?
参考答案:逻辑覆盖、循环覆盖、同行评审、桌前检查、代码走查、代码评审、景泰数据流
Q7、LoadRunner 分哪三部分?
参考答案:
用户动作设计;
场景设计;
测试数据分析;
Q8、LoadRunner 进行测试的流程?
参考答案:
1、 测试测试
2、 创建虚拟用户脚本
3、 创建运行场景
4、 运行测试脚本
5、 监视场景
6、 分析测试的结果
以上,最好是结合一个案例,根据以上流程来介绍。
Q9.什么是并发?在 lordrunner 中,如何进行并发的测试?集合点失败了会怎么样?
参考答案:
在同一时间点,支持多个不同的操作。
LoadRunner 中提供 IP 伪装,集合点,配合虚拟用户的设计,以及在多台电脑
上设置,可以比较好的模拟真实的并发。
集合点,即是多个用户在某个时刻,某个特定的环境下同时进行虚拟用户的操作
的。集合点失败,则集合点的才操作就会取消,测试就不能进行。
Q10、使用 QTP 做功能测试,录制脚本的时候,要验证多个用户的登录情况/查询
情况,如何操作?
参考答案:
分析用户登录的基本情况,得出一组数据,通过性测试/失败性测试的都有(根据
TC 来设计这些数据),然后录制登录的脚本,将关键的数据参数化,修改脚本,
对代码进行加强,调试脚本。
Q11、QTP 中的 Action 有什么作用?有几种?
参考答案:
Action 的作用
n 用 Action 可以对步骤集进行分组
n 步骤重组,然后被整体调用
n 拥有自己的 sheet
n 组合有相同需求的步骤,整体操作
n 具有独立的对象仓库
Action 的种类
n 可复用 Action
n 不可复用 Action
n 外部 Action
Q12、TestDirector 有些什么功能,如何对软件测试过程进行管理?
参考答案:
需求管理
n 定义测试范围
n 定义需求树
n 描述需求树的功能点
测试计划
n 定义测试目标和测试策略。
n 分解应用程序,建立测试计划树。
n 确定每个功能点的测试方法。
n 将每个功能点连接到需求上,使测试计划覆盖全部的测试需求。
n 描述手工测试的测试步骤
n 指明需要进行自动测试的功能点
测试执行
n 定义测试集合。
n 为每个测试人员制定测试任务和测试日程安排。
n 运行自动测试。
缺陷跟踪
n 记录缺陷
n 查看新增缺陷,并确定哪些是需要修正的
n 相关技术人员修改缺陷
n 回归测试
n 分析缺陷统计图表,分析应用程序的开发质量。
Q13、你所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的
区别与联系(如功能测试、性能测试……)?
参考答案:Compatibility Testing(兼容性测试),也称“Configuration
testing(配置测试)”,测试软件是否和系统的其它与之交互的元素之间兼容,如:
浏览器、操作系统、硬件等。验证测试对象在不同的软件和硬件配置中的运行情
况。
Functional testing (功能测试),也称为 behavioral testing(行为测试),根据产品特征、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。本地化软件的功能测试,用于验证应用程序或网站对目标用户能正确工作。使用适当的平台、浏览器和测试脚本,以保证目标用户的体验将足够好,就像应用程序是专门为该市场开发的一样。
Performance testing(性能测试),评价一个产品或组件与性能需求是否符合的
测试。包括负载测试、强度测试、数据库容量测试、基准测试等类型。
Q14、软件缺陷(或者叫 Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷
(Bug)记录?
参考答案:5C 标准
Q15、Beta 测试与 Alpha 测试有什么区别?
参考答案:Beta testing(β测试),测试是软件的多个用户在一个或多个用户的实
际使用环境下进行的测试。开发者通常不在测试现场
Alpha testing (α测试),是由一个用户在开发环境下进行的测试,也可以是公司
内部的用户在模拟实际操作环境下进行的受控测试
Q16、什么是数据库?
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库
Q17、什么是关系型数据库,主键,外键,索引分别是什么?
关系型数据库是由多张能互相联接的二维行列表格组成的数据库
主关键字(primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录
外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字
在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构, 它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单
Q18、写出表的增删改查SQL语法
表的创建:create table 表名 (列名1 类型 约束,列2 类型 约束…)
表的删除:drop table 表名
表的更改(结构的更改,不是记录的更新):alter table 表名 add|drop 列名|约束名
插入记录:insert into 表名…values…
更新记录:update 表名 set 列名=值 where 条件
删除记录:delete from 表名 where 条件
Q19、SQL的表连接方式有哪些?
SQL中连接按结果集分为:内连接,外连接,交叉连接
Q20、统计python 源代码文件中代码行数,去除注释,空行,进行输出?
Q21、python 调用cmd 并返回结果?
python 的 OS 模块。
OS 模块调用CMD 命令有两种方式:os.popen(),os.system(). 都是用当前进程来调用。
os.system 是无法获取返回值的。 当运行结束后接着往下面执行程序。 用法如: OS.system(“ipconfig”).
OS.popen 带返回值的,如何获取返回值。如
p=os.popen(cmd)
print p.read().得到的是个字符串。
这两个都是用当前进程来调用,也就是说它们都是阻塞式的。管道 subprocess 模块。
运行原理会在当前进程下面产生子进程。
sub=subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE)
sub.wait()
print sub.read()
Q22、冒泡排序
Q23、1,2,3,4 这 4 个数字,能组成多少个互不相同的且无重复的三位数,都是多少?
Q24、给定一个整数 N,和一个 0-9 的数 K,要求返回 0-N 中数字 K 出现的次数
代码语言:javascript复制def digitCounts(self, k, n):
count = 0
for i in range(n 1):
if i == 0 and i == k:
count = 1
while( i // 10 >= 0 and i != 0):
j = i % 10
if j == k:
count = 1
i = i //10
return count
复制代码
Q25、你如何从命令行启动Selenium RC?
// 简单的启动Selenium RC的方法是
java -jar selenium-server.jar
// 在浏览器中运行一套Selenese脚本
java -jar selenium-server.jar -htmlSuite
Q26、在我的机器端口4444不是免费的。我怎样才能使用另一个端口?
//你可以在运行selenium服务器时指定端口为 -
Java -jar selenium-server.jar -port 5555
Q27、什么是Selenium Server,它与Selenium Hub有什么不同?
Selenium Server是使用单个服务器作为测试节点的一个独立的应用程序。Selenium hub代理一个或多个Selenium的节点实例。一个hub 和多个node被称为Selenium grid。运行SeleniumServer与在同一主机上用一个hub和单个节点创建de Selenium grid类似。
Q28、性能测试有哪些分类
1.负载测试
2.压力测试
3.并发测试
4.基准测试
5.稳定性测试
6.可恢复测试
Q29、LoadRunner 的工作原理是什么?
LoadRunner 工作原理:
LoadRunner 通过模拟上千万用户实施并发负载,实时性能监控的系统行为和性能方式来确认和查找问题。
1、VuGen 发生器:捕捉用户的业务流,并最终将其录制成一个脚本:
2、控制器(Controller):
3、负载发生器(Load Generators)
4、分析器(Analysis):主要用于对测试结果进行分析。
Q30、LoadRunner进行测试的流程?
(1)测试测试
(2)创建虚拟用户脚本
(3)创建运行场景
(4)运行测试脚本
(5)监视场景
(6)分析测试的结果
以上,最好是结合一个案例,根据以上流程来介绍。
Q31、测试活动中,如果发现需求文档不完善或者不准确,怎么处理?
参考答案:
测试需求分析发现需求文档不完善或者不准确,应该立即和相关人员进行协调交
流。
Q32、阶段评审与项目评审有什么区别?
参考答案:
阶段评审对项目各阶段评审:对阶段成果和工作
项目评审对项目总体评审:对工作和产品
Q33、阐述工作版本的定义?
参考答案:
构造号: BUILD
Q34、什么是桩模块?什么是驱动模块?
参考答案:
桩模块:被测模块调用模块
驱动模块调用被测模块
Q35、你认为做好测试用例工作的关键是什么?
参考答案:
需求和设计文档的理解程度,对系统的熟悉程度
由于文章篇幅问题,没有四百道面试题也放不上来,400 道面试题完整版获取