性能测试面试(性能测试面试常见问题)

来源网友投稿 717 2022-12-22

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。
本篇文章给大家谈谈性能测试面试,以及性能测试面试常见问题对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享性能测试面试的知识,其中也会对性能测试面试常见问题进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

性能测试面试题,求正确答案

1.什么是负载测试?什么是性能测试?
负载测试是一种性能测试指数据在超负荷环境中运行性能测试面试,程序是否能够承担 在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。
性能测试主要使用场景测试软件系统的性能是否满足生产性能的要求,包括负载测试,强度测试,数据库容量测试,基准测试以及竞争(并发,用户)测试2.性能测试包含性能测试面试了哪些测试(至少举出3种) 包括负载测试,强度测试,数据库容量测试,基准测试以及竞争测试
3.简述性能测试的步骤 第一步性能测试面试:需求分析、计划测试,设计测试用例 第二步:测试设计和开发(测试脚本录制及调试,测试场景设计) 第三步:测试执行(测试环境搭建,场景部署,场景执行,监视场景) 第四步:测试结果分析,性能问题定位,测试报告评估
4.简述使用Loadrunner的步骤 制定性能测试计划-》使用Vuser录制调试脚本VuGen-》用Loadrunner Controller设置场景-》运行场景-》监视场景by Loadrunner online runtime等-》分析测试结果
5.什么时候可以开始执行性能测试? 功能测试通过性能测试面试;一般需要进行性能测试的系统,都是用户量比较大、业务使用比较频繁、比较重要的功能模块。 6.LoadRunner由哪些部件组成? Virtual User Generator-生成用于“Controlier”部署的Vusers LoadRunner Controlier-产生压力和搜集测试结果数据 LoadRunner Analysis-通过图表分析工具来编译和显示测试结果
7.你使用LoadRunner的哪个部件来录制脚本? 使用Virtual User Generator录制测试脚本
8.LoadRunner的哪个部件可以模拟多用户并发下回放脚本? LoadRunner的Controller组件。
9.什么是集合点?设置集合点有什么意义?Loadrunner中设置集合点的函数是哪个? 在性能测试过程中,需要模拟大量用户在同一时刻,访问系统并同时操作某一任务,可以通过配置集合点来实现,多个用户同时进行某操作性能测试面试; 集合点可以在服务器上创建密集的用户负载,使LoadRunner能够测试服务器在负载状态下的性能。 设置集合点函数:lr_rendezvous("Meeting"); // Meeting是集合点名称
10.什么是场景?场景的重要性有哪些?如何设置场景? 场景用于模拟用户实际业务操作; LoadRunner中场景有手工场景和面向目标的场景。 设置场景:选择场景类型、设置运行时设置、模拟用户数、加减压方式、持续时间,配置负载生成器。
11.请解释一下如何录制web脚本? 利用Virtual User Generator录制测试脚本,录制步骤:
1、选择合适的协议-Web(Http/Html),
2、设置录制选项(HTML-based Script/URL-based Script)
3、开始录制
12.为什么要创建参数?如何创建参数?
A12:LoadRunner在录制脚本的时候,只是忠实的记录了所有从客户端发送到服务器的数据,而在进行性能测试的时候,为了更接近真实的模拟现实应用,对于某些信息需要每次提交不同的数据,或者使用多个不同的值进行循环输入。这时,在LoadRunner中就可以进行参数化设置,以使用多个不同的值提交应用请求。 【参数化】:使用指定数据源中的值来替换脚本录制生成的语句中的参数。 【参数化好处】 ● 减少脚本的大小 ● 提供使用不同的值执行脚本的能力,更加真实的模拟现实应用。 【参数化步骤】 ● 用参数替换Vuser脚本中的常量值 ● 为参数设置属性和数据源 13.什么是关联?请解释一下自动关联和手动关联的不同。
A13:【关联的定义】简单的说:就是把脚本中某些写死(固定)的数据,转变成动态的数据,或者说将前面语句的结果数据保存下来,然后在后面的语句提交请求时使用这些数据。 【需要关联的前提条件】: 客户端需要从服务器端返回数据中获取部分数据,并将这些部分数据处理后作为自己下一次请求的一部分发出。 【自动关联与手工关联的不同】:自动关联是在脚本录制过程中,VuGen会根据已经制定好的规则,自动找出需要关联的值或脚本录制完成后,执行脚本一次,通过Correlation Studio自动找出需要关联的数据,并建立关联;而手动关联是需要录制两份相同业务流程的脚本,输入的数据要相同,利用WinDiff工具,找出两份脚本之间不同之处,也就是需要关联的数据,再通过web_reg_save_param函数手动建立关联,将脚本中用到关联的数据参数化。
14.你如何找出哪里需要关联?请给一些你所在项目的实例。
A14: 1、录制两份相同业务流程的脚本,输入的数据要相同
2、利用WinDiff工具,找出两份脚本之间不同之处,也就是需要关联的数据
3、通过web_reg_save_param函数手动建立关联,将脚本中用到关联的数据参数化。 通过录制两份脚本,进行对比,可知jsessionid、sap-ext-sid、sap-wd-cltwndid、sap-wd-tstamp需要进行关联。
15.你在哪里设置自动关联选项? 录制选项中进行设置
16.哪个函数是用来截取虚拟用户脚本中的动态值?(手工管联)
A16:Web_reg_save_param函数主要根据需要做关联的动态数据前面和后面的固定字符串来识别、提取动态数据,所以在做关联时,需要找出动态数据的左、右边界字符串。
1.函数原型: int web_reg_save_param (const char *ParamName, <List of Attributes, LAST);
2.参数说明: ParamNam:存放动态数据的参数名称 List of Attributes:其它属性,包含Notfound、LB、RB、RelFrameID、Search、ORD、SaveOffset、Convert、SaveLen。
17.你在VUGen中何时选择关闭日志?何时选择标准和扩展日志? 在脚本运行调试成功后应关闭日志。创建发送函数和消息日志时用标准日志,创建警告和其他信息是用扩展日志。
18.你如何调试LoadRunner脚本? 在VuGen设置断点breakpoints,然后使用单步跟踪Run Step by Step,输出调试日志
19你在LR中如何编写自定义函数?请给出一些你在以前进行的项目中编写的函数。 Give me few functions you wrote in your previous project? - Before we create the User Defined functions we need to create the external library (DLL) with the function. We add this library to VuGen bin directory. Once the library is added then we assign user defined function as a parameter. The function should have the following format: __declspec (dllexport) char* <function name(char*, char*) lr_load_dll("user32.dll"); Examples of user defined functions are as follows:GetVersion, GetCurrentTime, GetPltform are some of the user defined functions used in my earlier project.
20.在运行设置下你能更改那些设置? pacing: 每个虚拟用户脚本包括三个部分:vuser_init, Run (Actions), vuser_end. 当你运行脚本的时候你能通知,虚拟用户重复执行run部分,每一个重复做为一个iteration. 注意: vuser_init 和vuser_end 部分是不被重复的。Think Time Settings: 虚拟用户think time仿效一个真实用户在活动中等待的时间,例如:当一个用户从服务器接受数据的时候,在响应前这个用户需要等待数秒来接受数据,这个被耽搁的时间就是think time。 Error Handling:你能指定一个虚拟用户在脚本执行期间如何处理错误,默认的,当一个虚拟用户发现一个错误的时候,它会随着下一次重复继续下去,你能使用这个设置来通知虚拟用户当发生错误的时候是否继续执行脚本。 Run Logic:迭代次数
21.你在不同的环境下如何设置迭代? A21:在“Run Time Settings”中设置
22.你如何在负载测试模式下执行功能测试? A22:在负载测试模式下,可以通过同时运行数个虚拟用户,通过增加虚拟用户数,确定服务器在多大的负载量下,仍然可以正常运行,我一般进行核心功能操作,验证核心功能运行是否正常。
23.什么是逐步递增?你如何来设置? A23:虚拟用户数随着负载时间逐渐增加,可以帮助确定系统响应时间减慢的准确时间点。 可以在“加压”选项卡中进行设置:如下图所示,将设置更改为:“每 30 秒启动 2 个 Vuser”
24.以线程方式运行的虚拟用户有哪些优点?
A24:以线程方式运行的虚拟用户,在默认情况下,Controller为每50个用户仅启动一个mmdrv进程,而每个用户都按线程方式来运行,这些线程用户将共享父进程的内存,这就节省了大量内存空间,从而可以在一个负载生成器上运行更多的用户。
25.当你需要在出错时停止执行脚本,你怎么做? 取消运行设置中的“Continue on error”复选框。 或者使用lr_abort函数。
26.响应时间和吞吐量之间的关系是什么? A26:当系统吞吐量未达到系统处理极限时,系统性能不会衰减,交易平均响应时间一般也不会递增,当系统达到吞吐量极限时,客户端交易会在请求队列中排队等待,等待的时间会记录在响应时间中,故交易平均响应时间一般会递增。
27.说明一下如何在LR中配置系统计数器? A27:以windows资源监控为例,可右键点“添加度量”,输入系统IP、选择平台类型,确定即可,详细参加LR自带操作手册^_^。 对于监控不同类型的操作系统,需要做一些准备工作,可参见监控操作系统资源部分。
28.你如何识别性能瓶颈? A28:性能瓶颈分为:硬件瓶颈和软件瓶颈性能瓶颈可以通过监控器来分析发现,这些监控器包括应用服务器监控、web服务器监控、数据库服务器监控器和网络监控器;它们可以帮助分析导致响应时间增加的原因;性能度量一般包括响应时间、吞吐量、每秒点击率、网络延迟等等。
29.如果web服务器、数据库以及网络都正常,问题会出在哪里?
A29:问题可能出在系统本身或应用服务器、或为应用编写的代码编写中。
30.如何发现web服务器的相关问题?
A30:可以利用web资源监控器发现web服务器相关问题,在场景执行过程中,可以利用监控器分析web服务器吞吐量、每秒点击率、每秒HTTP响应数、每秒页面下载数,以及web服务器硬件资源使用情况等。
31.如何发现数据库的相关问题?
A31:可以通过数据库监控器和数据资源图发现数据库相关的问题,例如在运行Controller之前,可以指定需要度量的资源,之后可以根据监控的数据,分析数据库相关的问题
32.解释所有web录制配置?
A32:选择录制协议、设置录制选项、选择浏览器、选择存放路径、开始录制。
33.解释一下覆盖图和关联图的区别?
A33:覆盖图:合并两个图的内容,使用同一个X轴,合并图左Y轴显示当前图的值,合并图右Y轴显示被合并图的值。 关联图:当前活动图的Y轴变为合并图的X轴,被合并图的Y轴变成合并图的Y轴。
34.你如何设计负载?标准是什么?
A34:负载测试计划多少用户数量、使用什么类型的机器、以及在什么环境下进行。主要基于两个重要的文档,任务分布图和事务信息,任务分布图告诉我们在负载时间段内,某一个事务使用的用户数,高峰使用率及低峰使用率均来自该文档; 事务信息告诉我们事务名及优先级,在设计场景时可以参考。
35.Vuser_init中包括什么内容?
A35:Vuser_init中包含在脚本执行过程中只需执行一次的脚本。一般来说,所有需要初始化的都可以放在vuser_init里面,比如登录。
36. Vuser_end中包括什么内容?
A36:vuser_end中一般包含退出的过程,比如退出系统,主要在脚本执行完成或停止时运行,在设置了迭代次数时,vuser_end和vuser_int均只执行一次。
37.什么是think time?think_time有什么用?
A37:思考时间:用户在各步骤之间停下来进行思考的时间,由于用户基于其经验水平和目标而与应用程序进行交互操作,因此技术水平更高的用户工作起来可能会比新用户要快。 通过启用思考时间,可以使 Vuser在负载测试期间更准确地模拟其对应的真实世界用户。
38.标准日志和扩展日志的区别是什么?
A38:标准日志:脚本执行过程中,将函数集及信息发送到日志文件中 扩展日志:可以将详细的脚本执行信息输出到日志文件中,可以选择以下三种扩展日志信息: ● 参数替换:脚本运行过程中,可以将参数及当前参数值输出到日志文件中 ● 服务器返回的数据:将服务器返回给客户端的数据输出到日志文件中 ● 高级跟踪:所有的虚拟用户信息和函数调用输出到日志文件中
39.解释以下函数及他们的不同之处。
A39:lr_debug_message:发送调试信息到输出窗口或业务监控日志文件中 lr_output_message:发送日志信息到输出窗口或业务监控日志文件中 lr_error_message:发送错误信息到输出窗口或业务监控日志文件中 lrd_stmt:赋予一个SQL语句用于处理 lrd_fetch:获取结果集中的下一行数据
40.什么是吞吐量?
A40:客户端每秒从服务器接收到的数据,或系统服务器每秒能处理通过的交易数。一般随着虚拟用户数的增加,吞吐量也增加,说明网络带宽比较充足,反之,吐过随着虚拟用户数的增加,吞吐量比较平稳,呈直线状态,则说明网络带宽成为瓶颈,限制了数据传输。
41.场景设置有哪几种方法?
A41:面向目标的场景设置和手动场景

