首页 > 编程知识 正文

测试开发岗位常见面试题,开发测试面试题及答案

时间:2023-05-05 19:04:19 阅读:269795 作者:2046

1、你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决?

  首先,将问题提交到缺陷管理库进行备案。

  然后,要获取判断的依据和标准:

  根绝需求说明书,产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是都确认的直接依据;

  如果没有文档依据,根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷;

  根据用户的一般使用习惯,来确认是否是缺陷;

  与设计人员,开发人员和客户代表等相关人员探讨,确认是否是缺陷;

  合理论述,客观严谨的向测试经理说明自己的判断理由;

  等待测试经历做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反应,并由上级做出决定

 

2、给你一个网站,你如何测试?

  首先,查找需求说明、网站设计等相关文档,分析测试需求;

  制定测试计划,确定测试范围和测试策略,一般包括以下几个部分,功能性测试、界面测试、性能测试、数据库测试、安全性测试、兼容性测试;

  设计测试用例:

  功能测试(包括不限于):

  链接测试。链接是否正确跳转,是否存在空页面和无效页面,是否有不正确的出错信息返回

  提交功能的测试

  多媒体元素是否可以正确加载和显示

  多语言支持是否能够正确显示选择的语言

  界面测试(包括但不限于):

  页面是否风格统一,美观

  页面布局是否合理,重点内容和热点内容是否突出

  空间是否正常使用

  对于必须但未安装的控件,是否提供自动下载并安装的功能

  文字检查

  性能测试:

  压力测试

  负载测试

  强度测试

  数据库测试:

  具体决定是否需要展开。数据库一般需要考虑连结性,对数据的存取操作,数据内容的验证等方面。

  安全性测试:

  基本的登陆功能的检查

  是否存在溢出错误,导致系统崩溃或者权限泄露

  相关开发语言的常见安全性问题检查,例如:SQL注入

  如果需要高级的安全性问题,确定获得专业安全公司的帮助,外包测试,或者获取支持

  兼容性测试,根据需求说明的内容,确定支持的平台组合:

  浏览器的兼容性

  操作系统的兼容性

  软件平台的兼容性

  数据库的兼容性

  开展测试,并记录缺陷,合理的安排调整测试进度,提前获取测试所需的资源,建立管理体系(例如:需求变更,风险,配置,测试文档,缺陷报告,人力资源等内容)

  定期评审,对测试进行评估和总结,调整测试内容

 

3、在搜索引擎中输入汉字就可以解析到对应的域名,请问如何使用LoadRunner进行测试

     建立测试计划,确定测试标准和测试范围

  设计典型场景的测试用例,都改常用业务流程和不常用的业务流程等

  根据测试用例,开发自动化测试脚本和场景

  录制测试脚本:新建一个脚本(Web/HTML协议);点击录制按钮,在弹出的对话框的URL中输入”about:blank”;在打开的浏览器中进行正常操作流程后,结束录制;调试脚本并保存,可能要注意到字符集的关联。

  设置测试场景:针对性能设置测试场景,主要判断在正常情况下,系统的平均事务响应时间是否达标;针对压力负载设置测试场景,主要判断在长时间处于满负荷或者超出系统承载能力的条件下,系统是否会崩溃;执行测试,获取测试结果,分析测试结果

 

4、目前主要的测试用例方法是?

  白盒测试:路径覆盖、代码走查、静态分析

  黑盒测试:边界值分析,等价类划分,错误推测法,因果图,状态图法

 

5、软件测安全性从哪几个方面测试?

  软件安全性测试包括程序、数据库安全测试

用户认证安全的测试要考虑问题: 明确区分系统中不同用户权限 、系统中会不会出现用户冲突 、系统会不会因用户的权限的改变造成混乱 、用户登陆密码是否是可见、可复制 、是否可以通过绝对途径登陆系统(拷贝用户登陆后的链接直接进入系统)、用户退出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入 系统 、系统网络安全的测试要考虑问题 、测试采取的防护措施是否正确装配好,有关系统的补丁是否打上 、模拟非授权攻击,看防护系统是否坚固 、采用成熟的网络漏洞检查工具检查系统相关漏洞(即用最专业的黑客攻击工具攻击试一下,现在最常用的是 NBSI 系列和 IPhacker IP ) 、采用各种木马检查工具检查系统木马情况 、采用各种防外挂工具检查系统各组程序的外挂漏洞

