精华内容
下载资源
问答
  • 软件测试常见面试题

    千次阅读 2020-06-09 21:21:48
    1.问:你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决。 首先,将问题提交到缺陷管理库里面进行备案。 然后,要获取判断的依据和标准: 根据需求说明书、产品说明、设计文档等,确认...

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

    • 首先,将问题提交到缺陷管理库里面进行备案。
    • 然后,要获取判断的依据和标准:
      • 根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据;
      • 如果没有文档依据,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷;
      • 根据用户的一般使用习惯,来确认是否是缺陷;
      • 与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷;
      • 合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不参杂个人情绪。
      • 等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并由上级做出决定。

    2.问:给你一个网站,你如何测试?

    • 首先,查找需求说明、网站设计 m 等相关文档,分析测试需求。
    • 制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:
      功能性测试;界面测试;性能测试;数据库测试;安全性测试;兼容性测试
    • 设计测试用例
      功能性测试可以包括,但不限于以下几个方面:等价类划分、边界值、错误推导法、因果图法、判定表驱动法、正交法、功能图法、场景法。
    • 链接测试。链接是否正确跳转,是否存在空页面和无效页面,是否有不正确的出错信息返回等。
    • 提交功能的测试。
      多媒体元素是否可以正确加载和显示。
      多语言支持是否能够正确显示选择的语言等。
    • 界面测试可以包括但不限于一下几个方面:
      页面是否风格统一,美观
      页面布局是否合理,重点内容和热点内容是否突出
      控件是否正常使用
      对于必须但为安装的空间,是否提供自动下载并安装的功能
      文字检查
    • 性能测试一般从以下两个方面考虑:
      压力测试;负载测试;强度测试
    • 数据库测试要具体决定是否需要开展。数据库一般需要考虑连结性,对数据的存取操作,数据内容的验证等方面。
    • 安全性测试:
      1 基本的登录功能的检查
      2 是否存在溢出错误,导致系统崩溃或者权限泄露
      3 相关开发语言的常见安全性问题检查,例如 SQL 注入等。
      4 如果需要高级的安全性测试,确定获得专业安全公司的帮助,外包测试,或者获取支持
    1. 兼容性测试,根据需求说明的内容,确定支持的平台组合:
      浏览器的兼容性;操作系统的兼容性;软件平台的兼容性;数据库的兼容性
    2. 开展测试,并记录缺陷。合理的安排调整测试进度,提前获取测试所需的资源,建立管理体系(例如,需求变更、风险、配置、测试文档、缺陷报告、人力资源等内容)。
    3. 定期评审,对测试进行评估和总结,调整测试的内容。

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

    • 建立测试计划,确定测试标准和测试范围
    • 设计典型场景的测试用例,覆盖常用业务流程和不常用的业务流程等
    • 根据测试用例,开发自动测试脚本和场景:
      录制测试脚本
      新建一个脚本(Web/HTML 协议)
      点击录制按钮,在弹出的对话框的 URL 中输入”about:blank”。
      在打开的浏览器中进行正常操作流程后,结束录制。
      调试脚本并保存。可能要注意到字符集的关联。
    • 设置测试场景
      针对性能设置测试场景,主要判断在正常情况下,系统的平均事务响应时间是否达标
      针对压力负载设置测试场景,主要判断在长时间处于满负荷或者超出系统承载能力的条件下,系统是否会崩溃。
    • 执行测试,获取测试结果,分析测试结果

    4.问:一台客户端有三百个客户与三百个客户端有三百个客户对服务器施压,有什么区别? ?

    300 个用户在一个客户端上,会占用客户机更多的资源,而影响测试的结果。
    线程之间可能发生干扰,而产生一些异常。
    300 个用户在一个客户端上,需要更大的带宽。
    IP 地址的问题,可能需要使用 IP Spoof 来绕过服务器对于单一 IP 地址最大连接数的限制。

    所有用户在一个客户端上,不必考虑分布式管理的问题;而用户分布在不同的客户端上,需要考虑使用控制器来整体调配不同客户机上的用户。同时,还需要给予相应的权限配置和防火墙设置。
     

    5.试述软件的概念和特点?软件复用的含义?构件包括哪些?

    • 软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、文档的完整集合。
    • 软件复用(Software Reuse)是将已有软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的花费。软件复用是提高软件生产力和质量的一种重要技术。早期的软件复用主要是代码级复用,被复用的知识专指程序,后来扩大到包括领域知识、开发经验、设计决定、体系结构、需求、设计、代码和文档等一切有关方面。
    • 可以被复用的软件成分一般称作可复用构件

    6.软件生存周期及其模型是什么?

    软件生存周期是软件开发全部过程、活动和任务的结构框架,是从可行性研究到需求分析、软件设计、编码、测试、软件发布维护的过程。
    在经历需求、分析、设计、实现、部署后,软件将被使用并进入维护阶段,直到最后由于缺少维护费用而逐渐消亡。这样的一个过程,称为"生命周期模型"(Life Cycle Model)。
     

    7.什么是软件测试软件测试的目的与原则

    • 使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
    • 软件测试的目的:
      测试是程序的执行过程,目的在于发现错误
      确保产品满足用户需求(功能,性能,兼容性等)
      确保产品是健壮的和适应用户环境的
    • 软件测试的原则:
      教材的说法:
      软件测试应尽早执行,并贯穿于整个软件生命周期
      软件测试应追溯需求
      测试应由第三方来构造
      穷举测试是不可能的,要遵循 Good-enough 原则
      必须确定预期输出(或结果)
      必须彻底检查每个测试结果
      关注缺陷的修复

    8.软件配置管理的作用?软件配置包括什么?

    软件配置管理作为软件开发过程的必要环节和软件开发管理的基础,贯穿整个软件生命周期,同时对软件开发过程的宏观管理即项目管理也有重要的支持作用。一个软件开发组织真正有效的实施软件配置管理,将会使软件开发过程有更好的可预测性,使系统具有可重复性,大大提高软件组织的竞争力。
    软件配置包括如下内容:
    配置项识别
    工作空间管理
    版本控制
    变更控制
    状态报告
    配置审计
     

    9.什么是软件质量?

    软件质量:软件产品的特性可以满足用户的功能、性能需求的能力。
     

    10.目前主要的测试用例设计方法是什么?

    白盒测试:
    逻辑覆盖
    循环覆盖
    基本路径覆盖
    黑盒测试:
    边界值分析法
    等价类划分
    错误猜测法
    因果图法
    状态图法
    随机测试
    场景法
     

    11.软件的安全性应从哪几个方面 去测试?

    软件安全性测试包括程序、数据库安全性测试。根据系统安全指标不同测试策略也不同。
     

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

     

    系统数据的完整性
    系统数据可管理性
    系统数据的独立性
    系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)

    12.什么是测试用例 什么是测试脚本 两者的关系是什么?

    为实施测试而向被测试系统提供的输入数据、操作或各种环境设置以及期望结果的一个特定的集合。
    测试脚本是为了进行自动化测试而编写的脚本。
    测试脚本的编写必须对应相应的测试用例,
     

    13.简述什么是静态测试、动态测试、黑盒测试、白盒测试、α测试 β测试

    • 静态测试是不运行程序本身而寻找程序代码中可能存在的错误或评估程序代码的过程。
    • 动态测试是实际运行被测程序,输入相应的测试实例,检查运行结果与预期结果的差异,判定执行结果是否符合要求,从而检验程序的正确性、可靠性和有效性,并分析系统运行效率和健壮性等性能。
    • 黑盒测试一般用来确认软件功能的正确性和可操作性,目的是检测软件的各个功能是否能得以实现,把被测试的程序当作一个黑盒,不考虑其内部结构,在知道该程序的输入和输出之间的关系或程序功能的情况下,依靠软件规格说明书来确定测试用例和推断测试结果的正确性。
    • 白盒测试根据软件内部的逻辑结构分析来进行测试,是基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量,一般黑盒测试由项目经理在程序员开发中来实现。
    • α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha 测试不能由程序员或测试员完成。
    • β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta 测试不能由程序员或测试员完成。

    14.软件质量保证体系是什么 国家标准中与质量保证管理相关的几个标准是什么? ? 他们的编号和全称是什么? ?

    SQA 由一套软件工程过程和方法组成,以保证(软件的)质量。SQA 贯穿整个软件开发过程,(它)应包括需求文档评审、代码控制、代码评审、变更管理、配置管理、版本管理和软件测试。
     

    15.软件产品质量特性是什么? ?

    功能性:适应性、准确性、互操作性、依从性、安全性。
    可靠性:成熟性、容错性、以恢复性。
    可使用性:易理解性、易学习性、易操作性。
    效率:时间特性、资源特性。
    可维护性:易分析性、易变更性、稳定性、易测试性。
    可移植性: 适应性、易安装性、遵循性、易替换性。
     

    16.软件测试的策略是什么? ?

    软件测试策略:在一定的软件测试标准、测试规范的指导下,依据测试项目的特定环境约束而规定的软件测试的原则、方式、方法的集合。
     

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

    软件测试按阶段划分可以分为单元测试、集成测试、系统测试和<验收测试>(不一定有)几个阶段
     

    • 单元测试测试策略:
      自顶向下的单元测试策略
      总结:比孤立单元测试的成本高很多,不是单元测试的一个好的选择。
      自底向上的单元测试策略
      总结:比较合理的单元测试策略,但测试周期较长。
      孤立单元测试策略
      总结:最好的单元测试策略。
    • 集成测试的测试策略:
      大爆炸集成
      适应于一个维护型项目或被测试系统较小
      自顶向下集成
      适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修改;产口控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。
      自底向上集成
      适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。
      基于进度的集成
      优点:具有较高的并行度;能够有效缩短项目的开发进度。
      缺点:桩和驱动工作量较大;有些接口测试不充分;有些测试重复和浪费。
    • 系统测试的测试策略
      数据和数据库完整性测试;功能测试;用户界面测试;性能评测;负载测试;强度测试;容量测试;安全性和访问控制测试;故障转移和恢复测试;配置测试;安装测试;加密测试;可用性测试;版本验证测试;文档测试

    18.在软件测试各个阶段通常完成什么工作?各个阶段的结果文件是什么?包括什么内容?

    • 单元测试阶段。各独立单元模块在与系统地其他部分相隔离的情况下进行测试,单元测试针对每一个程序模块进行正确性校验,检查各个程序模块是否正确地实现了规定的功能。
      生成单元测试报告,提交缺陷报告。
    • 集成测试阶段。集成测试是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。
      该阶段生成集成测试报告,提交缺陷报告。
    • 系统测试阶段。将通过确认测试的软件,作为整个给予计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行全面的功能覆盖。该阶段需要提交测试总结和缺陷报告。

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

    1、寻找 Bug;
    2、避免软件开发过程中的缺陷;
    3、衡量软件的品质;
    4、关注用户的需求。
    总的目标是:确保软件的质量。
     

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

    • 一条 Bug 记录最基本应包含:编号、Bug 所属模块、Bug 描述、Bug 级别、发现日期、发现人、修改日期、修改人、修改方法、回归结果等等;
    • 要有效的发现 Bug 需参考需求以及详细设计等前期文档设计出高效的测试用例,然后严格执行测试用例,对发现的问题要充分确认肯定,然后再向外发布如此才能提高提交 Bug 的质量。

    21.黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点!

    • 黑盒测试的优点有:
      比较简单,不需要了解程序内部的代码及实现;
      与软件的内部实现无关;
      从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;
      基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;
      在做软件自动化测试时较为方便。
      黑盒测试的缺点有:
      不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的 30%;
      自动化测试的复用性较低。
    • 白盒测试的优点有:
      帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题。
      白盒测试的缺点有:
      程序运行会有很多不同的路径,不可能测试所有的运行路径;
      测试基于代码,只能知道测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;
      系统庞大时,测试开销会非常大。

    21.测试计划工作的目的是什么?测试计划文档的内容应该包括什么?其中哪些是最重要的?

    答案:软件测试计划是指导测试过程的纲领性文件。
    包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。
    测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。
    所以其中最重要的是测试测试策略和测试方法(最好是能先评审)。
     

    22.黑盒测试的测试用例常见设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。

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

    ·  边界值分析法
    边界值分析方法是对等价类划分方法的补充。测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.
    使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.

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

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

    ·  正交表分析法
    有时候,可能因为大量的参数的组合而引起测试用例数量上的激增,同时,这些测试用例并没有明显的优先级上的差距,而测试人员又无法完成这么多数量的测试,就可以通过正交表来进行缩减一些用例,从而达到尽量少的用例覆盖尽量大的范围的可能性。

    ·  场景分析方法
    指根据用户场景来模拟用户的操作步骤,这个比较类似因果图,但是可能执行的深度和可行性更好。

    ·  状态图法
    通过输入条件和系统需求说明得到被测系统的所有状态,通过输入条件和状态得出输出条件;通过输入条件、输出条件和状态得出被测系统的测试用例。

    23.详细的描述一个测试活动完整的过程。

    答案:(供参考,本答案主要是瀑布模型的做法)
     

    • 项目经理通过和客户的交流,完成需求文档
    • 由开发人员和测试人员共同完成需求文档的评审,评审的内容包括:需求描述不清楚的地方和可能有明显冲突或者无法实现的功能的地方。
    • 项目经理通过综合开发人员,测试人员以及客户的意见,完成项目计划。然后 SQA 进入项目,开始进行统计和跟踪
    • 开发人员根据需求文档完成需求分析文档,测试人员进行评审,评审的主要内容包括是否有遗漏或者双方理解不同的地方。
    • 测试人员完成测试计划文档,测试计划包括的内容上面有描述。
    • 测试人员根据修改好的需求分析文档开始写测试用例,同时开发人员完成概要设计文档,详细设计文档。此两份文档成为测试人员撰写测试用例的补充材料。
    • 测试用例完成后,测试和开发需要进行评审。
    • 测试人员搭建环境
    • 开发人员提交第一个版本,可能存在未完成功能,需要说明。测试人员进行测试,发现 BUG后提交给 BugZilla。
    • 开发提交第二个版本,包括 Bug Fix 以及增加了部分功能,测试人员进行测试。
      重复上面的工作,一般是 3-4 个版本后 BUG 数量减少,达到出货的要求。
    • 如果有客户反馈的问题,需要测试人员协助重现并重新测试。

    24.BUG 管理工具的跟踪过程

    用 BugZilla 为例子
    测试人员发现了 BUG,提交到 bugzilla/' rel="nofollow" target='_blank'>Bugzilla 中,状态为 new,BUG 的接受者为开发接口人员
    开发接口将 BUG 分配给相关的模块的开发人员,状态修改为已分配,开发人员和测试确认BUG,如果是本人的 BUG,则设置为接收;如果是别的开发人员的问题,则转发出去,由下一个开发人员来进行此行为;如果认为不是问题,则需要大家讨论并确认后,拒绝这个 BUG,

     

    然后测试人员关闭此问题。
    如果开发人员接受了 BUG,并修改好以后,将 BUG 状态修改为已修复,并告知测试在哪个版本中可以测试。
    测试人员在新版本中测试,如果发现问题依然存在,则拒绝验证;如果已经修复,则关闭BUG。
     

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

    • 尽量面对面的沟通,其次是能直接通过电话沟通,如果只能通过 Email 等非及时沟通工具的话,强调必须对特性的理解深刻以及能表达清楚。
      运用一些测试管理工具如 TestDirector 进行管理也是较有效的方法,同时要注意在TestDirector 中对 BUG 有准确的描述。
    • 在团队中建立测试人员与开发人员良好沟通中注意以下几点:
      一真诚
      二是团队精神
      三是在专业上有共同语言
      四是要对事不对人,工作至上
      当然也可以通过直接指出一些小问题,而不是进入 BUG Tracking System 来增加对方的好感。

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

    回答这个面试题,没有固定统一的答案,但可能是许多企业都会问到的。提供以下答案供考:
    最大的兴趣,感觉这是一个有挑战性的工作;
    测试是一个经验行业,工作越久越能感觉到做好测试的难度和乐趣
    通过自己的工作,能使软件产品越来越完善,从中体会到乐趣
    回答此类问题注意以下几个方面:
    尽可能的切合招聘企业的技术路线来表达你的兴趣,例如该企业是数据库应用的企业,那么表示你的兴趣在数据库的测试,并且希望通过测试提升自己的数据库掌握能力。
    表明你做测试的目的是为了提升能力,也是为了更好的做好测试;提升能力不是为了以后转开发或其他的,除非用人企业有这样的安排。
    不要过多的表达你的兴趣在招聘企业的范畴这外。
     

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

    该面试也没有固定不变的答案,但可参考以下几点,并结合自身特点:
    有韧性
    有耐心
    做事有条理性
    喜欢面对挑战
    有信心做好每一件事情
    较强的沟通能力
    从以前的经理处都得到了很好的评价表明我做的很好
     

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

    1、大爆炸集成
    2、自顶向下集成
    3、自底向上集成
    4、三明治集成适应于大部分软件开发项目
    5、基干集成
    6、分层集成
    7、基于功能的集成
    8、基于消息的集成
    9、基于风险的集成
    10、基于进度的集成
     

    29.请你分别画出 I OSI 的七层网络结构图和 P TCP/IP 的四层结构图。

    答:OSI 七层网络结构图,由上至下:
    应用层 ;表示层 ;会话层 ;传输层 ;网络层 ;数据链路层;物理层
    TCP/IP 的四层结构图
    应用层;传输层;互联层;链路层
     

    30.一个 e byte 几个单位。( ( 计算机基础) )

    答:8bit。
     

    31.常用 X UNIX 命令x (Linux 的常用命令) ) (至少 0 10 个); (Unix)

    答:ls pwd mkdir rmdir rm cp mv cd ps ping tail more echo adduser passwd logout exit,
     

    32.简述你在以前的工作中做过哪些事情,比较熟悉什么。

    此问题每个人都不一样。参考答案如下。
    我过去的主要工作是系统测试和自动化测试。在系统测试中,主要是对 BOSS 系统的业务逻辑功能,以及软交换系统的 Class 5 特性进行测试。性能测试中,主要是进行的压力测试,在各个不同数量请求的情况下,获取系统响应时间以及系统资源消耗情况。
    自动化测试主要是通过自己写脚本以及一些第三方工具的结合来测试软交换的特性测试。
    在测试中,我感觉对用户需求的完全准确的理解非常重要。另外,就是对 BUG 的管理,要以需求为依据,并不是所有 BUG 均需要修改。
    测试工作需要耐心和细致,因为在新版本中,虽然多数原来发现的 BUG 得到了修复,但原来正确的功能也可能变得不正确。因此要注重迭代测试和回归测试。
     

    33.在 C/C++中 中 c static 有什么用途?(请至少说明两种)

    1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
     

    1. 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。

    ·  在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用

    34.引用与指针有什么区别?

    1. 引用必须被初始化,指针不必。
    2. 引用初始化以后不能被改变,指针可以改变所指的对象。
    3. 不存在指向空值的引用,但是存在指向空值的指针。

    35.Internet 采用哪种网络协议?该协议的主要层次结构?t Internet 物理地址和 P IP 地址转换采用什么协议?

    TCP/IP 协议
    主要层次结构为: 应用层/传输层/网络层/数链路层。
    ARP (Address Resolution Protocol)(地址解析协议)
     

    36.说说你对集成测试中自顶向下集成和自底向上集成两个策略的理解,要谈出它们各自的优缺点和主要适应于哪种类型测试;

    • 自顶向下集成
      优点:较早地验证了主要控制和判断点;按深度优先可以首先实现和验证一个完整的软件功能;功能较早证实,带来信心;只需一个驱动,减少驱动器开发的费用;支持故障隔离。
      缺点:柱的开发量大;底层验证被推迟;底层组件测试不充分。
      适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修改;产口控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。
    • 自底向上集成
      优点:对底层组件行为较早验证;工作最初可以并行集成,比自顶向下效率高;减少了桩的工作量;支持故障隔离。
      缺点:驱动的开发工作量大;对高层的验证被推迟,设计上的错误不能被及时发现。
      适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。

    37.软件验收测试包括正式验收测试、alpha 测试、beta 测试三种测试。

    38.系统测试的策略有很多种的,有性能测试、负载测试、强度测试、易用性测试、安全测试、配置测试、安装测试、文档测试、故障恢复测试、用户界面测试、恢复测试、分布测试、可用性测试。

    39.设计系统测试计划需要参考的项目文档有软件测试计划、软件需求工件、和迭代计划。

    40.利用因果图生成测试用例的基本步骤是:

    § 分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。
    § 分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么关系? 根据这些关系,画出因果图。
    § 由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。
    § 把因果图转换成判定表。
    § 把判定表的每一列拿出来作为依据,设计测试用例。
    一、 测试的种类很多,比如:
    代码、函数级测试
    模块、组件级测试
    系统测试
    请说出这些测试最好由那些人员完成,测试的是什么?
    代码、函数级测试一般由白盒测试人员完成,他们针对每段代码或函数进行正确性检验,检查其是否正确的实现了规定的功能。
    模块、组件级测试主要依据是程序结构设计测试模块间的集成和调用关系,一般由测试人员完成。
    系统测试在于模块测试与单元测试的基础上进行测试。了解系统功能与性能,根据测试用例进行全面的测试。
     

    41设计测试用例时应该考虑哪些方面,即不同的测试用例针对那些方面进行测试?

    设计测试用例时需要注意的是,除了对整体流程及功能注意外,还要注意强度测试、性能测试、压力测试、边界值测试、稳定性测试、安全性测试等多方面。(测试用例需要考虑的四个基本要素是输入、输出、操作和测试环境;另外,测试用例需要考虑的是测试类型(功能、性能、安全„„),这部分可以参照 TP 做答。此外,还需要考虑用例的重要性和优先级)
     

    42.在 windows 下保存一个文本文件时会弹出保存对话框,如果为文件名建立测试用例,等价类应该怎样划分?

    单字节,如 A;
    双字节, AA、我我;
    特殊字符 /‘。‘;、=-等;
    保留字,如 com;
    文件格式为 8.3 格式的;

    文件名格式为非 8.3 格式的;
    /,,*等九个特殊字符。
     

    43.假设有一个文本框要求输入 0 10 个字符的邮政编码,对于该文本框应该怎 样划分等价类?

    特殊字符,如 10 个*或¥;
    英文字母,如 ABCDefghik;
    小于十个字符,如 123;
    大于十个字符,如 11111111111;
    数字和其他混合,如 123AAAAAAA;
    空字符;
    保留字符
     

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

    软件测试应该在需求分析阶段就介入,因为测试的对象不仅仅是程序编码,应该对软件开发过程中产生的所有产品都测试,并且软件缺陷存在放大趋势.缺陷发现的越晚,修复它所花费的成本就越大.
     

    45.什么是白盒测试?什么是黑盒测试? ? 什么是回归测试? ?

    • 白盒测试是测试人员要了解程序结构和处理过程,按照程序内部逻辑测试程序,检查程序中的每条通路是否按照预定要求正确工作.它主要的针对被测程序的源代码,测试者可以完全不考虑程序的功能.
      白盒测试流程:详细设计-->源程序-->分析程序内部逻辑结构-->流程图-->制定测试用例-->被测程序-->执行路径-->覆盖情况分析 .
    • 黑盒测试:(Black-box Testing,又称为功能测试或数据驱动测试)是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。
    • 回归测试: (regression testing): 回归测试有两类:用例回归和错误回归;用例回归是过一段时间以后再回头对以前使用过的用例在重新进行测试,看看会重新发现问题。
      错误回归,就是在新版本中,对以前版本中出现并修复的缺陷进行再次验证,并以缺陷为核心,对相关修改的部分进行测试的方法。

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

    • 单元测试针对的是软件设计的最小单元--程序模块(面向过程中是函数、过程;面向对象中是类。),进行正确性检验的测试工作,在于发现每个程序模块内部可能存在的差错.一般有两个步骤:人工静态检查\动态执行跟踪
    • 集成测试针对的是通过了单元测试的各个模块所集成起来的组件进行检验,其主要内容是各个单元模块之间的接口,以及各个模块集成后所实现的功能.
    • 系统测试针对的是集成好的软件系统,作为整个计算机系统的一个元素,与计算机硬件\外设\某些支持软件\数据和人员等其他系统元素结合在一起,要在实际的运行环境中,对计算机系统进行一系列的集成测试和确认测试.

    47. 一个测试工程师应具备那些素质?

    1、责任心
    2、沟通能力
    3、团队合作精神
    4、耐心、细心、信心
    5、时时保持怀疑态度,并且有缺陷预防的意识
    6、具备一定的编程经验
     

    48.你所了解的的软件测试类型都有哪些,简单介绍一下。

    • 按测试 策略分类:
      1、静态与动态测试
      2、黑盒与白盒测试
      3、手工和自动测试
      4、冒烟测试
      5、回归测试;
    • 按测试阶段分类:单元测试、集成测试、系统测试;
    • 其他常见测试方法:1、功能测试 2、性能测试 3、压力测试 4、负载测试 5、易用性测试 6、安装测试 7、界面测试 8、配置测试 9、文档测试 10、兼容性测试 11、安全性测试 12、恢复测试

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

    明确测试的目标,增强测试计划的实用性
    采用评审和更新机制,保证测试计划满足实际需求
    分别创建测试计划与测试详细规格、测试用例
     

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

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

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

    • 性能测试的目的主要是发现在并发多用户和大数据量操作时是否会出现与需求有差异的地方。
    • 性能测试工作的关键是做好系统分析和功能分析,确定系统瓶颈所在

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

    53.你的测试职业发展目标是什么?

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

    54.你对我们公司了解有多少?

    建议从招聘广告上多了解信息,同时到应聘公司的网站上去尽可能多的了解这个公司的情况,以便回答好这类问题。
     

    55.测试结束的标准是什么?

    从微观上来说,在测试计划中定义,比如系统在一定性能下平稳运行 72 小时,目前 BugTracking System 中,本版本中没有一般严重的 BUG,普通 BUG 的数量在 3 以下,BUG 修复率 90%以上等等参数,然后由开发经理,测试经理,项目经理共同签字认同版本 Release。
    如果说宏观的,则是当这个软件彻底的消失以后,测试就结束了。
     

    56. 软件测试分为黑盒和白盒,分别适合什么情况? ?

    软件测试方法一般分为两种:白盒测试与黑盒测试。
     

    • 白盒测试又称为结构测试、逻辑驱动测试或基于程序本身的测试,它着重于程序的内部结构及算法,通常不关心功能与性能指标;
    • 黑盒测试又被称为功能测试、数据驱动测试或基于规格说明的测试,它实际上是站在最终用户的立场,检验输入输出信息及系统性能指标是否符合规格说明书中有关功能需求及性能需求的规定。

    57.一套完整的测试应该由哪些阶段组成?

    可行性分析、需求分析、概要设计、详细设计、编码、单元测试、集成测试、系统测试、验收测试
     

    58测试用例通常包括那些内容?

    不同结构的用例包括的不一样。
    (版本、编号、项目、设计人员、设计日期、输入、预期输出„„)
    软件测试用例的基本要素包括测试用例编号、测试标题、重要级别、测试输入、操作步骤、预期结果。
     

    • 用例编号: 测试用例的编号有一定的规则,比如系统测试用例的编号这样定义规则:PROJECT1-ST-001 ,命名规则是项目名称+测试阶段类型(系统测试阶段)+编号。定义测试用例编号,便于查找测试用例,便于测试用例的跟踪。
    • 测试标题: 对测试用例的描述,测试用例标题应该清楚表达测试用例的用途。比如 “ 测试用户登录时输入错误密码时,软件的响应情况 ” 。
    • 重要级别: 定义测试用例的优先级别,可以笼统的分为 “ 高 ” 和 “ 低 ” 两个级别。
      一般来说,如果软件需求的优先级为 “ 高 ” ,那么针对该需求的测试用例优先级也为“ 高 ” ;反之亦然,一般而言,是 5 级划分。
    • 测试输入: 提供测试执行中的各种输入条件。根据需求中的输入条件,确定测试用例的输入。测试用例的输入对软件需求当中的输入有很大的依赖性,如果软件需求中没有很好的定义需求的输入,那么测试用例设计中会遇到很大的障碍。
    • 操作步骤: 提供测试执行过程的步骤。对于复杂的测试用例,测试用例的输入需要分为几个步骤完成,这部分内容在操作步骤中详细列出。
    • 预期结果: 提供测试执行的预期结果,预期结果应该根据软件需求中的输出得出。如果在
      实际测试过程中,得到的实际测试结果与预期结果不符,那么测试不通过;反之则测试通过。

    59.您是否了解以往所工作的企业的软件开发过程?如果了解,请试述一个完整的开发过程需要完成哪些工作?分别由哪些不同的角色来完成这些工作?您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长哪部分工作?

    开发过程---需求调研(需求人员)、需求分析(需求人员)、概要设计(设计人员)、详细设计(设计人员)、编码(开发人员)
    测试过程---需求评审、系统测试设计、概要设计评审、集成测试设计、详细设计评审、单元测试设计、测试执行
    测试工作的整个过程都做过,擅长做测试设计
    过程决定质量,软件的过程改进正是为了提高软件的质量,将过往的种种经验和教训积累起来。
     

    60.在您所经历的测试活动中,参与人员有哪些?您所担任的角色是什么?

    有项目管理员、开发管理员、系统分析员、设计员、开发员、质量管理员、测试管理员、测试设计员、测试员

    担任过测试管理员、测试设计员、测试员
     

    61.测试用例设计的原则是什么?目前主要的测试用例设计方法有哪些?

    • 代表性:能够代表并覆盖各种合理的和不合理、合法的和非法的、边界的和越界的、以及极限的输入数据、操作和环境设置等.
    • 可判定性:即测试执行结果的正确性是可判定的,每一个测试用例都应有相应的期望结果.
    • 可再现性:即对同样的测试用例,系统的执行结果应当是相同的。
    • 方法有等价类、边界值、因果图、状态图、正交法、大纲法

    61.LoadRunner 分为哪三个模块?请简述各模块的主要功能。

    Virtual User Generator:用于录制脚步
    Mercury LoadRunner Controller:用于创建、运行和监控场景
    Mercury LoadRunner Analysis:用于分析测试结果
     

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

    最大的兴趣就是测试有难度,有挑战性!做测试越久越能感觉到做好测试有多难。曾经在无忧测试网上看到一篇文章,是关于如何做好一名测试工程师。一共罗列了 11,12 点,有部分是和人的性格有关,有部分需要后天的努力。但除了性格有关的 1,2 点我没有把握,其他点我都很有信心做好它。刚开始进入测试行业时,对测试的认识是从无忧测试网上了解到的一些资料,当时是冲着做测试需要很多技能才能做的好,虽然入门容易,但做好很难,比开发更难,虽然当时我很想做开发(学校专业课我基本上不缺席,因为我喜欢我的专业),但看到测试比开发更难更有
    挑战性,想做好测试的意志就更坚定了。
    我觉得做测试整个过程中有 2 点让我觉得很有难度(对我来说,有难度的东西我就非常感兴趣),第一是测试用例的设计,因为测试的精华就在测试用例的设计上了,要在版本出来之前,把用例写好,用什么测试方法写?(也就是测试计划或测试策略),如果你刚测试一个新任务时,你得花一定的时间去消化业务需求和技术基础,业务需求很好理解(多和产品经理和开发人员沟通就能达到目的),而技术基础可就没那么简单了,这需要你自觉的学习能力,比如说网站吧,最基本的技术知识你要知道网站内部是怎么运作的的,后台是怎么响应用户请求的?测试环境如何搭建?这些都需要最早的学好。至少在开始测试之前能做好基本的准备,可能会遇到什么难题?需求细节是不是没有确定好?这些问题都能在设计用例的时候发现。
    第二是发现 BUG 的时候了,这应该是测试人员最基本的任务了,一般按测试用例开始测试就能发现大部分的 bug,还有一部分 bug 需要测试的过程中更了解所测版本的情况获得更多信息,补充测试用例,测试出 bug。还有如何发现 bug?这就需要在测试用例有效的情况下,通过细心和耐心去发现 bug 了,每个用例都有可能发现 bug,每个地方都有可能出错,所以测试过程中思维要清晰(测试过程数据流及结果都得看仔细了,bug 都在里面发现的)。如何描述 bug 也很有讲究,bug 在什么情况下会产生,如果条件变化一点点,就不会有这个 bug,以哪些最少的操作步骤就能重现这个bug,这个bug产生的规律是什么?如果你够厉害的话,可以帮开发人员初步定位问题。
     

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

    开发人员说不是 bug,有 2 种情况,
     

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

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

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

    如果公司确实需要我可以从事开发,但我还是喜欢做测试,我认为我更适合做测试。 66.软件测试分哪些阶段?各阶段的含义? 分为单元测试、集成测试、


    如果公司确实需要我可以从事开发,但我还是喜欢做测试,我认为我更适合做测试。
     

    66.软件测试分哪些阶段?各阶段的含义?

    分为单元测试、集成测试、确认测试、系统测试、验收测试。单元测试是最小单位的测试,测试独立模块;
    集成测试主要测试模块之间的接口是否正常,
    确认测试类似于冒烟测试通常在大规模系统测试之前验证版本主要功能是否实现,版本的稳定性是否可以进入系统测试,
    系统测试是全面测试验证系统是否满足用户需求包括功能、性能、兼容性等等。
    验收测试是用户参与的测试。
     

    67.一份测试计划应该包括哪些内容?

    背景、项目简介、目的、测试范围、测试策略、人员分工、资源要求、进度计划、参考文档、常用术语、提交文档、风险分析。
     

    68.什么是兼容性测试?请举例说明如何利用兼容性测试列表进行测试。

    主要验证软件产品在不同版本之间的兼容性。包括向下兼容和交错兼容,向下兼容是测试软件新版本保留它早期版本功能的情况,
    交错兼容是验证共同存在的两个相关但不相同的产品之间的兼容性。
     

    69.对某软件进行测试,发现在 8 WIN98 上运行得很慢,怎么判别是该软件存在问题还是其软硬件运行环境存在问题?

    看软件的运行环境要求。如果符合要求则是程序存在问题,若不符合要求则是硬件系统存在问题
     

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

    是否使用了公司的模板
    文档内容是否符合规范
    所有的需求是分级是否清析适当?
    所有的需求是否具有一致性
    需求是否可行(即,该需求组合有解决方案)
    需求可否用己知的约束来实现
    需求是否足够(即,可以把它送到一个规范的开发组织,并有一个生产出所需要产品的合理的可能性)
    所有的其它需求是交叉引用是否正确
    用户描述是否清楚
    是否用客户的语言来描述需求
    每个需求描述是否清楚没有岐义,可以移交给一个独立的组去实现时也能理解
    是否所有的需求都是可验证的
    是否每条需求都具有独立性,即使发生了变化也不会影响其它需求
    性能指标是否明确
    非功能性需求是否得到充分表现
    是否完整列出适用的标准或协议
    标准和协议之间是否存在冲突
     

    71.请简述一下缺陷的生命周期。

    提交?分配?处理?返测?关闭(返测和处理为循环)

    新建--提交--确认--分配--修复--验证--关闭

    打开 : 表示问题被提交等待有人处理。
    重新指派 : 问题被重新指派给某人处理。 
    处理 : 问题在处理中,尚未完成。
    固定 : 确认此问题存在,但暂时不进行处理。
    回归 : 对已经修复的问题进行回归确认。Reopened :
    关闭 : 问题的最后一个状态。 

    展开全文
  • 软件测试常见面试题及答案

    千次阅读 2018-01-08 14:23:59
    软件测试常见面试题及答案 乐搏软件学院 2017-09-22 10:14:37 软件测试常见面试题及答案 软件测试常见面试题及答案 软件测试方法有哪些分类?各有什么特点?设计测试用例的主要方法有哪些? 软件测试方法分类 1)...

    软件测试常见面试题及答案 乐搏软件学院 2017-09-22 10:14:37 软件测试常见面试题及答案

    软件测试常见面试题及答案

    软件测试方法有哪些分类?各有什么特点?设计测试用例的主要方法有哪些? 软件测试方法分类

    1)白盒、黑盒、灰盒

    2)单元测试、集成测试、系统测试、验收测试、回归测试、Alpha 测试、Beta 测试

    3)静态测试和动态测试

    设计测试用例的主要方法

    1)等价类划分

    2)边界值分析法

    3)因果图法

    4)场景法

    2.系统测试是什么?需要考虑哪些方面?

    1)系统测试是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试,其目的是通过与系统的需求相比较,发现所开发的系统与用户需求不符或矛盾的地方,从而提出更加完善的方案.。

    2)它的的任务是尽可能彻底地检查出程序中的错误,提高软件系统的可靠性,其目的是检验系统"做得怎样?"。这阶段又可分为三个步骤:模块测试,测试每个模块的程序是否有错误;组装测试,测试模块之间的接口是否正确;确认测试,测试整个软件系统是否满足用户功能和性能的要求。该阶段结束应交付测试报告,说明测试数据的选择,测试用例以及测试结果是否符合预期结果。

    3)测试发现问题之后要经过调试找出错误原因和位置,然后进行改正。是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。

    4)系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方。

    系统测试的对象不仅仅包括需要测试的产品系统的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等。因此,必须将系统中的软件与各种依赖的资源结合起来,在系统实际运行环境下来进行测试

    3.怎样才能成为一个合格的软件测试工程师?

    1)计算机专业技能

    2)测试专业技能

    3)软件编程技能

    4)网络、操作系统、数据库、中间件等知识

    5)较强的责任心,对待测试工作要有不厌其烦的态度,与需求人员、研发人员多交流多沟通

    4.一名军官要求24名士兵站成6排,每排都是5人,士兵们全犯傻了。最后一名士兵终于想出了一个好办法。他是怎样安排的?

    只要排成一个六边形即可

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

    保证软件质量的最后一道关口。

    02.您是否了解以往所工作的企业的软件测试过程?如果了解,请试述在这个过程中都有哪些工作要做?分别由哪些不同的角色来完成这些工作?

    测试计划->测试设计(测试用例,测试数据)->测试执行(单元测试,集成测试,系统测试,回归测试)

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

    易用性测试-界面的友好性,操作方便性等。

    功能测试-系统中功能性需求的满足

    安全性测试-系统是否存在安全隐患和漏洞

    性能测试-系统在大并发下的响应速度和健壮性

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

    黑盒/白盒:主要区别在是否了解系统或程序的内部结构和代码

    单元测试:关注某一个单元,函数,模块的正确性,一般需要编写相关测试代码。

    集成测试:模块或模块直接的集成接口测试,单个模块测试

    系统测试:一个完整功能的完全测试。

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

    提前安排出测试工具选择,测试类型选择,人员需求,保证和项目开发协调一致,保证测试工作顺利进行。

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

    了解项目或系统的业务需求

    和项目经理协调好,了解项目的进度计划安排情况

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

    边界值/等价类/业务流程图分析和状态转换分析/业务逻辑分析

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

    对业务和软件需求非常清楚,可以根据需求不同选择不同的测试用例设计

    09.您以往的工作中是否曾开展过测试用例的评审工作?如果有,请描述测试用例评审的过程和评审的内容。

    评审计划->预审->评审;

    评审内容主要是测试用例对软件需求的覆盖程度,对于相关边界是否考虑,是否针对复杂流程准备多套测试数据,是否有专门针对非功能性需求的测试。

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

    制订计划->选择测试功能->选择测试工具->录制脚本->运行测试->分析结果

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

    微软WAS,LoadRunner

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

    关键是测试脚本的录制,测试时候测试环境的干净。

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

    缺陷名词/描述/缺陷等级/严重程度/发现模块/发现步骤和过程/是否可以重现

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

    CQ,也可以使用BugFree等免费工具。

    15.您如何看待软件过程改进?在您曾经工作过的企业中,是否有一些需要改进的东西呢?您期望的理想的测试人员的工作环境是怎样的?

    将先进的经验或思想固化到过程中,通过过程改进和能力提高来改进软件质量。

    1、根据你的经验说说你对软件测试/质量保证的理解?

    软件质量保证与测试是根据软件开发阶段的规格说明和程序的内部结构而精心设计的一批测试用例(即输入数据和预期的输出结果),并利用这些测试用例去运行程序,以发现错误的过程。它是对应用程序的各个方面进行测试以检查其功能、语言有效性及外观排布.

    2、软件测试的流程是什么?

    需求调查: 全面了解您的系统概况、应用领域、软件开发周期、软件开发环境、开发组织、时间安排、功能需求、性能需求、质量需求及测试要求等

    根据系统概况进行项目所需的人员、时间和工作量估计及项目报价。

    制定初步的项目计划: 在与您充分共同和协商的基础上制定我们的测试计划。

    测试准备: 组织测试团队、培训、建立测试和管理环境等。

    测试设计: 按照测试要求进行每个测试项的测试设计,包括测试用例的设计及测试脚本的开发等。

    测试实施: 按照测试计划进行实施测试。

    测试评估: 根据测试的结果,出具测试评估报告。

    3、(1) 你对SQA的职责和工作活动(如软件度量)的理解:

    SQA就是独立于软件开发的项目组,通过对软件开发过程的监控,来保证软件的开发流程按照指定的CMM规程(如果有相应的CMM规程),对于不符合项及时提出建议和改进方案,必要是可以要高层经理汇报以求问题的解决。通过这样的途径来预防缺陷的引入,从而减少后期软件的维护成本。SQA主要的工作活动包括制定SQA工作计划,参与阶段产物的评审,进行过程质量、功能配置及物理配置的审计等;对项目开发过程中产生的数据进行度量等等;

    (2) 说说你对软件配置管理的理解:

    项目在开发的过程中要用相应的配置管理工具对配置项(包括各个阶段的产物)进行变更控制,配置管理的使用取决于项目规模和复杂性能及风险的水平。软件的规模越大,配置管理就显得越重要。还有在配置管理中,有一个很重要的概念,那就是基线,是在一定阶段各个配置项的组合,一个基线就提供了一个正式的标准,随后的工作便基于此标准,并且只有经过授权后才能变更这个标准。配置管理工具主要有CC,VSS,CVS等,偶只用过CVS,对其它的不熟悉

    (3) 怎样写测试计划和测试用例:

    简单点,测试计划里应有详细的测试策略(测试方法等),合理详尽的资源安排等,至于测试用例,那是依赖于需求(包括功能与非功能需求)是否细化到功能点,是否可测试等。

    (4) 说说主流的软件工程思想(如CMM,CMMI,RUP,XP,PSP,TSP等)的大致情况以及对它们的理解:

    CMM:SW Capability Maturity Model 软件能力成熟度模型,其作用是用于软件过程的改进、评估及软件能力的评鉴

    CMMI:Capability Maturity Model Integration 能力成熟度模型集成 CMMI融入了大部分最新的软件管理实践,同时弥补了SW-CMM模型中的缺陷

    RUP:rational unified process 是软件工程化过程。

    XP:extreme program,即极限编程的意思,适用于小型团队的软件开发,想上面第三个问题就可以结合原型法采用这样的开发流程。要明白测试对于xp开发的重要性,强调测试(重点是单元测试)先行的理念。编程可以明显提高代码的质量,持续集成对于快速定位问题很有好处。

    PSP ,TSP 分别是个体软件过程(Personal Software Process),群组软件过程(Team Software Process)大家都知道,CMM只是告诉你怎么做但并没有告诉你如何做,所以PSP/TSP就是告诉你企业在实施CMM的过程中如何做,PSP强调建立个人技能(如何制定计划、控制质量及如何与其他人相互协作等等)而TSP着重于生产并交付高质量的软件产品(如何有效地规划和管理所面临的项目开发任务等等)。总之,单纯实施CMM,永远不能真正做到能力成熟度的升级,只有将实施CMM与实施PSP和TSP有机地结合起来,才能发挥最大的效力。因此,软件过程框架应该是CMM/PSP/TSP的有机集成。

    4、还有问一下你是怎样保证软件质量的,也就是说你觉得怎样才能最大限度地保证软件质量?

    测试并不能够最大限度的保证软件的质量,软件的高质量是开发和设计出来的,而不是测试出来的,它不仅要通过对软件开发流程的监控,使得软件开发的各个阶段都要按照指定的规程进行,通过对各个阶段产物的评审,QA对流程的监控,对功能及配置的审计来达到开发的最优化。当然测试也是保证软件质量的一个重要方式,是软件质量保证工程的一个重要组成部分。

    5、然后紧接着就基于目前中国的国情,大多数公司的软件项目进度紧张、人员较少、需求文档根本没有或者很不规范,你认为在这种情况下怎样保证软件的质量?(大多数公司最想知道的就是在这种困难面前你该怎么保证软件的质量,因为这些公司一般就是这种情况—–既不想投入过多又想保证质量,faint )

    出现以上的情况,如果仅仅想通过测试来提高软件质量,那几乎是不可能,原因是没有足够的时间让你去测试,少而不规范的文档导致测试需求无法细化何谈足够且有针对性进行测试。所以,作为公司质量保证的你应该先和项目经理确定符合项目本身最适合的软件生命周期模型(比如RUP的剪裁,原型法),明确项目的开发流程并督促项目组按照此流程开展工作,所有项目组成员(项目经理更加重要)都要制定出合理的工作计划,加强代码的单元测试,在客户既定的产品交付日期范围之内,进行产品的持续集成等等,如果时间允许可以再配合客户进行必要的系统功能测试。

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

    1、掌握基本的测试基础理论 ;

    2、本着找出软件存在的问题的态度进行测试,即客观吧,不要以挑刺形象出现

    3、可熟练阅读需求规格说明书等文档 ;

    4、以用户的观点看待问题

    5、有着强烈的质量意识 ;

    6、细心和责任心 ;

    7、良好的有效的沟通方式(与开发人员及客户)

    8、具有以往的测试经验 ;能够及时准确地判断出高危险区在何处.

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

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

    10、您所熟悉的软件测试类型都有哪些?

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

    功能测试在测试工作中占的比例最大,功能测试也叫黑盒测试。

    性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。

    界面测试,界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。

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

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

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

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

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

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

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

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

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

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

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

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

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

    4、测试内部数据结构的有效性,等等。4、验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。验收测试是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是验收测试的任务,即软件的功能和性能如同用户所合理期待的那样。

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

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

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

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

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

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

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

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

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

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

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

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

    14、 您所熟悉的测试用例设计方法都有哪些?

    1.等价类划分

    2.边界值分析法

    3.错误推测法

    4.因果图方法

    15、你的测试职业发展是什么?

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

    17、你自认为测试的优势在哪里?

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

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

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

    各位考官好,今天能够站在这里参加面试,有机会向各位考官请教和学习,我感到非常的荣幸。希望通过这次面试能够把自己展示给大家,希望大家记住我.我的性格比较开朗,随和。能关系周围的任何事,和亲人朋友能够和睦相处,并且对生活充满了信心。我以前在检察院实习过,所以有一定的实践经验。在外地求学的四年中,我养成了坚强的性格,这种性格使我克服了学习和生活中的一些困难,积极进取成为一名法律工作者是我多年以来的强烈愿望。如果我有机会被录用的话,我想,我一定能够在工作中得到锻炼并实现自身的价值,同时,我也认识到,人和工作的关系是建立在自我认知的基础上的,我认为我有能力也有信心做好这份工作。公务员是一个神圣而高尚的职业,它追求的是公共利益的最大化,它存在的根本目的是为人民服务,为国家服务。雷锋说过:人的生命是有限的,而为人民服务是无限的,我要把有限的生命投入到无限的为人民服务当中去,这也是我对公务员认知的最好诠释,所以,这份工作能够实现我的社会理想和人生价值,希望大家能够认可我,给我这个机会!

    各位考官好,今天能够站在这里参加面试,有机会向各位考官请教和学习,我感到非常的荣幸.希望通过这次面试能够把自己展示给大家,希望大家记住我.我叫....,今年..岁.汉族,..本科.我平时喜欢看书和上网浏览信息.我的性格比较开朗,随和.能关系周围的任何事,和亲人朋友能够和睦相处,并且对生活充满了信心.我以前在..实习过,所以有一定的实践经验.在..求学的..年中,(简单的但是有重点的介绍自己拿手的技术 比如:我精通了Hibernate框架 能很好的做持久化操作 还有...等等)并且让我养成了坚强的性格,这种性格使我克服了学习和生活中的一些困难,积极进去.成为一名JAVA软件工程师是我多年以来的强烈愿望.如果我有机会被录用的话,我想,我一定能够在工作中得到锻炼并实现自身的价值.同时,我也认识到,人和工作的关系是建立在自我认知的基础上的,我认为我有能力也有信心做好这份工作.所以,这份工作能够实现我的理想和人生价值,希望在这么多的应聘者中,您能给我一次机会,我将献上我最真诚的一面以及个人才能。我相信自己能够很快的融入到贵公司的工作中!谢谢!! !

    如果对软件测试有兴趣,想了解更多的测试知识,解决测试问题,以及入门指导,帮你解决测试中遇到的困惑,我们这里有技术高手。如果你正在找工作或者刚刚学校出来,又或者已经工作但是经常觉得难点很多,觉得自己测试方面学的不够精想要继续学习的,想转行怕学不会的,可以加入我的QQ群高级测试学习大家庭:313782132

    展开全文
  • 软件测试常见面试题汇总

    千次阅读 2020-09-21 09:13:36
    首先,面试官是为你对于“软件测试行业”的认知,其次是考核你对于未来职业发展方向的看法,如果你回答只是简单的这个行业简单、容易、工资高,这显然不是面试官想要得到的。你应该从一下几点回答:(仅供参考)  1、...

    1、专业不对口,你为什么选择软件测试
    首先,面试官是为你对于“软件测试行业”的认知,其次是考核你对于未来职业发展方向的看法,如果你回答只是简单的这个行业简单、容易、工资高,这显然不是面试官想要得到的。你应该从一下几点回答:(仅供参考) 
    1、自身兴趣,喜欢软件测试工作,喜欢找BUG。  
    2、 行业发展,测试行业属于朝阳行业,可持续发展。  
    3 、缺口大,目前行业内人较少,按照黄金比例国内严重不足。  
    4 、未来发展,随着国内对于软件质量越来越重视,发展将非常广阔。  
    5、 职业寿命长,积累行业经验。  
    6 、薪酬,目前测试薪酬已经可以跟开发持平了。
    2、正交实验法
    正交试验设计(Orthogonal experimental design)是研究多因素多水平的又一种设计方法,它是根据正交性从全面试验中挑选出部分有代表性的点进行试验,这些有代表性的点具备了“均匀分散,齐整可比”的特点,正交试验设计是分式析因设计的主要方法。是一种高效率、快速、经济的实验设计方法。
    01、用正交表设计测试用例的步骤
    (1) 有哪些因素(变量)
    (2) 每个因素有哪几个水平(变量的取值)
    (3) 选择一个合适的正交表(或用工具生成)
    (4) 把变量的值映射到表中
    (5) 把每一行的各因素水平的组合做为一个测试用例
    (6) 加上你认为可疑且没有在表中出现的组合
    02、如何选择正交表
    考虑因素(变量)的个数
    考虑因素水平(变量的取值)的个数
    考虑正交表的行数
    取行数最少的一个
    3、软件的生命周期
    立项,需求分析,设计、编码、测试,发布,运行维护,淘汰
    4、Python的数据类型有什么,分别有什么特点
    不可变数据:Number(数字)、String(字符串)、Tuple(元组)
    可变数据:List(列表)、Dict(字典,键值对存储,键不能重复)、Set(集合,不重复)
    5、软件测试的类型
    按照开发阶段划分:
    单元测试:模块测试,对软件的最小单位程序模块进行正确性检验
    集成测试:组装测试,检验程序单元或部件的接口关系
    确认测试:有效性测试,模拟环境下,验证软件是否和预期一致
    系统测试:真实环境下运行系统,检验软件能否和系统(硬件,外设,网络,支持平台等)正确
    配置链接,是否满足用户需求
    验收测试:依照验收文档对整个系统进行测试评审,决定是否接收或拒收
    按照测试技术划分:
    黑盒测试:通过软件的外部表现来发现其缺陷和错误,不考虑内部结构和处理过程,通过测试来
    检测每个功能是否能正常使用
    作用:发现功能不正确或者遗漏
    界面错误
    输入和输出错误
    数据库访问错误
    性能错误
    初始化和终止错误
    白盒测试:对程序的内部结构的分析检测,结构测试
    灰盒测试:关注输出对输入的正确性,同时也关注内部表现
    按照代码运行划分:
    静态测试:不实际运行被测对象,静态的检查程序代码界面和文档中可能存在的错误
    代码测试
    界面测试
    文档测试
    动态测试:运行被测对象,输入数据,检查实际输出结果和预期结果是否一致
    按照软件特性分类:
    功能测试:黑盒测试的一方面,检查软件功能是否符合需求
    逻辑功能测试
    界面测试
    易用性测试
    安装/卸载测试
    兼容性测试
    性能测试:功能的另一个指标,在特定时间空间条件下,是否使用正常
    安全性测试:系统的保护机制是否在实际应用中对系统进行保护
    其他分类:
    回归测试:对软件的新版本测试时,重复执行之前版本的所有测试用例,验证之前bug被修复,
    并且修复这些bug后没有引发新的bug
    冒烟测试:对一个新版本进行系统的大规模测试之前,快速验证软件的基本功能是否实现,也成
    可测性测试
    随机测试:基于经验和直觉,发现一些边缘性错误
    monkey测试:随便乱点,不带主观意识和想法,让一些意想不到的操作造成错误的结果。
    6、HTTP和HTTPS的区别
    1)HTTPS协议需要到ca申请证书,一般免费证书很少,需要缴费
    2)HTTPS 具有安全性的ssl加密传输协议
    3)连接方式不同,http端口号80,HTTPS端口号是443
    4) HTTPS协议是由ssl+http协议够贱的接近性加密传输,身份认证的网络协议,比http协议安全
    7、什么是软件测试,测试的定义
    是指对软件开发过程中产生的所有产品,包括程序以及相关文档进行测试,通过检查和提供客观证据来证实指定的需求是否满足,以及特定的目的功能或应用是否已经实现
    8、与界面处测试相比,接口测试有什么区别
    接口测试没有具体的页面
    他是通过接口规范文档上的调用地址,请求参数,拼接请求信息
    然后发送请求,检查返回结果
    只需测入参和出参就行
    9、作为一个好的测试人员应该具备哪些素质
    善于说服,不放过蛛丝马迹,具有创造性,追求完美,具有洞察力,幽默,善于学习
    10、如果今天你被公司录取,你有什么规划

    11、Linux中压缩和解压
    bzip2 压缩文件,自动生成后缀名为.bz2 的压缩文件,原文件消失
    bunzip2 压缩文件名1 2 3 解压,可多个
    gzip 压缩文件,自动生成后缀名为.gz 的压缩文件,原文件消失
    gunzip 压缩文件名1 2 3 解压,可多个
    tar 压缩或解压文件或目录,不会对源文件有任何影响
    12、什么是功能测试、性能测试、兼容性测试
    功能测试:黑盒测试的一方面,检查软件功能是否符合需求
    性能测试:功能的另一个指标,在特定时间空间条件下,是否使用正常
    兼容性测试是指检查软件之间能否正确地进行交互和共享信息
    13、假如有一个网站,你会怎么测试,说一下测试思路
    ① 首先,查找需求说明、网站设计 m 等相关文档,分析测试需求。 制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:
    功能性测试;界面测试;性能测试;数据库测试;安全性测试;兼容性测试
    ② 设计测试用例:
    功能性测试可以包括,但不限于以下几个方面:
    链接测试。链接是否正确跳转,是否存在空页面和无效页面,是否有不正确的出错信息返回等。
    ③ 提交功能的测试。
    多媒体元素是否可以正确加载和显示。
    多语言支持是否能够正确显示选择的语言等。
    ④ 界面测试可以包括但不限于以下几个方面:
    页面是否风格统一,美观;页面布局是否合理,重点内容和热点内容是否突出;控件是否正常使用;对于必须但为安装的空间,是否提供自动下载并安装的功能;文字检查
    ⑤ 性能测试一般从以下两个方面考虑:
    压力测试;负载测试;强度测试
    数据库测试要具体决定是否需要开展。数据库一般需要考虑连结性,对数据的存取操作,数据内容的验证等方面。
    ⑥ 安全性测试:
    1 基本的登录功能的检查 2 是否存在溢出错误,导致系统崩溃或者权限泄露 3 相关开发语言的常见安全性问题检查,例如 SQL 注入等。4 如果需要高级的安全性测试,确定获得专业安全公司的帮助,外包测试,或者获取支持
    ⑦ 兼容性测试,根据需求说明的内容,确定支持的平台组合:浏览器的兼容性;操作系统的兼容性;软件平台的兼容性;数据库的兼容性
    开展测试,并记录缺陷。合理的安排调整测试进度,提前获取测试所需的资源,建立管理体系(例如,需求变更、风险、配置、测试文档、缺陷报告、人力资源等内容)。定期评审,对测试进行评估和总结,调整测试的内容。
    14、测试用例的定义,测试用例的作用
    测试用例:设计一个情况,用来检验程序在某种情况下是否能达到和预期结果一致的运行结果
    测试用例的作用:
    指导测试实施
    规划测试数据
    是编写测试脚本的设计规格说明书
    作为测试结果的度量标准
    作为分析缺陷的标准
    15、软件测试的对象是什么?
    程序,数据,和文档
    16、白盒测试都有哪些方法?
    白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试
    语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖
    17、你对软件测试工作的认识?
    测试工作的定义和目的
    软件测试的定义:是指对软件开发过程中产生的所有产品,包括程序以及相关文档进行测试,通过检查和提供客观证据来证实指定的需求是否满足,以及特定的目的功能或应用是否已经实现
    软件测试的目的:
    1)以最少的人力物力找出软件中潜在错误和缺陷,保证软件质量,避免商业风险
    2)记录测试过程中的文档和数据,为后续项目开发和测试过程提供输入,避免同样错误的发生
    3)高效的测试管理手段,会提高软件测试的的效率和软件产品的质量
    18、没有产品说明书和需求文档的情况下能够进行黑盒测试吗?
    实际上没有任何文档的时候,测试人员是能够进行黑盒测试的,这种测试方式我们可以称之为探索测试,具体做法就是测试工程师根据自己的专业技能、领域知识等不断的深入了解测试对象、理解软件功能,进而发现缺陷。
    在这种做法基本上把软件当成了产品说明书,测试过程中要和开发人员不断的进行交流。尤其在作项目的时候,进度压力比较大,可以作为加急测试方案。最大的风险是不知道有些特性是否被遗漏。
    19、测试用例在软件测试中的作用?(重复)
    指导测试实施
    规划测试数据
    是编写测试脚本的设计规格说明书
    作为测试结果的度量标准
    作为分析缺陷的标准
    20、如果有一个门,怎么测试,说一下思路?
    外形,颜色,质地,安全性,承重能力,质量等等,考虑多个方面
    21、简单说一下数据库的增删改查
    新建数据库 : create database 库名;
    删除数据库:drop database 库名;
    创建表:create table 表名
    修改表:alter table 表名
    添加数据:insert into 表名(属性名1,属性名2,属性名3) values (值1,值2,值3)
    删除:delete from 表 where
    查看 select * from 表
    22、说一下自动化测试的特点
    可重复性:
    可程序化:可以进行编程,对格式进行规范和标准
    可靠:没有情绪化,稳定
    提高测试的精确度
    提升测试资源的利用率:人力资源,时间资源,
    23、说一下软件开发模型和软件测试的模型
    软件开发模型:
    瀑布模型,按阶段划分,只关注后续阶段
    快速原型模型,
    增量模型:把待开发软件系统模块化,增量组件,分批次进行分析设计等
    迭代模型:强调开发的深入
    螺旋模型:风险分析
    软件测试模型:
    v模型:编码完成之后进行测试
    w模型:测试和开发并行
    H模型:将测试活动独立出来,只要某个测试达到准备就绪点,就可以开展测试
    X模型:针对程序片段进行分离的编码和测试,之后通过频繁的交接,集成合称为可执行程序
    24、在接口测试中get请求和post请求有什么区别
    GET请求指定的页面信息, 并返回实体主体。
    post:向指定资源提交数据进行处理请求, 数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
    25、边界值的上点、内点和离点(10,20】 左开右闭
    上点:10,20
    内点:15
    离点:11,21
    26、selenium元素定位方式
    find_element_by_id()
    find_element_by_name()
    find_element_by_class_name()
    find_element_by_tag_name() #不能保证唯一,基本不用
    find_element_by_link_text()
    find_element_by_paryial_link_text() #部分链接文本
    find_element_by_xpath()#当所有的都找不到是,xpath可以找到,最精确
    find_element_by_css_selector() #
    27、MongoDB和MySQL数据库的区别
    28、说一下如何设计出高效的测试用例

    有效性:测试用例是测试人员测试过程中的重要参考依据。
    可复用性:良好的测试用例具有重复使用的功能,使得测试过程事半功倍,提高测试效率。
    易组织性:即使是小的项目,也可能会有几千甚至更多的测试用例,测试用例可能在数月甚至几年的测试过程中被创建和使用。
    可评估性:从测试的项目管理角度来说,测试用例的通过率是检验代码质量的保证。
    可管理性:测试用例也可以作为检验测试人员进度、工作量以及跟踪/管理测试人员的工作效率的标准。
    29、简述软件测试周期
    软件测试生命周期:
    获取测试需求——>编写测试计划——>制定测试方案——>开发和设计测试用例——>执行测试
    ——>提交缺陷报告——>测试的分析与评审——>提交测试总结——>准备下一版本的测试
    30、说一下性能测试包含什么内容
    一般性能测试:验证软件在正常情况和系统条件下能否满足性能指标。
    负载测试:验证系统在一定压力下延长系统运行时间,直到系统性能出现"拐点"
    压力测试: 验证系统在已经处于 极限负载下或者某指标已经处于饱和状态下系统性能的表现。
    稳定性测试:验证系统在连续运行的情况下下,查看系统的各项性能指标。- - MTBF (错误发生的平均时间间隔)
    大数据量测试:验证系统在使用大批量数据对系统产生压力或影响的情况下系统各种指标是否正常。
    配置测试:验证系统在不同的软件和硬件配置的情况下,找出系统各项资源的最优分配
    31、在禅道中怎么提交bug?
    32、说一下http常见的响应状态码?

    100 继续。客户端应继续其请求
    200 请求成功
    301 资源永久被转移到其他url
    404 请求的资源或网页等不存在
    500 内部服务器错误
    33、说一下软件开发模型?
    软件开发模型:
    瀑布模型,按阶段划分,只关注后续阶段
    快速原型模型,
    增量模型:把待开发软件系统模块化,增量组件,分批次进行分析设计等
    迭代模型:强调开发的深入
    螺旋模型:风险分析
    34、说一下web端元素定位失败的原因?
    1.动态id定位不到元素
    解决办法:使用xpath的相对路径方法查找到该元素。
    2.iframe原因定位不到元素
    原因:一个网页嵌套了多个iframe/frame,直接定位是不行的。
    解决办法:要先进入对应的iframe/frame。
    3.点击速度过快 页面没有加载出来就需要点击页面上的元素。
    4、通过class定位不到元素
    原因是该iframe中有多个相同的class
    5、目标元素是否直接可见/是否需要鼠标动作才能显现出来
    6、页面操作过程中的窗口弹框alert也会影响页面定位和操作,需要先处理alert
    7、页面部分超链接点击后会在新窗口中打开,目标元素在新窗口中时,需要进行窗口切换
    35、说一下测试和调试的区别?
    两者在主体、目标、方法和思路上有所不同
    1、测试的对象包括软件开发中的文档数据以及代码,调试的对象一般来说只是代码
    2、测试可以计划,预先制定测试用例和过程,工作进度可以度量,而调试的过程以及持续时间
    难以度量
    3、测试从已知条件开始,使用预先定义的过程,会有预期的结果,调试是从位置的条件开始,结束的过程一般不可预计
    36、简单说一下缺陷的生命周期?
    缺陷的生命周期
    发现缺陷,提交缺陷,确认缺陷,分配缺陷,修复缺陷,验证缺陷(验证不成功则重新提交),关闭缺陷
    37、针对表单的测试,主要的测试内容?
    表单一般指在界面进行数据提交操作的,包括新增和修改数据。例如注册
    它涉及到的测试包括以下方面,每个点的验证都要考虑有效及无效输入的情况:
    1)输入框测试 ——长度、数据类型、必填、重复、空格、sql注入以及一些业务相关约束;
    2)下拉框测试 ——默认值、数据完整性/正确性、第一个/最后一个/中间一个选取、手动输入值模糊匹配、联动选择;业务常见选取的操作;
    3)图片、视频、excel、txt等文件上传测试 ——大小、尺寸、格式、数量、文件内容规则验证;
    4)表单提交按钮测试 ——是否支持回车/单击、快速多次点击是否重复提交表单、网络中断(弱网)提交、提交之后是否有提示、提交后内容是否加密、提交是否做权限校验控制、多人针对表单同时操作的场景测试
    38、是不是所有已经发现的缺陷都需要被修复?为什么?
    从技术上讲,所有的软件缺陷都是能够修复的,但是没有必要修复所有的软件缺陷。测试人员要做的是能够正确判断什么时候不能追求软件的完美。对于整个项目团队,要做的是对每一个软件缺陷进行取舍,根据风险决定那些缺陷要修复。发生这种现象的主要原因如下:
    -没有足够的时间资源。在任何一个项目中,通常情况下开发人员和测试人员都是不够用的,而且在项目中没有预算足够的回归测试时间,再加上修改缺陷可能引入新的缺陷,因此在交付期限的强大压力下,必须放弃某些缺陷的修改。
    -有些缺陷只是特殊情况下出现,这种缺陷处于商业利益考虑,可以在以后升级中进行修复。
    -不是缺陷的缺陷。我们经常会碰到某些功能方面的问题被当成缺陷来处理,这类问题可以以后有时间时考虑再处理。
    最后要说的是,缺陷是否修改要由软件测试人员、项目经理、程序员共同讨论来决定是否修复,不同角色的人员从不同的角度来思考,以做出正确的决定。
    39、cookies和session的区别?
    cookie数据保存在客户端,session数据保存在服务端。
    cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,如果主要考虑到安全应当使用session
    session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,如果主要考虑到减轻服务器性能方面,应当使用COOKIE
    40、说一下软件测试的原则?
    1、不能执行穷尽测试
    2、测试的标准建立在用户需求之上
    3、基于质量第一的思想展开测试
    4、测试要尽早介入
    5、测试计划时做好测试的前提
    6、测试用例式设计出来的
    7、缺陷存在群集现象,一段程序中发现的错误数越多,存在的错误概率越大
    8、测试中的杀虫剂现象,测试人员对同一测试对象进行的测试次数越多,发现的缺陷就会越来
    越少的现象。测试人员对测试软件过于熟悉,形成思维定势
    9、重视测试过程中的文档,妥善保存
    10、重视回归测试
    11、不可忽视测试用例,排除随机性
    41、什么是回归测试,回归测试的重点是什么?
    回归测试:对软件的新版本测试时,重复执行之前版本的所有测试用例,验证之前bug被修复,
    并且修复这些bug后没有引发新的bug
    重点:验证缺陷得到了正确的修复,同时对系统的变更,没有影响以前的功能
    42、简述一下用postman发送一个有参数的post请求的步骤?
    43、数据库几大范式内容,及其之间有何联系?

    范式分类(NF)
    第一范式(1NF):关系中的所有属性值均为简单属性,每个属性都不可再分
    第二范式(2NF):先满足第一范式,且每一个非主键字段完全依赖于主键
    第三范式(3NF):先满足第二范式,且非主键之间不能存在依赖关系
    一个基本的关系型数据库至少要满足第一范式,一个完整的的关系型数据库至少要满足
    第三范式
    44、说一下缺陷的优先级怎么划分?
    缺陷的优先级(p)
    立即修复,高优先级,正常排队,低优先级
    45、说几个HTML常用标签?
    p,h,font,br,hr,div,img,a,span,form,
    46、主键有什么特点,自增怎么实现?
    唯一不重复不为空
    创建时 primary keycreate table 表名(
    属性名1 数据类型 primary key,
    属性名2 数据类型
    );
    修改添加
    alter table 表名 add constraint 主键约束名 primary key(属性名);
    47、shell里面的vi编辑器有几种模式
    三种,命令模式,编辑模式,末行模式
    48、如果没有接口文档,怎么做接口测试
    询问开发人员
    测试人员自己抓包获取数据和信息
    49、在MySQL中查询某个表的所有信息
    select * from 表名
    50、虚拟机上搭建linux的步骤
    1.在windows系统下先安装好虚拟机软件,然后下载一个linux系统的镜像文件,常用的linux系统centos
    2.打开vm,选择自定义安装。
    3.这里选择安装来源,ios镜像。这里选第三项稍后安装。
    4.这里选择客户机操作系统类型,版本可以根据自己下载的iso而定。
    5、选择的是虚拟机系统的安装位置
    6、这里制定磁盘大小,由于我们建的虚拟机系统,所以所谓的磁盘大小其实只是一个文件与我们的真是硬盘无多大关联,推荐值以上可以随意安排。剩下的基本都是默认下一步下一步即可。
    7、虚拟机各项参数选择完成后,要对系统里设置进行编辑,之前没有指定操作系统,所以这里要选用ISO映像文件了。如果此处也不指定,在启动操作系统安装时会提示你加入系统文件的。
    8、启动该虚拟机了,进入到centos的安装界面
    9、安装基本下一步就行,安装完成
    51、说一下selenium在Python中的配置
    1、安装和配置Python环境(配置环境变量和验证)
    2、安装Selenium
    命令行,以管理员身份运行
    使用命令pip install Selenium 或者 easy_install Selenium
    3、设置浏览器驱动
    两种方式:
    1、专门设置一个驱动程序所在的目录,然后将该目录设置到path变量中,把文件
    geckodriver.exe放到文件夹中
    2、直接将geckodriver.exe 放在Python的安装目录下即可
    52、数据库中DML和DDL的区别
    DDL数据定义语言实现对数据库的创建修改和删除操作
    DML数据操作语言实现对数据库中数据的增删改查操作
    53、TCP和UDP的区别
    TCP协议:传输控制协议,面向连接,可靠(三次握手),速度慢,效率低, 例如打电话,保证连接之后再接收
    UDP协议:用户数据报协议,(QQ,WX)无连接,不可靠,速度快 发送少量数据 例如对讲机,不在就收不到
    54、测试用例和测试脚本之间的关系
    测试用例是编写测试脚本的设计规格说明书
    测试用例为实施测试而向被测试系统提供的输入数据、操作或各种环境设置以及期望结果的一个特定的集合。
    测试脚本是为了进行自动化测试而编写的脚本。
    测试脚本的编写必须对应相应的测试用例
    55、接口测试的主要测试点
    检查数据的交换
    传递和控制管理过程
    系统间的相互逻辑依赖关系
    56、简单说一下Python中列表、元祖、字典、集合各自的特点
    列表(list)一组元素,类似数组 list1 = [1,23,55 ]
    元祖 类似于枚举tuple,值不能被更改 tuple1 = (1,2,3)
    字典 类似于map,存储key_value对应值的一种类型,以键值对形式存在的东西都是用这个来存
    储,dict,例如:stu_score = {”qq“:88,”ww“:99},字典的key–value中的key值是不能重
    复的
    集合 set是一组不能重复的值组成的,set1 = {1,2,3}
    57、网页的性能测试主要包含哪些方面的测试?
    网站压力测试、稳定性测试、并发测试等
    58、数据库中的事务是什么,有什么特征?
    事务是数据库操作最小单元,把多件事当一件事来处理,是一组不可在分割的操作集合。作为单个逻辑工作单元执行一系列操作,这些操作作为一个整体一起向系统提交,要么都执行,要么都不执行。
    特性ACID(原子性、一致性、隔离性、持久性)
    原子性:原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,,因此事务操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有一点影响。
    一致性:一致性是指事务必须使数据库从一个一致性状态转换到另一个一致性状态,就是说事务执行前后都必须处在一致性状态。
    隔离性:隔离性使当多个用户访问数据库时,比如操作同一张表,数据库开启的每一个事务,不能被其它事务干扰,多个并发事务之间相互隔离。
    持久性:持久性是指一个事务一旦提交,对数据库中数据的改变是永久的,即使是数据库系统遇到故障也不会丢失提交的事务操作。
    59、工作中主要的职责是什么?主要负责什么模块?
    60、软件评审主要有什么人员参加?目的是什么?

    参加人员:客户、项目经理、开发人员、测试人员。
    目的:查看软件在未正式投入运行前是否还存在问题。对于不同软硬件平台能否正常运行,是否存在着与客户理解不一致的地方,同时可以对一些可以改进的地方再进行修改。
    61、说一下linux常用命令?
    62、怎样提高数据库查询效率?

    建立索引
    使用存储过程
    优化SQL语句,减少或避免多表连结
    63、什么是正向用例,什么是反向用例,为什么要正向要写前面?
    64、缺陷的属性?

    缺陷的属性:
    缺陷类型
    缺陷严重程度
    缺陷优先级
    缺陷状态
    缺陷起源
    缺陷来源
    缺陷根源
    65、冒烟测试的概念?
    对一个新版本进行系统的大规模测试之前,快速验证软件的基本功能是否实现,也成可测性测试
    66、测试结束的标准是什么?
    1.基于“测试阶段”的原则:每个软件的测试一般都要经过单元测试、集成测试、系统测试这几个阶段,
    2.基于“测试用例”的原则:在功能测试用例通过率达到100%,非功能性测试用例达到95%以上,允许正常结束测试。但是使用该原则作为测试结束点时,把握好测试用例的质量,非常关键。
     3.基于“缺陷收敛趋势”的原则:软件测试的生命周期中随着测试时间的推移,测试发现的缺陷图线,首先成逐渐上升趋势,然后测试到一定阶段,缺陷又成下降趋势,直到发现的缺陷几乎为零或者很难发现缺陷为止。
    4.基于“缺陷修复率”的原则:严重错误和主要错误的缺陷修复率必须达到100%,不允许存在功能性的错误;次要错误和一般错误的缺陷修复率必须达到85%以上,允许存在少量功能缺陷,后面版本解决;对于较小错误的缺陷修复率最好达到60%~70%以上。对于测试建议的问题,可以暂时不用修改。
    5.基于“验收测试”的原则:通过用户的测试验收,就可以立即终止测试部门的测试;如果客户验收测试时,发现了部分缺陷,就可以针对性的修改缺陷后,验证通过后递交客户,相应测试也可以结束。
    6.基于“覆盖率”的原则:
    测试用例的“覆盖率”覆盖了客户提出全部的软件需求,包括行业隐性需求、功能需求和性能需求等等,只要测试用例执行的覆盖率达到100%,基本上测试就可以结束。
    7.基于“项目计划”的原则:大多数情况下,每个项目从开始就要编写开发和测试的Schedule,相应的在测试计划中也会对应每个里程碑,对测试进度和测试结束点做一个限制,一般来说都要和项目组成员(开发,管理,测试,市场,销售人员)达成共识,团队集体同意后制定一个标准结束点。如果项目的某个环节延迟了,测试时间就相应缩短。大多数情况下是所有规定的测试内容和回归测试都已经运行完成,就可以作为一个结束点。
    67、说一下软件测试按开发阶段分为哪几类
    按照开发阶段划分:
    单元测试:模块测试,对软件的最小单位程序模块进行正确性检验
    集成测试:组装测试,检验程序单元或部件的接口关系
    确认测试:有效性测试,模拟环境下,验证软件是否和预期一致
    系统测试:真实环境下运行系统,检验软件能否和系统(硬件,外设,网络,支持平台等)正确
    配置链接,是否满足用户需求
    验收测试:依照验收文档对整个系统进行测试评审,决定是否接收或拒收
    68、HTTP请求的基本格式
    · 请求行
    请求头部
    空行
    请求数据
    69、接口测试的适用场景?
    复杂的系统,功能多的系统
    底层提供数据的系统
    中心服务系统
    为上层应用服务的系统
    一般用于多系统间交互开发
    适用于为其他系统提供系统服务的底层框架系统和中心服务系统
    适用于一个上层系统中的服务层接口
    平台越复杂,系统越庞大,接口测试效果越明显
    70、union和union all的区别
    1、union: 对两个结果集进行并集操作, 不包括重复行,相当于distinct, 同时进行默认专规则的排序;
    2、union all: 对两属个结果集进行并集操作, 包括重复行, 即所有的结果全部显示, 不管是不是重复;
    71、手工测试和自动化测试的优缺点
    (1)谁发现的缺陷多:手工测试,人是有智慧的,可以自觉的判断更多的问题和现象,找出更多的缺陷
    (2)测试质量的高低?手工测试的质量更高,可以发现更多计划之外的缺陷
    (3)与开发的关系?自动化测试需要编写程序的脚本,会有手工测试做不到的方面,也会有做不到手工测试的方面
    (4)二者各自的局限性
    手工测试:相比而言,工作效率低,容易情绪化,导致工作内容不稳定
    自动化测试:不灵活,不能像人一样去思考
    72、TCP的三次握手
    第一次握手
    客户主动(active open)去connect服务器,并且发送SYN 假设序列号为J,服务器是被动打开(passive open)
    第二次握手
    服务器在收到SYN后,它会发送一个SYN以及一个ACK(应答)给客户,ACK的序列号是 J+1表示是给SYN J的应答,新发送的SYN K 序列号是K
    第三次握手
    客户在收到新SYN K, ACK J+1 后,也回应ACK K+1 以表示收到了,然后两边就可以开始数据发送数据了
    73、自动化测试的定义
    使用工具,局部或者全部代替人工进行操作,按照软件测试的标准和规范,提升测试效率,会模拟所有的人工操作行为
    74、之前在上家公司有用过哪些管理工具?
    禅道和SVN
    75、你认为在测试过程中哪一步最重要?
    需求分析和用例设计
    76、软件测试的目的
    1)以最少的人力物力找出软件中潜在错误和缺陷,保证软件质量,避免商业风险
    2)记录测试过程中的文档和数据,为后续项目开发和测试过程提供输入,避免同样错误的发生
    3)高效的测试管理手段,会提高软件测试的的效率和软件产品的质量
    77、如何使一个bug的修复成本最低
    尽早发现
    尽早参与项目,可以帮助我们熟悉项目,开展测试工作
    在进行测试之前,对要测试的功能进行一个优先级的划分比如:半复用的项目,新研发的功能优先级应该排前面。全新的项目,应该根据的项目的2 8原则,80%缺陷隐藏在20%的代码里,所以我们应该着重去测试这20%的代码,而不是在其他功能上花费大量的时间去做测试。那么如何去确定20%的代码呢?确定功能是否常用的,复杂的,开发人员的技术水平,开发人员的业务成熟度,核心的功能等等。依据这些去调研,将功能的测试分优先级,才能帮助你更早去发现bug。
    78、你认为最好测试工作的关键是什么
    对需求的理解和分析
    1.明确测试的目标,增强测试计划的实用性
    2.坚持“5W”规则,明确内容与过程
    利用“5W”规则创建软件测试计划,可以帮助测试团队
    理解测试的目的(Why )
    明确测试的范围和内容(What )
    确定测试的开始和结束日期(When )
    指出测试的方法和工具(How )
    给出测试文档和软件的存放位置(Where )
    3.采用评审和更新机制,保证测试计划满足实际需求
    4.分别创建测试计划与测试详细规格、测试用例
    79、你说一下Python的短路原则
    对于and来说,只要第一个结果计算为假,那么另一个结果不会被计算,直接判断为假
    对于or来说,只要第一个结果计算为真,那么另一个结果不会被计算,直接判断为真。
    80、Python的特点
    解释型语言
    动态语言,变量可以更改,弱类型语言
    交互式语言,可在终端直接书写代码
    面向对象语言 封装,多态,继承
    跨平台语言,运行在不同操作系统中
    81、单元测试和集成测试由谁来做?
    测试
    82、接口测试的意义和作用?
    接口测试主要测试系统各个组件之间接口,以及系统与外部系统之间的交互点
    可以发现很多在页面上操作发现不了的bug
    检查系统的异常处理能力
    检查系统的安全性、稳定性
    前端随便变,接口测好了,后端不用变
    83、Python中list怎么去重?
    循环或者转为set,然后再转为list
    84、说一下常见的操作系统
    DOS、UNIX、Linux、windows、Mac OS
    iOS、Android
    85、在selenium中,如果元素的属性是动态变化的,如何定位元素?
    (1)根据固定的属性定位
    (2)根据相对关系定位:其附近的父节点、子节点、兄弟节点定位
    (3)根据DOM顺序index定位:该元素在主文档或某级父节点中的index,然后根据index可轻松定位
    (4)根据部分元素属性定位:
    xpath中提供了三个非常好的方法来为我们定位部分属性值:
    driver.find_element_by_xpath
    ("//div[contains(@id, ‘btn-attention’)]")
    driver.find_element_by_xpath
    ("//div[starts-with(@id, ‘btn-attention’)]")
    driver.find_element_by_xpath
    ("//div[ends-with(@id, ‘btn-attention’)]")
    86、说一下电脑由几大硬件组成,分别有什么功能?处理器算不算CPU
    CPU(中央处理器):运算器和控制器组成
    主机板(主板):连接各个功能部件
    存储器:存储程序和数据的记忆单元集合,可读/写其中的数据
    显卡(GPU):分为独立显卡和集成显卡,在计算机系统中将要显示的数据信息进行转换,转换完成后并提交给显示器,控制显示器能够显示正确数据信息。
    总线:在各个部件之间传送信息
    芯片组:在主板上起到了管理的作用,对主板上各种硬件和接口提供支持和管理操作
    87、测试环境相关的软件类别,常见(常用的)测试环境的组合?
    测试环境相关的软件类别

    一、操作系统:Windows(Server)、Linux必须会安装
    二、数据库系统:Mysql、MongoDB、SQL Server、Oracle…
    三、服务器应用软件:IIS(Windows系统特有的)、Apache、Tomcat(Apache基金会)、Ngnix
    四、开发语言环境:(Web环境)PHP语言环境(.php)、JAVA开发环境(.jsp)、.net开发环境
    五、其他软件或者工具,视集体的项目而定

    常见(常用的)测试环境的组合:
    一、Linux系统+MySQL+Apache/Ngnix+PHP
    二、Linux + MySQL/Oracle + Tomcat + Java
    三、Windows +SQL Server + IIS + .Net
    88、进行了完美的黑盒测试,还有必要进行白盒测试吗?
    有必要,两个测试方法测试的内容不一样,黑盒测试主要关注被测软件的功能实现,而不是内部逻辑。白盒测试需要对系统内部的结构和工作原理有一个清楚的了解。举个例子:输入三条边的长度,判断三角形的类型。输入的数据是:1、1、√2,这是一个等腰直角三角形,根据代码,我们可以进行判断,但是输入值,不行,√2无法输入。
    89、文档测试主要包含什么内容?
    在国内软件开发管理中,文档管理几乎是最弱的一项,因而在测试工作中特别容易忽略文档测试也就不足为奇了。要想给用户提供完整的产品,文档测试是必不可少的。文档测试一般注重下面几个方面:
    文档的完整性:主要是测试文档内容的全面性与完整性,从总体上把握文档的质量。例如用户手册应该包括软件的所有功能模块。
    描述与软件实际情况的一致性:主要测试软件文档与软件实际的一致程度。例如用户手册基本完整后,我们还要注意用户手册与实际功能描述是否一致。因为文档往往跟不上软件版本的更新速度。
    易理解性:主要是检查文档对关键、重要的操作有无图文说明,文字、图表是否易于理解。对于关键、重要的操作仅仅只有文字说明肯定是不够的,应该附有图表使说明更为直观和明了。
    文档中提供操作的实例:这项检查内容主要针对用户手册。对主要功能和关键操作提供的应用实例是否丰富,提供的实例描述是否详细。只有简单的图文说明,而无实例的用户手册看起来就像是软件界面的简单拷贝,对于用户来说,实际上没有什么帮助。
    印刷与包装质量:主要是检查软件文档的商品化程度。有些用户手册是简单打印、装订而成,过于粗糙,不易于用户保存。优秀的文档例如用户手册和技术白皮书,应提供商品化包装,并且印刷精美。
    90、操作系统的功能?
    处理机管理:cpu,内存,其他IO设备,对当前系统上正在运行的程序提供处理机的控制和管理
    存储管理:方便用户使用和提高存储器的利用率(内存利用率最大化)
    设备管理:完成用户提出的IO请求,为用户分配IO设备,并控制IO的执行。
    文件管理:实现对目录的管理,文件读写管理和存取控制
    91、接口测试的必备条件?
    (1)接口说明
    (2)接口地址
    (3)接口请求方式
    (4)接口的参数及说明
    (5)接口的返回值和说明
    92、面向对象的三大特征?
    封装、继承、多态
    93、对客户端怎么进行测试?
    1、功能测试:对功能点一一进行测试,确保每个点都能正确实现,对流程进行测试,确保流程无误。
    2、兼容性测试:对不同操作系统进行测试,且确保都能正常运行。
    3、安全性测试:对程序和数据库进行安全性测试,以确保符合系统安全指标。
    4、UI测试:程序的设计是否够美观、界面图片、按钮是否合适。
    5、易用性测试:所开发的功能,是否让用户容易接受,是否符合大众的操作习惯。
    6、性能测试:程序的性能是否满足用户需求,如程序响应速度以及多用户进行操作时,程序的功能及响应速度是否符合要求。
    7、安装卸载更新测试:程序能否正常安装、卸载、更新。
    94、Python中怎么生成1到10的随机数?
    import random
    random.randomint(1,10)
    95、自动化测试实现的步骤?
    自动测试决定
    测试工具获取
    自动化测试引入
    测试计划、设计与开发(写脚本/用例)
    测试执行与管理
    测试评审和评估
    96、break和continue的区别?
    break:
    (1)结束当前整个循环,执行当前循环下边的语句。忽略循环体中任何其它语句和循环条zhi件测试。 (2)只能跳出一层循环,如果循环是嵌套循环,那么需要按照嵌套的层次,逐步使用break来跳出。
    continue:
    (1)终止本次循环的执行,即跳过当前这次循环中continue语句后尚未执行的语句,接着进行下一次循环条件的判断。
    (2)结束当前循环,进行下一次的循环判断。
    (3)终止当前的循环过程,但并不跳出循环,而是继续往下判断循环条件执行语句,它只能结束循环中的一次过程,但不能终止循环继续进行。
    97、对什么样的数据建立索引
    优先考虑创建索引的列
    有主键或者外键的列
    频繁使用查找的列
    表与表链接是频繁使用的列
    分组或者排序时使用的列
    98、怎么查看linux 端口号被占?用分页查看内容?
    netstat -a 查看端口状态
    cat filename.txt | more 通过管道命令和more实现
    99、性能测试分类?
    一般性能测试:验证软件在正常情况和系统条件下能否满足性能指标。
    负载测试:验证系统在一定压力下延长系统运行时间,直到系统性能出现"拐点"
    压力测试: 验证系统在已经处于 极限负载下或者某指标已经处于饱和状态下系统性能的表现。
    稳定性测试:验证系统在连续运行的情况下下,查看系统的各项性能指标。- - MTBF (错误发生的平均时间间隔)
    大数据量测试:验证系统在使用大批量数据对系统产生压力或影响的情况下系统各种指标是否正常。
    配置测试:验证系统在不同的软件和硬件配置的情况下,找出系统各项资源的最优分配
    100、针对微信朋友圈设计10个用例?
    1、点赞功能
    1、网速对点赞的影响
    2、点赞的人个数显示是否正确
    3、共同好友能否看到点赞状态
    4、能否显示点赞得人的头像和昵称,若能显示是否正确
    5、一行显示几个点赞的头像
    6、能否正常的点赞和取消点赞
    7、点赞显示能否按照时间的先后
    8、消息列表中是否显示点赞人的昵称,头像和点赞时间。
    9、不同手机操作系统显示界面
    10、能否及时刷新
    11、点赞后还能不能评论
    12、点赞是否有上限
    2、评论功能
    1、网速对评论的影响
    2、共同好友能否看得到评论,非共同好友能否看到评论状态
    3、评论能否按时间先后顺序显示
    4、评论能否显示评论人的昵称,若能显示是否正确
    5、能否回复评论
    6、是否可以既评论又点赞
    7、评论和点赞后是怎样现实的,分两次显示,还是一次显示
    8、评论是否有上限
    9、能否及时刷新
    10、未登录情况下能否看得到
    11、不同手机如何显示
    12、是否能将评论全部显示在朋友圈下面
    13、好友能否看到发圈人的评论及回复
    3、界面显示
    1、是否是显示发朋友圈的人的昵称、头像、以及具体内容
    2、是否按照发朋友圈的时间距离现在远近来排序
    3、图片显示是否正确
    4、是否显示自己的个人朋友圈背景
    5、下拉是否有更新
    101、Linux常见目录?
    名称 作用
    /boot 启动目录,内核的存放地
    /etc 配置文件的存放地
    /home 用户目录(家目录)
    /lib 库文件
    /bin 可执行文件和常用的Linux命令
    /sbin 系统管理员的命令和工具
    /tmp 临时文件的存放地
    /mnt 挂载其它文件系统 (共享文件夹)
    /usr 应用程序的安装和存放地
    /root root用户的家目录
    /dev 设备目录
    102、产品的缺陷未修复完,是否可以上线?
    错误。因为缺陷有严重程度、优先级的划分,测试人员要做的是能够正确判断什么时候不能追求软件的完美。对于整个项目团队,要做的是对每一个软件缺陷进行取舍,根据风险决定那些缺陷要修复。比如说:没有足够的时间资源,在交付期限的强大压力下,必须放弃某些缺陷的修改;有些缺陷只是特殊情况下出现;不是缺陷的缺陷。我们经常会碰到某些功能方面的问题被当成缺陷来处理,这类问题可以以后有时间时考虑再处理。
    103、说一下unittest框架的优缺点
    优点:
    1. 能够组织多个用例去执行
    2. 提供丰富的断言方法
    3. 提供丰富的日志与测试结果
    缺点:
    1.必须在TestCase子类里面写
    2.必须写test方法
    3.难以拓展
    104、缺陷的起源
    缺陷的起源:需求、构架、设计、编码、测试、用户
    缺陷的来源:
    需求说明书
    设计文档
    系统集成接口
    数据流(库)
    程序代码
    105、接口测试的工具
    Fiddler:抓包工具
    Postman:支持自动化测试
    Jmeter:接口测试、性能测试
    Loadrunner:接口的自动化测试、性能测试
    Python + requests:
    通过python语言编写脚本,实现接口自动化
    单元测试工具:Unittest
    自动化测试框架:python + requests + unittest + HtmlTestRunner
    106、JMeter工具简介
    Apache JMeter是Apache组织的开放源代码项目,是一个100%纯Java桌面应用,用于接口、性能
    测试。
    它最初被设计用于Web/HTTP应用测试,但后来扩展到其它测试领域。
    它可以用于HTTP和SQL数据库(使用JDBC) 压测,可以用来模拟对服务器或者网络系统加以重负
    荷以测试它的抵抗力,或者用来分析不同负荷类型下的所有运行情况。
    它也提供了-个可视化界面(GUI)用来定制数据显示,测试同步及测试的创建和执行。

    展开全文
  • 软件测试常见面试题汇总大纲

    千次阅读 2020-09-10 13:54:46
    软件的生命周期(prdctrm) 计划阶段(planning)-〉需求分析(requirement)-〉设计阶段(design)-〉编码(coding)->测试(testing)->运行与维护(running maintrnacne) 测试用例 用例编号 测试项目 测试...

    软件的生命周期(prdctrm)

    计划阶段(planning)-〉需求分析(requirement)-〉设计阶段(design)-〉编码(coding)->测试(testing)->运行与维护(running maintrnacne)

    测试用例

    用例编号  测试项目  测试标题  重要级别  预置条件  输入数据  执行步骤   预期结果

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

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

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

    根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据;
    如果没有文档依据,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷;
    根据用户的一般使用习惯,来确认是否是缺陷;
    与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷;
    合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不参杂个人情绪。

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

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

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

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

    设计测试用例:

    功能性测试可以包括,但不限于以下几个方面:

    链接测试。链接是否正确跳转,是否存在空页面和无效页面,是否有不正确的出错信息返回。
    提交功能的测试。
    多媒体元素是否可以正确加载和显示。
    多语言支持是否能够正确显示选择的语言等。
    界面测试可以包括但不限于一下几个方面:

    页面是否风格统一,美观
    页面布局是否合理,重点内容和热点内容是否突出
    控件是否正常使用
    对于必须但未安装的控件,是否提供自动下载并安装的功能
    文字检查
    性能测试一般从以下两个方面考虑:

    压力测试;负载测试;强度测试

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

    安全性测试:

    基本的登录功能的检查
    是否存在溢出错误,导致系统崩溃或者权限泄露
    相关开发语言的常见安全性问题检查,例如SQL注入等
    如果需要高级的安全性测试,确定获得专业安全公司的帮助,外包测试,或者获取支持
    兼容性测试,根据需求说明的内容,确定支持的平台组合:

    浏览器的兼容性;
    操作系统的兼容性;
    软件平台的兼容性;
    数据库的兼容性
    开展测试,并记录缺陷。合理的安排调整测试进度,提前获取测试所需的资源,建立管理体系(例如,需求变更、风险、配置、测试文档、缺陷报告、人力资源等内容)。

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

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

    建立测试计划,确定测试标准和测试范围
    设计典型场景的测试用例,覆盖常用业务流程和不常用的业务流程等
    根据测试用例,开发自动测试脚本和场景:
    录制测试脚本:新建一个脚本(Web/HTML协议);点击录制按钮,在弹出的对话框的URL中输入”about:blank”;在打开的浏览器中进行正常操作流程后,结束录制;调试脚本并保存,可能要注意到字符集的关联。

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

    4、问:一台客户端有三百个客户与三百个客户端有三百个客户对服务器施压,有什么区别?

    300个用户在一个客户端上,会占用客户机更多的资源,而影响测试的结果。线程之间可能发生干扰,而产生一些异常。
    300个用户在一个客户端上,需要更大的带宽。
    IP地址的问题,可能需要使用IP Spoof来绕过服务器对于单一IP地址最大连接数的限制。
    所有用户在一个客户端上,不必考虑分布式管理的问题;而用户分布在不同的客户端上,需要考虑使用控制器来整体调配不同客户机上的用户。同时,还需要给予相应的权限配置和防火墙设置。

    5、试述软件的概念和特点?软件复用的含义?构件包括哪些?

    软件是计算机系统中与硬件相互依存的另一部分,与计算机系统操作有关的计算机程序、规程、规则,以及可能有的文件、文档及数据。

    软件复用(SoftWare Reuse)是将已有软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的花费。软件复用是提高软件生产力和质量的一种重要技术。早期的软件复用主要是代码级复用,被复用的知识专指程序,后来扩大到包括领域知识、开发经验、设计决定、体系结构、需求、设计、代码和文档等一切有关方面。

    可以被复用的软件成分一般称作可复用构件

    6、软件生存周期及其模型是什么?

    软件生存周期(Software life cycle)又称为软件生命期,生存期。是指从形成开发软件概念起,所开发的软件使用以后,知道失去使用价值消亡为止的整个过程。一般来说,整个生存周期包括计划(定义)、开发、运行(维护)三个时期,每个时期又划分为若干个阶段。每个阶段有明确的任务。

    周期模型(典型的几种):

    瀑布模型
    快速原型模型:快速原型模型允许在需求分析阶段对软件的需求进行初步而非完全的分析和定义,快速设计开发出软件系统的原型,该原型向用户展示待开发软件的全部或部分功能和性能;用户对该原型进行测试评定,给出具体改进意见以丰富细化软件需求;开发人员据此对软件进行修改完善,直至用户满意认可之后,进行软件的完整实现及测试、维护。
    迭代模型:迭代包括产生产品发布(稳定、可执行的产品版本)的全部开发活动和要使用该发布必需的所有其他外围元素。在某种程度上,开发迭代是一次 完整地经过所有工作流程的过程:需求分析、设计、实施和测试工作流程。实质上,它类似小型的瀑布式项目。RUP认为,所有的阶段都可以细分为迭代。每一次 的迭代都会产生一个可以发布的产品,这个产品是最终产品的一个子集。
    生命周期阶段:

    软件计划与可行性分析
    需求分析
    软件设计
    编码
    软件测试
    运行与维护

    7、什么是软件测试?软件测试的目的与原则

    在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

    软件测试的目的:

    测试是程序的执行过程,目的在于发现错误
    一个成功的测试用例在于发现至今未发现的错误
    一个成功的测试是发现了至今未发现的错误的测试
    确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明。
    确保产品满足性能和效率的要求
    确保产品是健壮的和适应用户环境的
    软件测试的原则:

    测试用例中一个必须部分是对预期输出或接过进行定义
    程序员应避免测试自己编写的程序
    编写软件的组织不应当测试自己编写的软件
    应当彻底检查每个测试的执行结果
    测试用例的编写不仅应当根据有效和预料到的输入情况,而且也应当根据无效和未预料到的输入情况
    检擦程序是否“未做其应该做的”仅是测试的一半,测试的另一半是检查程序是否“做了其不应该做的”
    应避免测试用例用后即弃,除非软件本身就是个一次性的软件
    计划测试工作时不应默许假定不会发现错误
    程序某部分存在更多错误的可能性,与该部分已经发现错误的数量成正比
    软件测试是一项极富创造性,极具智力的挑战性的工作
    8、软件配置管理的作用?软件配置包括什么?

    软件配置管理(Software Configuration Management,SCM)是一种标识、组织和控制修改的技术。软件配置管理应用于整个软件工程过程。在软件建立时变更是不可避免的,而变更加剧了项目中软件开发者之间的混乱。SCM活动的目标就是为了标识变更、控制变更、确保变更正确实现并向其他有关人员报告变更。从某种角度讲,SCM是一种标识、组织和控制修改的技术,目的是使错误降为最小并最有效地提高生产效率。

    软件配置包括如下内容:配置项识别、工作空间管理、版本控制、变更控制、状态报告、配置审计

    9、什么是软件质量?

    概括地说,软件质量就是“软件与明确的和隐含的定义的需求相一致的程度”。具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述 的开发标准、以及所有专业开发的软件都应具有的隐含特征的程度。 影响软件质量的主要因素,这些因素是从管理角度对软件质量的度量。可划分为三组,分别反应用户在使用软件产品时的三种观点。正确性、健壮性、效率、完整性、可用性、风险(产品运行);可理解性、可维修性、灵活性、可测试性(产品修改);可移植性、可再用性、互运行性(产品转移)。

    10、目前主要的测试用例设计方法是什么?

    白盒测试:逻辑覆盖、循环覆盖、基本路径覆盖

    黑盒测试:边界值分析法、等价类划分、错误猜测法、因果图法、状态图法、测试大纲法、随机测试、场景法

    11、软件的安全性应从哪几个方面去测试?

    软件安全性测试包括程序、数据库安全性测试。根据系统安全指标不同测试策略也不同。

    用户认证安全的测试要考虑问题: 明确区分系统中不同用户权限 、系统中会不会出现用户冲突 、系统会不会因用户的权限的改变造成混乱 、用户登陆密码是否是可见、可复制 、是否可以通过绝对途径登陆系统(拷贝用户登陆后的链接直接进入系统)、用户退出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入 系统 、系统网络安全的测试要考虑问题 、测试采取的防护措施是否正确装配好,有关系统的补丁是否打上 、模拟非授权攻击,看防护系统是否坚固 、采用成熟的网络漏洞检查工具检查系统相关漏洞(即用最专业的黑客攻击工具攻击试一下,现在最常用的是 NBSI 系列和 IPhacker IP ) 、采用各种木马检查工具检查系统木马情况 、采用各种防外挂工具检查系统各组程序的外挂漏洞
    数据库安全考虑问题: 系统数据是否机密(比如对银行系统,这一点就特别重要,一般的网站就没有太高要求)、系统数据的完整性(我刚刚结束的企业实名核查服务系统中就曾存在数据 的不完整,对于这个系统的功能实现有了障碍) 、系统数据可管理性 、系统数据的独立性 、系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)

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

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

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

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

    13、简述什么是静态测试、动态测试、黑盒测试、白盒测试、α测试 β测试

    静态测试是不运行程序本身而寻找程序代码中可能存在的错误或评估程序代码的过程。
    动态测试是实际运行被测程序,输入相应的测试实例,检查运行结果与预期结果的差异,判定执行结果是否符合要求,从而检验程序的正确性、可靠性和有效性,并分析系统运行效率和健壮性等性能。
    黑盒测试一般用来确认软件功能的正确性和可操作性,目的是检测软件的各个功能是否能得以实现,把被测试的程序当作一个黑盒,不考虑其内部结构,在知道该程序的输入和输出之间的关系或程序功能的情况下,依靠软件规格说明书来确定测试用例和推断测试结果的正确性。
    白盒测试根据软件内部的逻辑结构分析来进行测试,是基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量,一般黑盒测试由项目经理在程序员开发中来实现。
    α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由程序员或测试员完成。
    β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。

    14、软件质量保证体系是什么 国家标准中与质量保证管理相关的几个标准是什么?他们的编号和全称是什么?

    SQA由一套软件工程过程和方法组成,以保证(软件的)质量。SQA贯穿整个软件开发过程,(它)应包括需求文档评审、代码控制、代码评审、变更管理、配置管理、版本管理和软件测试。

    软件质量保证(SQA-Software Quality Assurance)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。软件质量保证的目的是使软件过程对于管理人员来说是可见的。它通过对软件产品和活动进行评审和审计来验证软件是合乎标准的。软件质量保证组在项目开始时就一起参与建立计划、标准和过程。这些将使软件项目满足机构方针的要求。

    15、软件产品质量特性是什么?

    功能性:适应性、准确性、互操作性、依从性、安全性。

    可靠性:成熟性、容错性、易恢复性。

    可使用性:易理解性、易学习性、易操作性。

    效率:时间特性、资源特性。

    可维护性:易分析性、易变更性、稳定性、易测试性。

    可移植性: 适应性、易安装性、遵循性、易替换性

    16、软件测试的策略是什么?

    软件测试策略:在一定的软件测试标准、测试规范的指导下,依据测试项目的特定环境约束而规定的软件测试的原则、方式、方法的集合。

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

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

    单元测试:单元测试是针对软件设计的最小单位––程序模块甚至代码段进行正确性检验的测试工作,通常由开发人员进行。
    集成测试:集成测试是将模块按照设计要求组装起来进行测试,主要目的是发现与接口有关的问题。由于在产品提交到测试部门前,产品开发小组都要进行联合调试,因此在大部分企业中集成测试是由开发人员来完成的。
    系统测试:系统测试是在集成测试通过后进行的,目的是充分运行系统,验证各子系统是否都能正常工作并完成设计的要求。它主要由测试部门进行,是测试部门最大最重要的一个测试,对产品的质量有重大的影响。
    验收测试:验收测试以需求阶段的《需求规格说明书》为验收标准,测试时要求模拟实际用户的运行环境。对于实际项目可以和客户共同进行,对于产品来说就是最后一次的系统测试。测试内容为对功能模块的全面测试,尤其要进行文档测试。
    单元测试测试策略:

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

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

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

    集成测试的测试策略:

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

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

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

    基于进度的集成
    优点:具有较高的并行度;能够有效缩短项目的开发进度。
    缺点:桩和驱动工作量较大;有些接口测试不充分;有些测试重复和浪费。

    系统测试的测试策略:

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

    18、软件测试各个阶段通常完成什么工作?各个阶段的结果文件是什么?包括什么内容?

    单元测试阶段:各独立单元模块在与系统地其他部分相隔离的情况下进行测试,单元测试针对每一个程序模块进行正确性校验,检查各个程序模块是否正确地实现了规定的功能。生成单元测试报告,提交缺陷报告。

    集成测试阶段:集成测试是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。该阶段生成集成测试报告,提交缺陷报告。

    系统测试阶段:将通过确认测试的软件,作为整个给予计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行全面的功能覆盖。该阶段需要提交测试总结和缺陷报告。

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

    1、尽可能早的找出系统中的Bug;
    2、避免软件开发过程中缺陷的出现;
    3、衡量软件的品质,保证系统的质量;
    4、关注用户的需求,并保证系统符合用户需求。
    总的目标是:确保软件的质量。

    20、在您以往的工作中,一条软件缺陷(或者叫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. 缺陷描述内容
      缺陷描述的内容可以包含缺陷操作步骤,实际结果和期望结果。操作步骤可以方便开发人员再现缺陷进行修正,有些开发的再现缺陷能力很差,虽然他明白你所指的缺陷,但就是无法再现特别是对系统不熟悉的新加入开发人员,介绍步骤可以方便他们再现。实际结果可以让开发明白错误是什么,期望结果可以让开发了解正确的结果应该是如何。

    21、黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点!

    黑盒测试的优点有:比较简单,不需要了解程序内部的代码及实现;与软件的内部实现无关; 从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;在做软件自动化测试时较为方便。

    黑盒测试的缺点有:不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;自动化测试的复用性较低。

    白盒测试的优点有:帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐 藏的问题。

    白盒测试的缺点有:程序运行会有很多不同的路径,不可能测试所有的运行路径;测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;系统庞大时,测试开销会非常大。

    22、如何测试一个纸杯?

    功能度:用水杯装水看漏不漏;水能不能被喝到

    安全性:杯子有没有毒或细菌

    可靠性:杯子从不同高度落下的损坏程度

    可移植性:杯子在不同的地方、温度等环境下是否都可以正常使用

    兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等

    易用性:杯子是否烫手、是否有防滑措施、是否方便饮用

    用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述

    疲劳测试:将杯子盛上水(案例一)放24小时检查泄漏时间和情况;盛上汽油(案例二)放24小时检查泄漏时间和情况等

    压力测试:用根针并在针上面不断加重量,看压强多大时会穿透

    22、测试计划工作的目的是什么?测试计划文档的内容应该包括什么?其中哪些是最重要的?

    软件测试计划是指导测试过程的纲领性文件:

    领导能够根据测试计划进行宏观调控,进行相应资源配置等
    测试人员能够了解整个项目测试情况以及项目测试不同阶段的所要进行的工作等
    便于其他人员了解测试人员的工作内容,进行有关配合工作
    包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。

    测试计划编写6要素(5W1H):

    why——为什么要进行这些测试;
    what—测试哪些方面,不同阶段的工作内容;
    when—测试不同阶段的起止时间;
    where—相应文档,缺陷的存放位置,测试环境等;
    who—项目有关人员组成,安排哪些测试人员进行测试;
    how—如何去做,使用哪些测试工具以及测试方法进行测试
    测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。所以其中最重要的是测试测试策略和测试方法(最好是能先评审)。

    23、黑盒测试的测试用例常见设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。

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

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

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

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

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

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

    5)正交表分析法:可能因为大量的参数的组合而引起测试用例数量上的激增,同时,这些测试用例并没有明显的优先级上的差距,而测试人员又无法完成这么多数量的测试,就可以通过正交表来进行缩减一些用例,从而达到尽量少的用例覆盖尽量大的范围的可能性。

    6)场景分析方法:指根据用户场景来模拟用户的操作步骤,这个比较类似因果图,但是可能执行的深度和可行性更好。

    7)状态图法:通过输入条件和系统需求说明得到被测系统的所有状态,通过输入条件和状态得出输出条件;通过输入条件、输出条件和状态得出被测系统的测试用例。

    8)大纲法:大纲法是一种着眼于需求的方法,为了列出各种测试条件,就将需求转换为大纲的形式。大纲表示为树状结构,在根和每个叶子结点之间存在唯一的路径。大纲中的每条路径定义了一个特定的输入条件集合,用于定义测试用例。树中叶子的数目或大纲中的路径给出了测试所有功能所需测试用例的大致数量。

    24、详细的描述一个测试活动完整的过程。(供参考,本答案主要是瀑布模型的做法)

    项目经理通过和客户的交流,完成需求文档,由开发人员和测试人员共同完成需求文档的评审,评审的内容包括:需求描述不清楚的地方和可能有明显冲突或者无法实现的功能的地方。项目经理通过综合开发人员,测试人员以及客户的意见,完成项目计划。然后SQA进入项目,开始进行统计和跟踪

    开发人员根据需求文档完成需求分析文档,测试人员进行评审,评审的主要内容包括是否有遗漏或双方理解不同的地方。测试人员完成测试计划文档,测试计划包括的内容上面有描述。

    测试人员根据修改好的需求分析文档开始写测试用例,同时开发人员完成概要设计文档,详细设计文档。此两份文档成为测试人员撰写测试用例的补充材料。

    测试用例完成后,测试和开发需要进行评审。

    测试人员搭建环境

    开发人员提交第一个版本,可能存在未完成功能,需要说明。测试人员进行测试,发现BUG后提交给BugZilla。

    开发提交第二个版本,包括Bug Fix以及增加了部分功能,测试人员进行测试。

    重复上面的工作,一般是3-4个版本后BUG数量减少,达到出货的要求。

    如果有客户反馈的问题,需要测试人员协助重现并重新测试。

    26、BUG管理工具的跟踪过程(用BugZilla为例子)

    测试人员发现了BUG,提交到Bugzilla中,状态为new,BUG的接受者为开发接口人员

    开发接口将BUG分配给相关的模块的开发人员,状态修改为已分配,开发人员和测试确认BUG,如果是本人的BUG,则设置为接收;如果是别的开发人员的问题,则转发出去,由下一个开发人员来进行此行为;如果认为不是问题,则需要大家讨论并确认后,拒绝这个BUG,然后测试人员关闭此问题。

    如果开发人员接受了BUG,并修改好以后,将BUG状态修改为已修复,并告知测试在哪个版本中可以测试。

    测试人员在新版本中测试,如果发现问题依然存在,则拒绝验证;如果已经修复,则关闭BUG。

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

    尽量面对面的沟通,其次是能直接通过电话沟通,如果只能通过Email等非及时沟通工具的话,强调必须对特性的理解深刻以及能表达清楚。

    运用一些测试管理工具如TestDirector进行管理也是较有效的方法,同时要注意在TestDirector中对BUG有准确的描述。

    在团队中建立测试人员与开发人员良好沟通中注意以下几点:

    一真诚、二是团队精神、三是在专业上有共同语言、四是要对事不对人,工作至上

    当然也可以通过直接指出一些小问题,而不是进入BUG Tracking System来增加对方的好感。

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

    回答这个面试题,没有固定统一的答案,但可能是许多企业都会问到的。提供以下答案供考:

    最大的兴趣,感觉这是一个有挑战性的工作;

    测试是一个经验行业,工作越久越能感觉到做好测试的难度和乐趣

    通过自己的工作,能使软件产品越来越完善,从中体会到乐趣

    回答此类问题注意以下几个方面:

    尽可能的切合招聘企业的技术路线来表达你的兴趣,例如该企业是数据库应用的企业,那么表示你的兴趣在数据库的测试,并且希望通过测试提升自己的数据库掌握能力。

    表明你做测试的目的是为了提升能力,也是为了更好的做好测试;提升能力不是为了以后转开发或其他的,除非用人企业有这样的安排。

    不要过多的表达你的兴趣在招聘企业的范畴这外。比如招聘企业是做财务软件的,可是你表现出来的是对游戏软件的兴趣;或招聘是做JAVA开发的,而你的兴趣是在C类语言程序的开发。

    29、你自认为测试的优势在哪里?

    该面试也没有固定不变的答案,但可参考以下几点,并结合自身特点:

    有韧性、有耐心、做事有条理性、喜欢面对挑战、有信心做好每一件事情、较强的沟通能力、从以前的经理处都得到了很好的评价表明我做的很好

    33、简述你在以前的工作中做过哪些事情,比较熟悉什么。参考答案如下。

    我过去的主要工作是系统测试和自动化测试。在系统测试中,主要是对BOSS系统的业务逻辑功能,以及软交换系统的Class 5特性进行测试。性能测试中,主要是进行的压力测试,在各个不同数量请求的情况下,获取系统响应时间以及系统资源消耗情况。自动化测试主要是通过自己写脚本以及一些第三方工具的结合来测试软交换的特性测试。

    在测试中,我感觉对用户需求的完全准确的理解非常重要。另外,就是对BUG的管理,要以需求为依据,并不是所有BUG均需要修改。

    测试工作需要耐心和细致,因为在新版本中,虽然多数原来发现的BUG得到了修复,但原来正确的功能也可能变得不正确。因此要注重迭代测试和回归测试。

    34、在C/C++中static有什么用途?(请至少说明两种)
    1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
    2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。
    3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用

    35、引用与指针有什么区别?
    1) 引用必须被初始化,指针不必。
    2) 引用初始化以后不能被改变,指针可以改变所指的对象。
    3) 不存在指向空值的引用,但是存在指向空值的指针。

    36、Internet采用哪种网络协议?该协议的主要层次结构?Internet物理地址和IP地址转换采用什么协议?

    TCP/IP协议主要层次结构为: 应用层/传输层/网络层/数链路层。

    ARP (Address Resolution Protocol)(地据址解析协议)

    37、说说你对集成测试中自顶向下集成和自底向上集成两个策略的理解,要谈出它们各自的优缺点和主要适应于哪种类型测试;

    自顶向下集成

    优点:较早地验证了主要控制和判断点;按深度优先可以首先实现和验证一个完整的软件功能;功能较早证实,带来信心;只需一个驱动,减少驱动器开发的费用;支持故障隔离。

    缺点:柱的开发量大;底层验证被推迟;底层组件测试不充分。

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

    2、自底向上集成

    优点:对底层组件行为较早验证;工作最初可以并行集成,比自顶向下效率高;减少了桩的工作量;支持故障隔离。

    缺点:驱动的开发工作量大;对高层的验证被推迟,设计上的错误不能被及时发现。
    适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。

    38、软件验收测试包括
    正式验收测试、alpha测试、beta测试三种测试。

    39、系统测试的策略有很多种的
    有性能测试、负载测试、强度测试、易用性测试、安全测试、配置测试、安装测试、文档测试、故障恢复测试、用户界面测试、恢复测试、分布测试、可用性测试。

    40、设计系统测试计划需要参考的项目文档有
    软件测试计划、软件需求工件、和迭代计划

    41.通过画因果图来写测试用例的步骤为___、___、___、___及把因果图转换为状态图共五个步骤。 利用因果图生成测试用例的基本步骤是:

    § 分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。

    § 分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么关系? 根据这些关系,画出因果图。

    § 由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。 § 把因果图转换成判定表。

    § 把判定表的每一列拿出来作为依据,设计测试用例。

    43、请说出这些测试最好由那些人员完成,测试的是什么?

    代码、函数级测试一般由白盒测试人员完成,他们针对每段代码或函数进行正确性检验,检查其是否正确的实现了规定的功能。

    模块、组件级测试主要依据是程序结构设计测试模块间的集成和调用关系,一般由测试人员完成。

    系统测试在于模块测试与单元测试的基础上进行测试。了解系统功能与性能,根据测试用例进行全面的测试。

    44、 设计测试用例时应该考虑哪些方面,即不同的测试用例针对那些方面进行测试?

    设计测试用例时需要注意的是,除了对整体流程及功能注意外,还要注意强度测试、性能测试、压力测试、边界值测试、稳定性测试、安全性测试等多方面。(测试用例需要考虑的四个基本要素是输入、输出、操作和测试环境;另外,测试用例需要考虑的是测试类型(功能、性能、安全……),这部分可以参照TP做答。此外,还需要考虑用例的重要性和优先级)

    45、 在windows下保存一个文本文件时会弹出保存对话框,如果为文件名建立测试用例,等价类应该怎样划分?

    单字节,如A;双字节, AA、我我;特殊字符 /‘。‘;、=-等;保留字,如com;文件格式为8.3格式的;文件名格式为非8.3格式的;/,,*等九个特殊字符。

    46、假设有一个文本框要求输入10个字符的邮政编码,对于该文本框应该怎样划分等价类?

    特殊字符,如10个*或¥;英文字母,如ABCDefghik;小于十个字符,如123;大于十个字符,如11111111111;数字和其他混合,如123AAAAAAA;空字符;保留字符

    47.软件测试项目从什么时候开始,?为什么?
    软件测试应该在需求分析阶段就介入,因为测试的对象不仅仅是程序编码,应该对软件开发过程中产生的所有产品都测试,并且软件缺陷存在放大趋势.缺陷发现的越晚,修复它所花费的成本就越大.

    48、什么是回归测试?

    回归测试: (regression testing): 回归测试有两类:用例回归和错误回归;用例回归是过一段时间以后再回头对以前使用过的用例在重新进行测试,看看会重新发现问题。错误回归,就是在新版本中,对以前版本中出现并修复的缺陷进行再次验证,并以缺陷为核心,对相关修改的部分进行测试的方法。

    49.单元测试、集成测试、系统测试的侧重点是什么?
    单元测试针对的是软件设计的最小单元–程序模块(面向过程中是函数、过程;面向对象中是类。),进行正确性检验的测试工作,在于发现每个程序模块内部可能存在的差错.一般有两个步骤:人工静态检查\动态执行跟踪
    集成测试针对的是通过了单元测试的各个模块所集成起来的组件进行检验,其主要内容是各个单元模块之间的接口,以及各个模块集成后所实现的功能.
    系统测试针对的是集成好的软件系统,作为整个计算机系统的一个元素,与计算机硬件\外设\某些支持软件\数据和人员等其他系统元素结合在一起,要在实际的运行环境中,对计算机系统进行一系列的集成测试和确认测试.

    51.一个测试工程师应具备那些素质?
    1、责任心2、沟通能力3、团队合作精神4、耐心、细心、信心5、时时保持怀疑态度,并且有缺陷预防的意识6、具备一定的编程经验

    53:你所了解的的软件测试类型都有哪些,简单介绍一下。

    按测试策略分类:1、静态与动态测试2、黑盒与白盒测试 3、手工和自动测试 4、冒烟测试 5、回归测试;

    按测试阶段分类:单元测试、集成测试、系统测试;

    其他常见测试方法:1、功能测试 2、性能测试 3、压力测试 4、负载测试 5、易用性测试 6、安装测试 7、界面测试 8、配置测试 9、文档测试 10、兼容性测试 11、安全性测试 12、恢复测试

    54:你认为做好测试计划工作的关键是什么?

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

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

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

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

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

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

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

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

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

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

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

    56:你的测试职业发展目标是什么?

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

    57:测试结束的标准是什么?

    从微观上来说,在测试计划中定义,比如系统在一定性能下平稳运行72小时,目前Bug Tracking System中,本版本中没有一般严重的BUG,普通BUG的数量在3以下,BUG修复率90%以上等等参数,然后由开发经理,测试经理,项目经理共同签字认同版本Release。

    如果说宏观的,则是当这个软件彻底的消失以后,测试就结束了。

    59、一套完整的测试应该由哪些阶段组成?
    可行性分析、需求分析、概要设计、详细设计、编码、单元测试、集成测试、系统测试、验收测试

    61、您是否了解以往所工作的企业的软件开发过程?如果了解,请试述一个完整的开发过程需要完成哪些工作?分别由哪些不同的角色来完成这些工作?您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长哪部分工作?

    开发过程—需求调研(需求人员)、需求分析(需求人员)、概要设计(设计人员)、详细设计(设计人员)、编码(开发人员)

    测试过程—需求评审、系统测试设计、概要设计评审、集成测试设计、详细设计评审、单元测试设计、测试执行

    测试工作的整个过程都做过,擅长做测试设计

    过程决定质量,软件的过程改进正是为了提高软件的质量,将过往的种种经验教训积累起来。

    62、测试用例设计的原则是什么?目前主要的测试用例设计方法有哪些?

    代表性:能够代表并覆盖各种合理的和不合理、合法的和非法的、边界的和越界的、以及极限的输入数据、操作和环境设置等.

    可判定性:即测试执行结果的正确性是可判定的,每一个测试用例都应有相应的期望结果.

    可再现性:即对同样的测试用例,系统的执行结果应当是相同的。

    方法有等价类、边界值、因果图、状态图、正交法、大纲法

    63、面向对象的测试用例设计有几种方法?如何实现?

    给类中的每个构造函数设计一组测试用例

    组合类中的类变量、实例变量

    组合类中的各种方法

    根据前置条件和后置条件设计测试用例

    根据代码设计测试用例

    64、LoadRunner分为哪三个模块?请简述各模块的主要功能。

    Virtual User Generator:用于录制脚步

    Mercury LoadRunner Controller:用于创建、运行和监控场景

    Mercury LoadRunner Analysis:用于分析测试结果

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

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

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

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

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

    66、您所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性能测试……)
      测试类型有:功能测试,性能测试,界面测试。
      功能测试在测试工作中占的比例最大,功能测试也叫黑盒测试。是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。
      性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。
      界面测试,界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。而且设计良好的界面能够引导用户自己完成相应的操作,起到向导的作用。同时界面如同人的面孔,具有吸引用户的直接优势。设计合理的界面能给用户带来轻松愉悦的感受和成功的感觉,相反由于界面设计的失败,让用户有挫败感,再实用强大的功能都可能在用户的畏惧与放弃中付诸东流。
      区别在于,功能测试关注产品的所有功能上,要考虑到每个细节功能,每个可能存在的功能问题。性能测试主要关注于产品整体的多用户并发下的稳定性和健壮性。界面测试更关注于用户体验上,用户使用该产品的时候是否易用,是否易懂,是否规范(快捷键之类的),是否美观(能否吸引用户的注意力),是否安全(尽量在前台避免用户无意输入无效的数据,当然考虑到体验性,不能太粗鲁的弹出警告)?做某个性能测试的时候,首先它可能是个功能点,首先要保证它的功能是没问题的,然后再考虑该功能点的性能测试

    67、请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。
      黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。
      白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。
      软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:
      1、是否有不正确或遗漏的功能?2、在接口上,输入是否能正确的接受?能否输出正确的结果?3、是否有数据结构错误或外部信息(例如数据文件)访问错误?4、性能上是否能够满足要求?5、是否有初始化或终止性错误?
      软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查:
      1、对程序模块的所有独立的执行路径至少测试一遍。
      2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。
      3、在循环的边界和运行的界限内执行循环体。
      4、测试内部数据结构的有效性,等等。
      单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。
      单元测试是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了证明这段代码的行为和我们期望的一致。
      集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。
      系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。(常见的联调测试)
      系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计。
      验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。
    验收测试是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是验收测试的任务,即软件的功能性能如同用户所合理期待的那样。

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

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

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

    71、一份测试计划应该包括哪些内容?

    背景、项目简介、目的、测试范围、测试策略、人员分工、资源要求、进度计划、参考文档、常用术语、提交文档、风险分析。

    72、针对于软件的行业背景,你如何理解软件的业务?

    阅读用户手册了解软件的功能和操作流程;看一些业务的专业书籍补充业务知识;如果有用户实际的数据,可以拿实际的数据进行参考;参考以前的用例和BUG报告;在使用软件的过程中多思考;多与产品经理交流。

    74、如何定位测试用例的作用?

    组织性:编写、组织性、功能覆盖、重复性、跟踪、测试确认

    76、什么是兼容性测试?请举例说明如何利用兼容性测试列表进行测试。

    主要验证软件产品在不同版本之间的兼容性。包括向下兼容和交错兼容,向下兼容是测试软件新版本保留它早期版本功能的情况,交错兼容是验证共同存在的两个相关但不相同的产品之间的兼容性。

    77、对某软件进行测试,发现在WIN98上运行得很慢,怎么判别是该软件存在问题还是其软硬件运行环境存在问题?

    看软件的运行环境要求。如果符合要求则是程序存在问题,若不符合要求则是硬件系统存在问题

    78、需求测试的注意事项有哪些?

    是否使用了公司的模板、文档内容是否符合规范、所有的需求是分级是否清析适当、所有的需求是否具有一致性、需求是否可行(即,该需求组合有解决方案)、需求可否用己知的约束来实现、需求是否足够(即,可以把它送到一个规范的开发组织,并有一个生产出所需要产品的合理的可能性)、所有的其它需求是交叉引用是否正确、用户描述是否清楚、是否用客户的语言来描述需求、每个需求描述是否清楚没有岐义,可以移交给一个独立的组去实现时也能理解、是否所有的需求都是可验证的、是否每条需求都具有独立性,即使发生了变化也不会影响其它需求、性能指标是否明确、非功能性需求是否得到充分表现、是否完整列出适用的标准或协议、标准和协议之间是否存在冲突

    81、主键、外键的作用,索引的优点与不足?

    答:主键:是表中的唯一标示键。作用:保证实体的完整性;加快数据库的操作速度;增加新的表记录时,数据库会自动检索新记录的主键值,不允许该值与其他表中记录的主键重复;数据库会按主键值的顺序显示记录,如果没有设定主键,则按输入的顺序显示记录。

    外键:是主键的从属,表示了两个表之间的联系。作用:使用外键可以避免冗余。

    索引的优点: 1、通过创建唯一性的索引,可以保证表中数据的唯一性; 2、加速数据的检索速度; 3、加快表与表之间的连接; 4、在使用分组与排序数据检索时,可以显著检索分组与排序的时间; 5、在查询的过程中使用优化隐藏器,提供系统性能。

    缺点: 1、创建索引需要时间,且随着数据量的增加而增加; 2、索引需要占用物理空间;

        3、当对表中数据进行修改时,索引也要动态维护,降低了数据的维护速度。
    

    84、性能测试的流程?

    1.测试需求分析2.测试计划制定与评审3.测试用例设计与开发4.测试执行与监控5.分析测试结果6.编写性能测试报告7.测试经验总结

    88、简述bug的生命周期?

    1, 有效地记录BUG 2, 使用BUG模板 3, 评价BUG优先级和严重性 4, BUG的生命 5, 维护BUG数据库

    89、缺陷记录应包含的内容?

    缺陷标识、缺陷类型、缺陷严重程度、缺陷产生可能性、缺陷优先级、缺陷状态、缺陷起源、缺陷来源、缺陷原因;

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

    易用性测试-界面的友好性,操作方便性等。

    功能测试-系统中功能性需求的满足

    安全性测试-系统是否存在安全隐患和漏洞

    性能测试-系统在大并发下的响应速度和健壮性

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

    了解项目或系统的业务需求

    和项目经理协调好,了解项目的进度计划安排情况

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

    对业务和软件需求非常清楚,可以根据需求不同选择不同的测试用例设计

    96、.您以往的工作中是否曾开展过测试用例的评审工作?如果有,请描述测试用例评审的过程和评审的内容。

    评审计划->预审->评审;

    评审内容主要是测试用例对软件需求的覆盖程度,对于相关边界是否考虑,是否针对复杂流程准备多套测试数据,是否有专门针对非功能性需求的测试。

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

    关键是测试脚本的录制,测试时候测试环境的干净。

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

    CQ,也可以使用BugFree等免费工具。

    101、.您如何看待软件过程改进?在您曾经工作过的企业中,是否有一些需要改进的东西呢?您期望的理想的测试人员的工作环境是怎样的?

    将先进的经验或思想固化到过程中,通过过程改进和能力提高来改进软件质量。

    TCP/IP五层协议:应用层、传输层、网络层、数据链路层、硬件层
    在这里插入图片描述

    上面是我收集的一些视频资源,在这个过程中帮到了我很多。如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入我们群【902061117】,里面有各种软件测试资源和技术讨论。
    在这里插入图片描述

    当然还有面试,面试一般分为技术面和hr面,形式的话很少有群面,少部分企业可能会有一个交叉面,不过总的来说,技术面基本就是考察你的专业技术水平的,hr面的话主要是看这个人的综合素质以及家庭情况符不符合公司要求,一般来讲,技术的话只要通过了技术面hr面基本上是没有问题(也有少数企业hr面会刷很多人)
    我们主要来说技术面,技术面的话主要是考察专业技术知识和水平,上面也是我整理好的精选面试题。
    加油吧,测试人!如果你需要提升规划,那就行动吧,在路上总比在起点观望的要好。事必有法,然后有成。
    资源不错就给个推荐吧~

    展开全文
  • 3、软件测试模型。 4、如何定位Bug? 5、版本发布流程、灰度发布方案。 测试用例相关 1、常见测试用例设计方法,举例说明。 2、测试用例优先级如何划分与定义。 3、测试用例评审如何做,以及评审带来的意义。 4、...
  • 软件测试常见面试题(一)

    万次阅读 多人点赞 2019-06-23 20:39:09
    我主要从事web测试,搭建环境,对程序进行集成测试、系统测试、回归测试。还有编写测试用例,使用手册,功能测试文档。 3、开发说不是bug怎么办? 将自己的见解告诉开发,不行就把见解和bug提交项目经理决定。 4、...
  • 常见的软件测试常见面试题

    千次阅读 2019-04-22 22:19:53
    一、软件生命周期 1、瀑布型生命周期模型 自相而下,相互衔接 1)问题的定义及规划 定义:确定软件的开发目的及其可行性。制定项目总体开发计划。(发现问题并规划) 人员:【产品经理】,运营,开发老大,需求分析...
  • (一)您认为做好测试用例设计工作的关键是什么?(二)您所熟悉的测试用例设计方法都有哪些?...2、检查软件/硬件的配置是否符合软件的推荐标准;3、确认当前的系统是否是独立,即没有对外提供什么消耗CPU资源...
  • ...get和post有什么区别? 1.get参数是写url中,post写在body 2.get的参数大小有限制,post没有限制 ...根据接口文档,设计接口测试用例,根据返回状态码确定接口是否正常,查看返回结果,看返回接口数据是否正确。 如:用
  • 从自身入手 任何时间检查自己的问题是非常有必要的。 可以通过如下方式,避免测自己提的 bug 本身有问题: 再次验证所提的 bug 确实是 bug,确保自身对需求的理解无误; 检查bug的描述是否会产生歧义;...
  • 面试时,面试官最喜欢问的问题之一就是,给你某个东西(功能)问你怎么测。比如,问你一个纸杯怎么测、一支笔怎么测、一张纸怎么测、一张公交卡怎么测等等。另外比如给你一个登录功能怎么测、给你一个优惠券怎么测...
  • 对于抓包工具在测试中的使用粗略归纳了几点: 1.从功能测试角度,通过抓包查看隐藏字段 Web 表单中会有很多隐藏的字段,这些隐藏字段一般都有一些特殊的用途,比如收集用户的数据,预防 CRSF 攻击,防网络爬虫,以及...
  • 那么如果你在测试的时候,发现界面上的数据错误。这时候你去找前端,前端就会告诉你是后端的问题(有时候 bug 都不会看 #手动捂脸 (*/ω\*) );你去找后端吧,后端又告诉,这是前端的问题。于是你站在中间,一脸懵...
  • 常见软件测试面试题常见软件测试常见软件测试面试题常见软件测试面试题常见软件测试面试题常见软件测试面试题常见软件测试面试题试题
  • 问:软件测试的原则? 答:https://blog.csdn.net/weixin_30363263/article/details/102986878 问:你在测试中发现了一个 bug ,但是开发经理认为这不是一个 bug ,你应该怎样解决。 1、将问题提交到缺陷...
  • 1.白箱测试和黑箱测试是什么?什么是回归测试?2.单元测试、集成测试、系统测试的侧重点是什么?3.设计用例的方法、依据有那些?4.一个测试工程师应具备那些素质和技能?...10.软件测试项目从什么时候开始...
  • 软件测试面试题(含答案)

    万次阅读 多人点赞 2021-03-01 15:15:38
    软件测试面试题(含答案)
  • 软件测试工程师经典面试题

    万次阅读 多人点赞 2018-10-27 23:55:52
      软件测试工程师,和开发工程师相比起来,虽然前期可能不会太深,但是涉及的面还是比较广的。...测试工程师的面试题,基本上都是大同小异的,面试的核心主要在于框架模块(一到两年工作经验) 。今...
  • 软件测试工程师常见面试题

    千次阅读 2008-01-22 21:49:00
    01. 为什么要在一个团队中开展软件测试工作?因为没有经过测试的软件很难在发布之前知道该软件的质量,就好比ISO质量认证一样,测试同样也需要质量的保证,这个时候就需要在团队中开展软件测试的工作。在测试的过程...
  • 企业公司软件测试面试笔试题集合 软件测试面试题 (测试基础).doc 01_企业面试试卷(综合).doc 01_企业面试试卷(综合)_参考答案.doc 04_企业面试试卷(测试基础).doc 04_企业面试试卷(测试基础)_参考答案.doc...
  • 常见软件测试工程师面试题

    千次阅读 2014-10-22 10:16:17
    如果将你的程序的语言扩展到非英语,例如中文, 你如何测试.  3. 给你一个COCAN, 你如何测试(解释说就是罐装的可口可乐).  4. 当你的程序遇到BUG的时候,你选择怎样处理.  5. 你如何isolation 你程序里的BUG...
  • 初级软件测试面试题 1.请描述如何划分缺陷与错误严重性和优先级别? 给软件缺陷与错误划分严重性和优先级的通用原则: (1)表示软件缺陷所造成饿危害和恶劣程度。 (2)优先级表示修复缺陷的重要程度和次序。 严重...
  • 功能测试常见面试题

    千次阅读 2019-12-19 13:46:13
    1、问:你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决? 首先,将问题提交到缺陷管理库里面进行备案。 然后,要获取判断的依据和标准: 根据需求说明书、产品说明、设计文档等,确认实际...
  • 软件测试经典面试题(小题汇总)

    万次阅读 多人点赞 2019-02-12 01:18:12
    整理收集一些大家的,自己来作答,回答不妥或者不全的还请大家指正 网络 (一)简单描述下TCP协议 TCP:传输控制协议,是传输层通信协议。它有面向连接、可靠、字节流传输等特点 TCP建立连接时,需要三次握手协议 ...
  • 1、目前市面上流行的接口大多有哪几种协议的接口? ... 2、接口的请求方式有哪几种? 答:get post put delete head Trace opions 等,大多以 get 和 post 请求为主 ...接口测试是一个完整的体系,也包括功能测试
  • 软件测试工程师面试题(吐血推荐)

    千次阅读 2021-03-23 17:30:51
    软件测试工程师面试题(吐血推荐)

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,597
精华内容 9,438
关键字:

软件测试常见面试题