软件测试面试题:WEB+网络|接口测试|性能测试|自动化测试


1. http代码表,常考题目

404:找不到资源

500:服务器内部错误,无法完成请求。

501:服务器不支持请求的功能,无法完成请求。

502:充当网关或代理的服务器,从远端服务器接收到了一个无效的请求。

301:永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI,今后任何新的请求都应使用新的URI代替。

302:临时移动。与301类似。但资源只是临时被移动,客户端应继续使用原有URI。

200:成功。

2. TCP/IP四层网络模型

链路层、网络层、传输层、应用层。

3. TCP/UDP区别?

TCP: 可靠传输协议,需要三次握手连接,有确认重传机制,特点是可靠、准确、有拥塞控制,缺点就是比较慢,传输量比较小,适用于升级、下载;一句话:TCP是可靠的传输。

UDP: 不可靠传输协议,面向非连接的协议,优点是传输量大、速度快,缺点是已丢失、没有拥塞控制,适用于直播、视频等。一句话:UDP是不可靠的传输。

4. html css js运行的先后顺序是什么?

界面加载的时候先加载html在加载css最后加载js

5. session和cookie的区别是什么

1. session存放在服务器端用来校验客户端的身份

2. cookie存放在客户端,每次从客户端往服务器发请求时,将cookie带到服务器端,用来校验客户端的身份