数据库安全考虑问题: 系统数据是否机密、系统数据的完整性 、系统数据可管理性 、系统数据的独立性 、系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)

 

6、什么是测试用例?什么是测试脚本?两者关系?

  测试用例:为实现测试而向被测试系统提供的输入数据、操作或各种环境设置以及期望结果的一个特定的合集

  测试脚本:为了进行自动化测试而编写的脚本

  关系:测试脚本的编写必须对应相应的测试用例

 

7、简述     静态测试、动态测试、黑盒测试、白盒测试、α测试 、β测试

  静态测试:不运行程序本身而寻找程序代码中可能存在的错误或评估程序代码的过程

  动态测试:实际运行被测程序,输入相应的测试实例,检查运行结果与预期结果的差异,判定执行结果是否符合要求,从而检测程序的正确性、可靠性、有效性、并分析系统运行效率和健壮性等性能

  黑盒测试:一般用来确认软件功能的正确性和可操作性,目的是检测软件的各个功能是否得以实现,把被测程序当作一个黑盒,不考虑其内部结构,在知道该程序的输入和输出之间的关系或程序功能的情况下,依靠软件规格说明书来确定测试用例和推断测试结果的正确性

  白盒测试:根据软件内部的逻辑结构分析来进行测试,是基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量,一般黑盒测试由项目经理在程序员开发中来实现。

  α测:由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由程序员或测试员完成

  β测试: 软件的多个用户在一个或多个用户的实际使用环境下进行的测试,开发者通常不在测试现场,Beta测试不能由程序员或测试员完成

 

8、软件测试分为几个阶段,各阶段的测试策略和要求是什么?

  和开发过程相对应,测试过程会依次经历单元测试、集成测试、系统测试、验收测试四个主要阶段:

  单元测试:单元测试是针对软件设计的最小单位––程序模块甚至代码段进行正确性检验的测试工作,通常由开发人员进行。

  集成测试:集成测试是将模块按照设计要求组装起来进行测试,主要目的是发现与接口有关的问题。由于在产品提交到测试部门前,产品开发小组都要进行联合调试,因此在大部分企业中集成测试是由开发人员来完成的。

  系统测试:系统测试是在集成测试通过后进行的,目的是充分运行系统,验证各子系统是否都能正常工作并完成设计的要求。它主要由测试部门进行,是测试部门最大最重要的一个测试,对产品的质量有重大的影响。

  验收测试:验收测试以需求阶段的《需求规格说明书》为验收标准,测试时要求模拟实际用户的运行环境。对于实际项目可以和客户共同进行,对于产品来说就是最后一次的系统测试。测试内容为对功能模块的全面测试,尤其要进行文档测试。

  单元测试测试策略:

  自顶向下的单元测试策略:比孤立单元测试的成本高很多,不是单元测试的一个好的选择。

  自底向上的单元测试策略:比较合理的单元测试策略,但测试周期较长。

  孤立单元测试策略:最好的单元测试策略。

  集成测试的测试策略:

  大爆炸集成:适应于一个维护型项目或被测试系统较小

  自顶向下集成:适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修改;产口控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。

  自底向上集成:适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。

  基于进度的集成

  优点:具有较高的并行度;能够有效缩短项目的开发进度。

  缺点:桩和驱动工作量较大;有些接口测试不充分;有些测试重复和浪费。

  系统测试的测试策略:

  数据和数据库完整性测试;功能测试;用户界面测试;性能评测;负载测试;强度测试;容量测试;安全性和访问控制测试;故障转移和恢复测试;配置测试;安装测试;加密测试;可用性测试;版本验证测试;文档测试

 

