草庐IT

2022最新整理软件测试常见面试题附答案

软件测试资料侠~ 2023-05-18 原文

包含的模块:

本文分为十九个模块,分别是:软件测试 基础、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 出现的次数

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、你认为做好测试用例工作的关键是什么?
参考答案:
需求和设计文档的理解程度,对系统的熟悉程度

由于文章篇幅问题,没有四百道面试题也放不上来,需要全部的面试题可以

【留言 ‘软件测试’】

有关2022最新整理软件测试常见面试题附答案的更多相关文章

  1. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  2. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  3. ruby - Ruby 的 Hash 在比较键时使用哪种相等性测试? - 2

    我有一个围绕一些对象的包装类,我想将这些对象用作散列中的键。包装对象和解包装对象应映射到相同的键。一个简单的例子是这样的:classAattr_reader:xdefinitialize(inner)@inner=innerenddefx;@inner.x;enddef==(other)@inner.x==other.xendenda=A.new(o)#oisjustanyobjectthatallowso.xb=A.new(o)h={a=>5}ph[a]#5ph[b]#nil,shouldbe5ph[o]#nil,shouldbe5我试过==、===、eq?并散列所有无济于事。

  4. ruby - RSpec - 使用测试替身作为 block 参数 - 2

    我有一些Ruby代码,如下所示:Something.createdo|x|x.foo=barend我想编写一个测试,它使用double代替block参数x,这样我就可以调用:x_double.should_receive(:foo).with("whatever").这可能吗? 最佳答案 specify'something'dox=doublex.should_receive(:foo=).with("whatever")Something.should_receive(:create).and_yield(x)#callthere

  5. ruby - Sinatra:运行 rspec 测试时记录噪音 - 2

    Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/

  6. ruby-on-rails - 迷你测试错误 : "NameError: uninitialized constant" - 2

    我遵循MichaelHartl的“RubyonRails教程:学习Web开发”,并创建了检查用户名和电子邮件长度有效性的测试(名称最多50个字符,电子邮件最多255个字符)。test/helpers/application_helper_test.rb的内容是:require'test_helper'classApplicationHelperTest在运行bundleexecraketest时,所有测试都通过了,但我看到以下消息在最后被标记为错误:ERROR["test_full_title_helper",ApplicationHelperTest,1.820016791]test

  7. ruby - 即使失败也继续进行多主机测试 - 2

    我已经构建了一些serverspec代码来在多个主机上运行一组测试。问题是当任何测试失败时,测试会在当前主机停止。即使测试失败,我也希望它继续在所有主机上运行。Rakefile:namespace:specdotask:all=>hosts.map{|h|'spec:'+h.split('.')[0]}hosts.eachdo|host|begindesc"Runserverspecto#{host}"RSpec::Core::RakeTask.new(host)do|t|ENV['TARGET_HOST']=hostt.pattern="spec/cfengine3/*_spec.r

  8. ruby-on-rails - 如何使辅助方法在 Rails 集成测试中可用? - 2

    我在app/helpers/sessions_helper.rb中有一个帮助程序文件,其中包含一个方法my_preference,它返回当前登录用户的首选项。我想在集成测试中访问该方法。例如,这样我就可以在测试中使用getuser_path(my_preference)。在其他帖子中,我读到这可以通过在测试文件中包含requiresessions_helper来实现,但我仍然收到错误NameError:undefinedlocalvariableormethod'my_preference'.我做错了什么?require'test_helper'require'sessions_hel

  9. ruby-on-rails - Cucumber 是否只是 rspec 的包装器以帮助将测试组织成功能? - 2

    只是想确保我理解了事情。据我目前收集到的信息,Cucumber只是一个“包装器”,或者是一种通过将事物分类为功能和步骤来组织测试的好方法,其中实际的单元测试处于步骤阶段。它允许您根据事物的工作方式组织您的测试。对吗? 最佳答案 有点。它是一种组织测试的方式,但不仅如此。它的行为就像最初的Rails集成测试一样,但更易于使用。这里最大的好处是您的session在整个Scenario中保持透明。关于Cucumber的另一件事是您(应该)从使用您的代码的浏览器或客户端的角度进行测试。如果您愿意,您可以使用步骤来构建对象和设置状态,但通常您

  10. ruby-on-rails - 如何调试 cucumber 测试? - 2

    我有:When/^(?:|I)follow"([^"]*)"(?:within"([^"]*)")?$/do|link,selector|with_scope(selector)doclick_link(link)endend我打电话的地方:Background:GivenIamanexistingadminuserWhenIfollow"CLIENTS"我的HTML是这样的:CLIENTS我一直收到这个错误:.F-.F--U-----U(::)failedsteps(::)nolinkwithtitle,idortext'CLIENTS'found(Capybara::Element

随机推荐