1. 怎么用JMeter测试接口?

如果使用JMeter进行接口测试:

1) 测试前了解需求,根据接口规格说明书梳理业务;

2) 接下来设计用例,分析接口的入参和出参,分清楚有哪些有效输入和无效输入,设计用例(原则:用最少的用例覆盖所有有效输入,针对每一个无效的输入设计一个测试用例,如果有错误码没有覆盖到,还要对每个未覆盖的错误码分别设计一个用例);

3) 准备测试数据,比如:测试所需的账号、密码、key 等信息;

4) 打开JMeter,创建一个线程组,根据接口类型,填写好对应的接口地址和请求方式等;

5) 参数化配置,添加配置元件CSV Data Set Config,定义变量,并准备CSV格式的数据,变量的引用用${变量名}的格式;

6) 添加断言来判断测试结果的正确性,用得最多的是响应断言;

7) 添加监听器,比如查看结果树,对测试结果进行监听;

8) 运行测试用例;

9) 查看监听器结果,来判断用例的执行是成功还是失败,针对失败的用例,分析其失败原因;

10) 针对测试中发现的问题,给开发提单,直到问题最终解决。

11) 最后输出测试报告。

2. 怎么用Postman测试接口?

如果使用Postman测试接口:

其中1,2,3点相同,工具使用方面则比JMeter跟简单,工具的主要的步骤是添加对应的请求、填写主机URL及入参、添加测试套、运行测试套、分析结果出报告。

3. 在JMeter上如何把上一个请求的结果作为下一个请求的参数?

使用正则表达式提取器提取上一个请求的响应中的信息,保存一个引用名称比如abc,在下一个请求的参数中,用${abc}的格式来引用提取的结果。

常用的正则表达式格式:(.+?),其中.表示匹配任意字符串,+表示只匹配一次,?表示匹配到就停下来。



一般是我们功能测试完成最后两三天时间测试性能。

1、先是分析需求计算出并发数,TPS,响应时间和 CPU,内存,硬盘和网络IO这些指标。

2、制定测试方案,主要包括环境,计划和具体测试那些场景(如可靠性,并发,负载,压力测试等)

3、根据场景用Badboy录制脚本,导出为JMeter工具支持的脚本。

4、用JMeter工具打开脚本,进行脚本调试,加一些断言,监听器,参数化等。

5、接下来执行性能测试,然后主要收集监听器和收集服务器CPU,内存,硬盘和网络IO等分析是否满足需求,如果满足就输出性能测试报告。

6、如果指标不能满足,反馈给开发进行调优。调优后继续测试,一直到满足需求后最终输出测试报告。



1. Python怎么定义一个函数?

你可以定义一个由自己想要功能的函数,以下是简单的规则:

