2023最新软件测试面试题

这是小编整理的软件测试常用的技术面试题

软件测试面试时一份好简历的重要性


请看下面

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

  2. 你认为测试人员需要具备哪些素质
      做测试应该要有一定的协调能力,因为测试人员经常要与开发接触处理一些问题,如果处理不好的话会引起  2、些冲突,这样的话工作上就会不好做。还有测试人员要有一定的耐心,有的时候做测试很枯燥乏味。除了耐心,测试人员不能放过每一个可能的错误。

  3. 你为什么能够做测试这一行
      虽然我的测试技术还不是很成熟,但是我觉得我还是可以胜任软件测试这个工作的,因为做软件测试不仅是要求技术好,还有有一定的沟通能力,耐心、细心等外在因素。综合起来看我认为我是胜任这个工作的。

  4. 测试的目的是什么?
      测试的目的是找出软件产品中的错误,是软件尽可能的符合用户的要求。当然软件测试是不可能找出全部错误的。

  5. 测试分为哪几个阶段?
      一般来说分为5个阶段:单元测试、集成测试、确认测试、系统测试、验收测试

  6. 单元测试的测试对象、目的、测试依据、测试方法?
      测试对象是模块内部的程序错误,目的是消除局部模块逻辑和功能上的错误和缺陷。测试依据是模块的详细设计,测试方法是采用白盒测试。

  7. 怎样看待加班问题
      加班的话我没有太多意见,但是我还是觉得如果能够合理安排时间的话,不会有太多时候加班的。

  8. 结合你以前的学习和工作经验,你认为如何做好测试。
      根据我以前的工作和学习经验,我认为做好工作首先要有一个良好的沟通,只有沟通无障碍了,才会有好的协作,才会有更好的效率,再一个就是技术一定要过关,做测试要有足够的耐心,和一个良好的工作习惯,不懂的就要问,实时与同事沟通这样的话才能做好测试工作。

  9. 你为什么选择软件测试行业
      因为之前了解软件测试这个行业,觉得他的发展前景很好。

  10. 根据你以前的工作或学习经验描述一下软件开发、测试过程,由哪些角色负责,你做什么
      要有架构师、开发经理、测试经理、程序员、测试员。我在里面主要是负责所分到的模块执行测试用例。

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

  12. 软件测试的流程是什么?
      需求调查:全面了解系统概况、应用领域、软件开发周期、软件开发环境、开发组织、时间安排、功能需求、性能需求、质量需求及测试要求等。根据系统概况进行项目所需的人员、时间和工作量估计以及项目报价。
      制定初步的项目计划。
      测试准备:组织测试团队、培训、建立测试和管理环境等。
      测试设计:按照测试要求进行每个测试项的测试设计,包括测试用例的设计和测试脚本的开发等。
      测试实施:按照测试计划实施测试。
      测试评估:根据测试的结果,出具测试评估报告。

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

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

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

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

  17. 给你一个网站,你如何测试?
    首先,查找需求说明、网站设计等相关文档,分析测试需求。制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:功能性测试;界面测试;性能测试;数据库测试;安全性测试;兼容性测试
    设计测试用例,链接测试、提交功能的测试和界面测试、性能测试。
    数据库测试:要具体决定是否需要开展。数据库一般需要考虑连结性,对数据的存取操作,数据内容的验证等方面。
    安全性测试:
    1 基本的登录功能的检查
    2 是否存在溢出错误,导致系统崩溃或者权限泄露
    3 相关开发语言的常见安全性问题检查,例如 SQL 注入等。
    4 如果需要高级的安全性测试,确定获得专业安全公司的帮助,外包测试,或者获取支持兼容性测试,根据需求说明的内容,确定支持的平台组合:浏览器的兼容性;操作系统的兼容性;软件平台的兼容性;数据库的兼容性开展测试,并记录缺陷。

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

  19. 什么是软件测试?软件测试的目的与原则
    使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
    软件测试的目的:
    测试是程序的执行过程,目的在于发现错误;
    软件测试的原则:
    1、软件测试应尽早执行,并贯穿于整个软件生命周期
    2、软件测试应追溯需求
    3、必须确定预期输出(或结果)
    4、必须彻底检查每个测试结果
    5、严格执行测试计划,排除测试的随意性
    6、注意合法合理的输入,也要注意非法的非预期的输入
    7、检查程序是否做了不该做的
    8、测试应从“小规模”开始,逐步转向“大规模”
    9、反复使用同样的测试会使软件具有抵抗力
    10、关注缺陷的修复

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

  21. 什么是软件质量?
    软件质量:软件产品的特性可以满足用户的功能、性能需求的能力。

  22. 目前主要的测试用例设计方法是什么?
    1、白盒测试:
    逻辑覆盖、循环覆盖、基本路径覆盖
    2、黑盒测试:
    边界值分析法、等价类划分、错误猜测法、因果图法、状态图法、测试大纲法、随机测试和场景法

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

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

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

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

  27. 软件测试的策略是什么? 测试的策略有哪些?
    软件测试策略:在一定的软件测试标准、测试规范的指导下,依据测试项目的特定环境约束
    而规定的软件测试的原则、方式、方法的集合。
    测试策略有黑盒/白盒,静态/动态,手工/自动,冒烟测试,回归测试,公测(Beta测试的策略)。

  28. 软件测试分为几个阶段
    软件测试按阶段划分可以分为单元测试、集成测试、系统测试和验收测试4个阶段

  29. 测试人员在软件开发过程中的任务是什么?
    1、寻找 Bug;
    2、避免软件开发过程中的缺陷;
    3、衡量软件的品质;
    4、关注用户的需求。
    总的目标是:确保软件的质量。

  30. 黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点
    黑盒测试的优点有:
    1、比较简单,不需要了解程序内部的代码及实现;与软件的内部实现无关;
    2、从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;
    3、基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;
    4、在做软件自动化测试时较为方便。
    黑盒测试的缺点有:
    1、不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的 30%;
    2、自动化测试的复用性较低。

你可能感兴趣的:(软件测试,功能测试)