9、测试人员在软件开发过程中的任务是什么?

  1、尽可能早的找出系统中的Bug;

  2、避免软件开发过程中缺陷的出现;

  3、衡量软件的品质,保证系统的质量;

  4、关注用户的需求,并保证系统符合用户需求。

  总的目标是:确保软件的质量。

 

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

  一条Bug记录最基本应包含:

  bug编号;

  bug严重级别,优先级;

  bug产生的模块;

  首先要有bug摘要,阐述bug大体的内容;

  bug对应的版本;

  bug详细现象描述,包括一些截图、录像....等等;

  bug出现时的测试环境,产生的条件即对应操作步骤;

  高质量的Bug记录:

  1) 通用UI要统一、准确

  缺陷报告的UI要与测试的软件UI保持一致,便于查找定位。

  2) 尽量使用业界惯用的表达术语和表达方法

  使用业界惯用的表达术语和表达方法,保证表达准确,体现专业化。

  3) 每条缺陷报告只包括一个缺陷

  每条缺陷报告只包括一个缺陷,可以使缺陷修正者迅速定位一个缺陷,集中精力每次只修正一个缺陷。校验者每次只校验一个缺陷是否已经正确修正。

  4) 不可重现的缺陷也要报告

  首先缺陷报告必须展示重现缺陷的能力。不可重现的缺陷要尽力重现,若尽力之后仍不能重现,仍然要报告此缺陷,但在报告中要注明无法再现,缺陷出现的频率。

  5) 明确指明缺陷类型

  根据缺陷的现象,总结判断缺陷的类型。例如,即功能缺陷、界面缺陷、数据缺陷,合理化建议这是最常见的缺陷或缺陷类型,其他形式的缺陷或缺陷也从属于其中某种形式。

  6) 明确指明缺陷严重等级和优先等级

  时刻明确严重等级和优先等级之间的差别。高严重问题可能不值得解决,小装饰性问题可能被当作高优先级。

  7) 描述 (Description) ,简洁、准确,完整,揭示缺陷实质,记录缺陷或缺陷出现的位置

  描述要准确反映缺陷的本质内容,简短明了。为了便于在软件缺陷管理数据库中寻找制定的测试缺陷,包含缺陷发生时的用户界面(UI)是个良好的习惯。例如记录对话框的标题、菜单、按钮等控件的名称。

  8) 短行之间使用自动数字序号,使用相同的字体、字号、行间距

  短行之间使用自动数字序号,使用相同的字体、字号、行间距,可以保证各条记录格式一致,做到规范专业。

  9) 每一个步骤尽量只记录一个操作

  保证简洁、条理井然,容易重复操作步骤。

  10) 确认步骤完整,准确,简短

  保证快速准确的重复缺陷,“完整”即没有缺漏,“准确”即步骤正确,“简短”即没有多余的步骤。

  11) 根据缺陷,可选择是否进行图象捕捉

  为了直观的观察缺陷或缺陷现象,通常需要附加缺陷或缺陷出现的界面,以图片的形式作为附件附着在记录的“附件”部分。为了节省空间,又能真实反映缺陷或缺陷本质,可以捕捉缺陷或缺陷产生时的全屏幕,活动窗口和局部区域。为了迅速定位、修正缺陷或缺陷位置,通常要求附加中文对照图。

  附加必要的特殊文档和个人建议和注解

  如果打开某个特殊的文档而产生的缺陷或缺陷,则必须附加该文档,从而可以迅速再现缺陷或缺陷。有时,为了使缺陷或缺陷修正者进一步明确缺陷或缺陷的表现,可以附加个人的修改建议或注解。

  12) 检查拼写和语法缺陷

  在提交每条缺陷或缺陷之前,检查拼写和语法,确保内容正确,正确的描述缺陷。

  13) 尽量使用短语和短句,避免复杂句型句式

  软件缺陷管理数据库的目的是便于定位缺陷,因此,要求客观的描述操作步骤,不需要修饰性的词汇和复杂的句型,增强可读性。

  以上概括了报告测试缺陷的规范要求,随着软件的测试要求不同,测试者经过长期测试,积累了相应的测试经验,将会逐渐养成良好的专业习惯,不断补充新的规范书写要求。此外,经常阅读、学习其他测试工程师的测试缺陷报告,结合自己以前的测试缺陷报告进行对比和思考,可以不断提高技巧。

  14) 缺陷描述内容

  缺陷描述的内容可以包含缺陷操作步骤,实际结果和期望结果。操作步骤可以方便开发人员再现缺陷进行修正,有些开发的再现缺陷能力很差,虽然他明白你所指的缺陷,但就是无法再现特别是对系统不熟悉的新加入开发人员,介绍步骤可以方便他们再现。实际结果可以让开发明白错误是什么,期望结果可以让开发了解正确的结果应该是如何。

……

未完待续

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。