1) 函数代码块以def关键词开头,后接函数标识符名称和圆括号()。

2) 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。

3) 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。

4) 函数内容以冒号起始,并且缩进

5) return[表达式]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None


2 Python切片

3. Python上用过什么库/模块?

webdriver:定位和操作元素

time:设置等待时间

ActionChains:动作链,完成鼠标的相关操作

Keys:键盘的相关操作

WebDriverWait:设置显式等待

Expect_Conditions:针对单个元素,设置显式等待的场景

PIL:截图

Select:下拉选择框的操作

unittest python:自带的单元测试框架

HTMLTestRunner:运行脚本,生成报告

ddt:实现数据驱动测试,行为和数据分离

4. 你做过自动化测试吗?

我在上一份工作中,公司去年下半年也开始规划做Web 自动化,采用Python作为开发语言,通过Selenium WebDriver定位和操作页面元素,自动化框架用的是unittest。我主要负责写测试脚本。

假设一个测试团队有5个人:1资深(测试经理)+2~3个中级(自动化+手动)+1 个初级(手动)

5. 使用什么工具进行的自动化测试

使用的工具是Selenium(Web自动化工具)

6. 用的什么编程语言

用的Python

7. Selenium 用的是哪个版本的的?Python用的是哪个版本的?

用的是selenium 3.11.0和Python2.7.10

8. Selenium的工作原理?

1)对html元素定位

2)模拟对第一步定位到的元素进行点击、输入、选择等操作一句话:定位元素,操作元素。

9. 元素定位方法有哪些?

要点:8种定位方法

1) 根据元素的属性值定位,比如 id、name、class、标签名、链接文字和部分链接文字;

2) 根据CSS选择器定位;

3) 根据 XPath 定位;

10. 子页面里的元素怎么定位?

先切换到框架里,然后再定位,用switch_to_frame函数根据子页面id或name,切换到子页面;定位完了如果要再定位主页面的元素,要用switch_to_default_content 函数先返回主页面。

11. 怎么定位alert弹窗?或者这样问:怎么处理JS原生窗口?

要点:主要涉及点击弹窗确认按钮、强行关闭弹窗、获取弹窗中的文字等操作。

1) 点击弹窗的确定按钮,用如下函数:

driver.switch_to_alert().accept()

2) 强行关闭,点击右上角的叉叉,用如下函数:

driver.switch_to_alert().dismiss()

3) 获取弹窗里的文字,用如下函数:

driver.switch_to_alert().text

12. 怎么运行自动化用例并生成测试报告?

以unittest为例,我通常的做法是把用例加载到测试套中,做成一个脚本,在命令窗口下运行脚本,报告的生成用第三方模块HTML TestRunner来生成。

13. 怎么定位/操作图片中的验证码?

用tesseract OCR引擎处理图片中的验证码,步骤:

(1)对整个屏幕截屏,保存成png格式的图片;

(2)在截取的图片中定位验证码图片的位置坐标;

(3)根据坐标对验证码截图;

(4)在图片中提取验证码,输入到输入框。

软件测试面试题及解答

软件测试[1]就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。下面是我为性能测试面试你整理的软件测试面试题,希望对你有所帮助!


01. 为什么要在一个团队中开展软件测试工作?

因为没有经过测试的软件很难在发布之前知道该软件的质量,就好比ISO质量认证一样,测试同样也需要质量的保证,这个时候就需要在团队中开展软件测试的工作。在测试的过程发现软件中存在的问题,及时让开发人员得知并修改问题,在即将发布时,从测试报告中得出软件的质量情况。

02. 您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长哪部分工作?

我曾经做过web测试,后台测试,客户端软件,其中包括功能测试,性能测试,用户体验测试。最擅长的是功能测试

03. 您所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性能测试……)

测试类型有:功能测试,性能测试,界面测试。

功能测试在测试工作中占的比例最大,功能测试也叫黑盒测试。是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。

界面测试,界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。而且设计良好的界面能够引导用户自己完成相应的操作,起到向导的作用。同时界面如同人的面孔,具有吸引用户的直接优势。设计合理的界面能给用户带来轻松愉悦的感受和成功的感觉,相反由于界面设计的失败,让用户有挫败感,再实用强大的功能都可能在用户的畏惧与放弃中付诸东流。

区别在于,功能测试关注产品的所有功能上,要考虑到每个细节功能,每个可能存在的功能问题。性能测试主要关注于产品整体的多用户并发下的稳定性和健壮性。界面测试更关注于用户体验上,用户使用该产品的时候是否易用,是否易懂,是否规范(快捷键之类的),是否美观(能否吸引用户的注意力),是否安全(尽量在前台避免用户无意输入无效的数据,当然考虑到体验性,不能太粗鲁的弹出警告)?做某个性能测试的时候,首先它可能是个功能点,首先要保证它的功能是没问题的,然后再考虑该功能点的性能测试

04.您认为做好测试用例设计工作的关键是什么?

白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果

黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题

05. 请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。

黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现性能测试面试了的功能是否符合要求。

白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。

软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:

1、是否有不正确或遗漏的功能?

2、在接口上,输入是否能正确的接受?能否输出正确的结果?

3、是否有数据结构错误或外部信息(例如数据文件)访问错误?

4、性能上是否能够满足要求?

5、是否有初始化或终止性错误?

软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查:

1、对程序模块的所有独立的执行路径至少测试一遍。

2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。

3、在循环的边界和运行的界限内执行循环体。

4、测试内部数据结构的有效性,等等。

单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。

单元测试是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了证明这段代码的行为和我们期望的一致。

集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。

系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。(常见的联调测试)

系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计。

验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。

验收测试是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是验收测试的任务,即软件的功能和性能如同用户所合理期待的那样。

06. 测试计划工作的目的是什么?测试计划工作的内容都包括什么?其中哪些是最重要的?

软件测试计划是指导测试过程的纲领性文件,包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。

测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。所以其中最重要的是测试测试策略和测试方法(最好是能先评审)

07. 您认为做好测试计划工作的关键是什么?

1. 明确测试的目标,增强测试计划的实用性

编写软件测试计划得重要目的就是使测试过程能够发现更多的软件缺陷,因此软件测试计划的价值取决于它对帮助管理测试项目,并且找出软件潜在的缺陷。因此,软件测试计划中的测试范围必须高度覆盖功能需求,测试方法必须切实可行,测试工具并且具有较高的实用性,便于使用,生成的测试结果直观、准确

2.坚持“5W”规则,明确内容与过程

“5W”规则指的是“What(做什么)”、“Why(为什么做)”、“When(何时做)”、“Where(在哪里)”、“How(如何做)”。利用 “5W”规则创建软件测试计划,可以帮助测试团队理解测试的目的(Why),明确测试的范围和内容(What),确定测试的开始和结束日期(When),指出测试的方法和工具(How),给出测试文档和软件的存放位置(Where)。

3.采用评审和更新机制,保证测试计划满足实际需求

测试计划写作完成后,如果没有经过评审,直接发送给测试团队,测试计划内容的可能不准确或遗漏测试内容,或者软件需求变更引起测试范围的增减,而测试计划的内容没有及时更新,误导测试执行人员。

4. 分别创建测试计划与测试详细规格、测试用例

应把详细的测试技术指标包含到独立创建的测试详细规格文档,把用于指导测试小组执行测试过程的测试用例放到独立创建的测试用例文档或测试用例管理数据库中。测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。

08. 您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。

1.等价类划分

划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.

2.边界值分析法

边界值分析方法是对等价类划分方法的补充。测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.

使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.

3.错误推测法

基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.

错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结. 还有, 输入数据和输出数据为0的情况. 输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况. 可选择这些情况下的例子作为测试用例.

4.因果图方法

前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型). 因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况.

09. 请以您以往的实际工作为例,详细的描述一次测试用例设计的完整的过程。

就说最近的这次网站功能的测试吧

首先:得到相关文档(需求文档和设计文档),理解需求和设计设计思想后,想好测试策略(测试计划简单点就OK了),考虑到测试环境,测试用例,测试时间等问题。

第二步:设计测试用例,测试策略是:把网站部分的功能点测试完,然后在进行系统测试(另外个模块呢有另一个测试人员负责,可以进行联调测试),网站模块的测试基本是功能测试和界面测试(用户并发的可能性很小,所以不考虑):这次的网站的输入数据呢是使用数据库中的某张表记录,如果表中某一数据记录中新加进来的(还没有被处理的,有个标志位),网站启动后会立刻去刷那张表,得到多条数据,然后在进行处理。处理过程中,会经历3个步骤,网站才算完成了它的任务。有3个步骤呢,就可以分别对 这3个步骤进行测试用例的设计,尽量覆盖到各种输入情况(包括数据库中的数据,用户的输入等),得出了差不多50个用例。界面测试,也就是用户看的到的地方,包括发送的邮件和用户填写资料的页面展示。

第三步:搭建测试环境(为什么这个时候考虑测试环境呢?因为我对网站环境已经很熟了,只有有机器能空于下来做该功能测试就可以做了),因为网站本身的环境搭建和其他的系统有点不同,它需要的测试环境比较麻烦,需要web服务器(Apache,tomcat),不过这次需求呢,网站部分只用到了tomcat,所以只要有tomcat即可

第四步:执行测试

10. 您以往是否曾经从事过性能测试工作?如果有,请尽可能的详细描述您以往的性能测试工作的完整过程。

是的,曾经做过网站方面的性能测试,虽然做的时间并不久(2个月吧),当时呢,是有位网站性能测试经验非常丰富的前辈带着我一起做。

性能测试类型包括负载测试,强度测试,容量测试等

负载测试:负载测试是一种性能测试指数据在超负荷环境中运行,程序是否能够承担。

强度测试: 强度测试是一种性能测试,他在系统资源特别低的情况下软件系统运行情况

容量测试:确定系统可处理同时在线的最大用户数

在网站流量逐渐加大的情况下,开始考虑做性能测试了,首先要写好性能测试计划,根据运营数据得出流量最大的页面(如果是第一次的话,一般是首页,下载页,个人帐户页流量最大,而且以某种百分比),

Web服务器指标指标:

* Avg Rps: 平均每秒钟响应次数=总请求时间 / 秒数;

* Successful Rounds:成功的请求;

* Failed Rounds :失败的请求;

* Successful Hits :成功的点击次数;

* Failed Hits :失败的点击次数;

* Hits Per Second :每秒点击次数;

* Successful Hits Per Second :每秒成功的点击次数;

* Failed Hits Per Second :每秒失败的点击次数;

* Attempted Connections :尝试链接数;

11. 您在从事性能测试工作时,是否使用过一些测试工具?如果有,请试述该工具的工作原理,并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的。

12. 您认为性能测试工作的目的是什么?做好性能测试工作的关键是什么?

13. 在您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?

14. 您以往所从事的软件测试工作中,是否使用了一些工具来进行软件缺陷(Bug)的管理?如果有,请结合该工具描述软件缺陷(Bug)跟踪管理的流程。

15. 您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?维持测试人员同开发团队中其他成员良好的人际关系的关键是什么?

16. 在您以往的测试工作中,最让您感到不满意或者不堪回首的事情是什么?您是如何来对待这些事情的?

17. 在即将完成这次笔试前,您是否愿意谈一些自己在以往的学习和工作中获得的工作经验和心得体会?(可以包括软件测试、过程改进、软件开发或者与此无关的其他方面)

18.你对测试最大的兴趣在哪里?为什么?

最大的兴趣就是测试有难度,有挑战性!做测试越久越能感觉到做好测试有多难。曾经在无忧测试网上看到一篇文章,是关于如何做好一名测试工程师。一共罗列了十一二点,有部分是和人的性格有关,有部分需要后天的努力。但除了性格有关的1、2点我没有把握,其他点我都很有信心做好它。

刚开始进入测试行业时,对测试的认识是从无忧测试网上了解到的一些资料,当时是冲着做测试需要很多技能才能做的好,虽然入门容易,但做好很难,比开发更难,虽然当时我很想做开发(学校专业课我基本上不缺席,因为我喜欢我的专业),但看到测试比开发更难更有挑战性,想做好测试的意志就更坚定了。

不到一年半的测试工作中,当时的感动和热情没有减退一点(即使环境问题以及自身经验,技术的不足,做测试的你一定也能理解)。

我觉得做测试整个过程中有2点让我觉得很有难度(对我来说,有难度的东西我就非常感兴趣),第一是测试用例的设计,因为测试的精华就在测试用例的设计上了,要在版本出来之前,把用例写好,用什么测试方法写?(也就是测试计划或测试策略),如果你刚测试一个新任务时,你得花一定的时间去消化业务需求和技术基础,业务需求很好理解(多和产品经理和开发人员沟通就能达到目的),而技术基础可就没那么简单了,这需要你自觉的学习能力,比如说网站吧,最基本的技术知识你要知道网站内部是怎么运作的的,后台是怎么响应用户请求的?测试环境如何搭建?这些都需要最早的学好。至少在开始测试之前能做好基本的准备,可能会遇到什么难题?需求细节是不是没有确定好?这些问题都能在设计用例的时候发现。

第二是发现BUG的时候了,这应该是测试人员最基本的任务了,一般按测试用例开始测试就能发现大部分的bug,还有一部分bug需要测试的过程中更了解所测版本的情况获得更多信息,补充测试用例,测试出bug。还有如何发现bug?这就需要在测试用例有效的情况下,通过细心和耐心去发现bug了,每个用例都有可能发现bug,每个地方都有可能出错,所以测试过程中思维要清晰(测试过程数据流及结果都得看仔细了,bug都在里面发现的)。如何描述bug也很有讲究,bug在什么情况下会产生,如果条件变化一点点,就不会有这个bug,以哪些最少的操作步骤就能重现这个bug,这个bug产生的规律是什么?如果你够厉害的话,可以帮开发人员初步定位问题。

19. 你的测试职业发展是什么?

测试经验越多,测试能力越高。所以我的职业发展是需要时间累积的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年累积测试经验,按如何做好测试工程师的11,12点要求自己,不断的更新自己改正自己,做好测试任务。

20. 你自认为测试的优势在哪里?

优势在于我对测试坚定不移的信心和热情,虽然经验还不够,但测试需要的基本技能我有信心在工作中得以发挥。

软件开发网 www.mscto.com

21. 你以前工作时的测试流程是什么?

公司对测试流程没有规定如何做,但每个测试人员都有自己的一套测试流程。我说下我1年来不断改正(自己总结,吸取同行的方法)后的流程吧。需求评审(有开发人员,产品经理,测试人员,项目经理)-需求确定(出一份确定的需求文档)-开发设计文档(开发人员在开始写代码前就能输出设计文档)-想好测试策略,写出测试用例-发给开发人员和测试经理看看(非正式的评审用例)-接到测试版本-执行测试用例(中间可能会补充用例)-提交bug(有些bug需要开发人员的确定(严重级别的,或突然发现的在测试用例范围之外的,难以重现的),有些可以直接录制进TD)-开发人员修改(可以在测试过程中快速的修改)-回归测试(可能又会发现新问题,再按流程开始跑)。

22. 当开发人员说不是BUG时,你如何应付?

开发人员说不是bug,有2种情况,一是需求没有确定,所以我可以这么做,这个时候可以找来产品经理进行确认,需不需要改动,3方商量确定好后再看要不要改。二是这种情况不可能发生,所以不需要修改,这个时候,我可以先尽可能的说出是BUG的依据是什么?如果被用户发现或出了问题,会有什么不良结果?程序员可能会给你很多理由,你可以对他的解释进行反驳。如果还是不行,那我可以给这个问题提出来,跟开发经理和测试经理进行确认,如果要修改就改,如果不要修改就不改。其实有些真的不是bug,我也只是建议的方式写进TD中,如果开发人员不修改也没有大问题。如果确定是bug的话,一定要坚持自己的立场,让问题得到最后的确认。

23.你为什么想离开目前的职务?

因为公司运作情况并不理想,公司需要调整部门体系,公司考虑到缩减部门人员,所以大批量的裁员(有6,7个),这是我的第一份工作,对公司也有较深的感情,因为在这里我找到了职业理想(就是测试),所以公司需要精简人员,我自愿退出。虽然很舍不得,但我将会有新的发挥能力的舞台。

24:你对我们公司了解有多少?

25:你找工作时,最重要的考虑因素为何?

工作的性质和内容是否能让我发挥所长,并不断成长。

26:为什么我们应该录取你?

您可以由我过去的工作表现所呈现的客观数据,明显地看出我全力以赴的工作态度。

27:请谈谈你个人的最大特色。

我的坚持度很高,事情没有做到一个令人满意的结果,绝不罢手。

28.白箱测试和黑箱测试是什么?什么是回归测试?

29。单元测试、集成测试、系统测试的侧重点是什么?

30。设计用例的方法、依据有那些?

31。一个测试工程师应具备那些素质和技能?

32.集成测试通常都有那些策略?

33.你用过的测试工具的主要功能、性能及其他?

34.一个缺陷测试报告的组成

35.基于WEB信息管理系统测试时应考虑的因素有哪些?

36.软件测试项目从什么时候开始,?为什么?

37.需求测试注意事项有哪些?

软件测试面试 一般都问些什么问题?

软件测试面试前的最后一波恶补!不要打没有准备的仗。
想要拿到心仪的offer,光有相应的技术水平是不够的,还是要提前做好面试题的熟悉以及学习一些面试时的技巧,否则,就算是金子也很可能会被埋没了。
下面给详细讲讲一些面试中比较常见的题吧!
1、软件测试的流程是什么?
分析:每当hr问一个问题的时候,我们都必须在脑海里先想一下他是想通过这个问题获取哪些信息,做好了这步先行工作再回答就比较稳健了。如果有工作经验,那么直接按照公司流程去答就可以了,如果你刚转行或者是才实习,那就按下面的标准回答走就行了。
回答:项目经理将项目需求文档给到开发,开发记录文档内需求不明确或者遗漏点做好准备,然后在需求评审会议上,各开发人员提出自己的疑问并解决,需求评审最终得到一份需求规格说明书。(需求评审阶段)
评审通过后,开发这边的经理就开始编写开发计划,测试经理编写测试计划,计划评审通过后开发人员进行程序的开发,测试人员开始测试用例的编写。当项目的第一个版本出来后,开发负责第二个版本的迭代,而测试这边对项目进行测试并记录追踪管理bug,直到项目迭代完毕。(产品研发阶段)
项目迭代完毕并修复大部分的bug后,测试这边开始进行总结,最终产出一份测试报告书,记录此次的测试工作及项目存在的问题。(产品发布阶段)
2、测试用例主要有哪些元素?
分析:每家公司用的模板都不尽相同,所以内容也是多种多样的,你只需要把基本的元素回答出来就行了。
回答:测试用例的主要元素有:ID、标题、模块、预置条件、操作步骤、预期结果、实际结果、是否通过等等
3、软件测试有什么策略和阶段?
分析:策略就是你是以什么样的思路去测试,或者是通过什么样的技术或者步骤去执行等等。
回答 :软件测试的策略主要有:动态、静态测试;白盒、黑盒测试。测试阶段按照研发顺序分别是:单元测试、集成测试、系统测试,有些公司还会有验收测试;(单元测试开发在调试代码时就完成,集成测试也是,但是有时测试人员也需要进行集成测试;测试人员平时主要的工作就是系统测试,验收测试是客户参与进行的测试);
4、测试用例是什么?有什么作用?
回答:测试用例实际上就是预设好一个特定的场景,让软件再这个场景中运行,以检验程序是否给出正确反应,来衡量软件是否正确满足了客户需求。
作用:
1、避免盲目测试并提高测试效率;在软件版本更新之后只需要少量修改即可开展测试工作,提高工作效率,大幅度缩短测试周期。
2、可以直观看出哪些是测试重点,测试用例是测试工作的见证,可以看到测了哪些功能,又有哪些模块没有测。
3、测试用例是量化测试工作的方法之一。
5、你平时是怎么设计测试用例的?
分析:这个问题的点主要考察是否掌握测试用例设计方法,在回答之后,HR可能会继续追问某种设计方法的概念或者实例,这时举例说明即可;如:等价类划分法就是把程序的输入域划分成等价类,从每个部分中选取少数代表性数据当做测试数据。
回答:设计测试用例一般都会使用到等价类、边界值、场景/流程法、因果图还有错误推测法;
6、你们公司的需求评审是怎么进行的?
分析:需求评审,就是对客户需求,软件各个模块之间模糊的点进行审查,排除不理解或者没有考虑到的点。
回答:需求评审,在一些分工比较明确的公司,都是由PD负责,需求确认好后再下发到开发和测试部门;分工不怎么明确的公司可能就是开发测试产品等大家坐在一起共同探讨;评审形式一般分为线上和线下两种方式,负责人一般会提前把需求文档下发到大家手上供大家整理各自的疑惑点,为后续的评审会议做准备。
7、还有什么想要问我的吗?
分析:这个问题在每个面试的尾声都会被问到,如果你直接回答没有,会让hr有种你不在意这份工作的感觉,如果你问得多了又会显得面试之前没有做好充分的准备,所以问题一般控制在2-3个就差不多。
直接说没有,会让HR觉得你不关心这个岗位,问的多了又会显得面试之前没有做好充分的准备。所以问题一般控制在两到三个比较好。
回答:
1、公司的研发团队目前是什么规模?开发和测试分别有多少人?
2、公司今后的业务方向是什么?
3、如果我入职了,我的主要工作职责是什么?
以上!

软件工程的测试面试只问些家常事表示什么?

面试是现在找工作绕不过去的一道坎性能测试面试,一次好的面试,能赢来升职加薪,一次失败的面试,就是浪费彼此的时间。今天我就结合自身经验讲一讲面试测试工程师岗位的几点面试经验。
1、面试第一环节性能测试面试:自我介绍
自我介绍是通用题,不管是面什么岗位,不管是第几面,面试官几乎都会问这道题。一般都是介绍一下个人信息,不要以为简历上写了,性能测试面试你就不说,这个一定要说的。因为大多数情况面试官没有提前看过你的简历,都是一边开始面试,一边看简历。这个时候你介绍一下你简历上的信息,有助于面试官了解你,加强面试官对你的印象。
比如
(面试官)你好,我分三部分来介绍我自己,第一部分是我的个人经历,也就是项目经验性能测试面试;第二部分是我的工作技能,第三部分是我的价值观,人生态度。
先说第一部分我的个人经历,我是张记小二哥,2000年1月1日出生于湖北,2018年毕业于山西师范大学,毕业后去了华为终端事业部做了手机测试,在那里我学习到了软件的迭代周期,项目运行流程,还有软件测试的技能。2019年,我去了微信,主要测试微信聊天功能。
再说我的个人技能,我能独立完成项目的功能测试
从需求分析,到用例编写,测试执行,测试报告,发布后风险问题跟进。
掌握测试用例的编写方法,熟练使用,等价类,边界值,错误猜测法,因果图,场景法等
测试过web段,android段,IOS端产品,对以上产品特性均有了解
独立完成过性能测试(如果没有做过,就不要说)
从需求分析,标准制定,脚本编写,脚本调优,测试执行,结果分析,bug反馈跟进整改,bug回归,都能完成。
会自动化测试(不会就不要说)
然后第三部分,是我的价值观,人生态度
我的第一条价值观是,终身学习,我觉得没有人能知道今天所学,明天会不会用得上,在快速发展的当今社会,保持持续学习,才有可能跟上时代
我的第二条价值观是,办法总比困难多,再多的困难,都是有办法解决的,多尝试几种方法
我的第三条价值观是,未来回望法,如果一件事让我犹豫不决,要不要去做,我会使用未来回望法,来给自己指路,就是假设我穿越到5年后,回望今天,这件事要不要做,做了5年后的自己会不会后悔。选择不让自己后悔的那条路就对了。
我的自我介绍就是这些,谢谢您的倾听,面试官有什么问题,请提问
2、你在工作中都使用哪些linix命令 比如查看日志命令
解题:考察基础专业知识
tail -fn 1000 test.log | grep '关键字'
参考回答:(如果问到了一个你不知道的命令,你还可以这样回答:你问的这个命令我一时没想起来,可能我之前的工作中用的频率不高,一般我操作linix 经常会使用到比如top ps chmod ls cd cat 等常用命令,在实际操作过程中,经常会出现文件没有权限的情况,这个时候就用 chmod 777 +文件名 777就是给添加了读,写,执行权限,这样简单粗暴,速度快。)
3、数据库常用操作,造数据怎么执行
解题:考察基础专业知识
我在项目中常用的就是增删改查,其中用查用得最多,select * from ..
造数据的话,要看需要造多少数据,如果是一条,
insert into 表名 (col1,col2....coln)values(value1,value2.....valuen);
如果是多条(1万条以内),我选择使用csv文件导入
如果超过1万条,我就需要写脚本,如果对自己的脚本没信心的时候,我会跟开发同学核对下。
4、功能测试的流程
解题:考察基础知识
参考回答:从需求分析,到用例编写,用例评审,测试执行,bug反馈跟进解决,bug回归,测试报告,发布后风险问题跟进
5、性能测试的流程
解题:考察基础知识
参考回答:
需求分析,性能测试通过标准制定(比如我们项目中要求支持500并发,90%的用户响应时间2秒内,服务器99.9%的正确返回结果),编写脚本,脚本调优,测试执行,bug提交原因分析,bug回归,测试报告
6、功能测试用例设计的基本方法
解题:考察基础知识
参考回答:等价类,边界值,错误猜测法,因果图,场景法
7、介绍项目
面试官考察点:考察你对项目的理解能力,因为只有你理解自己的项目是做什么的,才能测试好这个项目
比如:我在2019.1.1-2019.6.6期间参与了微信项目的测试,微信是一个聊天软件,主要是用户能够通过网络在不花钱的情况下,给自己的好友发生即时消息。里面的核心功能有聊天,联系人管理,发现,我的。其中我参与测试的功能有聊天消息模块,比如发送消息,撤回消息,建立微信群,群管理等等
8、针对微信聊天消息的撤回功能,设计测试用例
解题:考察独立完成测试任务能力,考察综合技能
1,进行需求分析
用户在什么场景下使用这个功能,环境。(android,ios ,web ,window pc ,mac ,塞班)
android 又分成android4.X 5.X 6.X 7.X 8.X 9.X 版本
各个品牌机型定制手机系统
IOS 机型相对android来说,数量少一点,从4-XS 当前系统版本也是要从8-13
2,功能流程,终端A 发送消息 数据传输到服务器 然后服务器传输到终端B
规则:2分钟内可以撤回,2分钟以上无法撤回
3,消息的形式可以是:文本,表情,图片,视频,超大文件,apk包,语音消息,各种格式的文件,性能测试面试他们的各种组合等等
4,性能(是不是卡顿,有没有内存泄漏)
5,用户实际场景,上述消息体在功能流程中的组合(用等价类将上述进行抽样,用正交分解进行缩减用例条数)。
6,用户场景,
比如
发送消息后,长按发送的消息,出现撤回消息选项
点击撤回消息后,对方的消息消失,并且显示对方撤回了一条消息的提示
发的一条语音,对方正在听,这时撤回。或者视频对方正在播放,这时撤回可别crash了
群聊撤回
多次反复撤回
弱网撤回
通知栏拦截工具
修改手机系统时间撤回
多段登录撤回
撤回多条内容,并且聊天窗口已经有其他的新内容了
撤回转发了的消息
等等,这些用户场景几乎可以无限挖掘下去。这个时候我们就要对这些进行优先级划分了
9、测试用例包含哪些部分
用例id 所属功能模块 子模块 前置条件 操作步骤 预期结果 实际执行结果 bug id
10、测试报告怎么写
一般我们的测试报告是这样的:
最重要的是 测试结论 一般会有3种状态 通过,不通过,带风险通过
当然还需要有以下信息:
项目说明
测试环境
测试范围
测试人员过程
bug清单状态
遗留bug列表
风险描述
发布后需要注意的风险建议。
测试总结 关于性能测试面试和性能测试面试常见问题的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 性能测试面试的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于性能测试面试常见问题、性能测试面试的信息别忘了在本站进行查找喔。
上一篇:排查Linux机器被入侵的11个步骤
下一篇:如何在云平台上实现应用的快速部署?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~