测试面试题整合

1.软件的含义:

  程序、数据及相关文档的完整集合。

2. 软件测试的含义:

  软件测试是发现缺陷的过程,IEEE中的定义是,软件测试是使用人工或自动手动来运行或测定某个系统的过程,目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。

3.软件测试的目的:

  1.验证软件是否满足各类文档说明书等规定的软件质量要求
  2.找出软件缺陷
  3.为软件产品的质量测量和评价提供依据
  4.帮助开发改进开发流程

4. 什么是功能、性能、兼容性

  功能: 代表一个软件能做什么
  性能: 反应软件运行的速度或效率、占用资源的多少等指标
  兼容性: 一个软件和其所在运行环境的依赖程度,包括与硬件、操作平台、其他软件的依赖。

5.测试分为哪几个阶段?每个阶段的测试目的是什么?

  测试分为单元测试、集成测试、系统测试、验收测试四个阶段。前三个阶段的目的是尽可能多的发现缺陷。而验收测试是要验证软件满足了用户需求,帮助用户建立系统可以正常使用的信心,发现缺陷不是此阶段的目标。

6.解释QA及其职责

  QA: 软件质量保证人员
  主要职责: 制定和加强促进软件开发并防止软件缺陷的标准和方法,并监督标准和过程被正确的遵循。

7.测试工程师和软件质量保证的区别

  测试工程师: 在最短的时间内发现尽可能多的缺陷,并确保这些缺陷得以修复。
  软件质量保证: 制定和加强促进软件开发并防止软件缺陷的标准和方法,并监督标准和过程被正确的遵循。

8.测试应该由什么人来进行?

  由独立的第三方来进行,第三方表示测试人员不参与程序的开发。

9.pareto法则、怕累托法则、28原则、82原则

  一般情况下,80%的缺陷聚集在20%的关键核心业务模块中,这个原则说明在测试时,应重点分析和测试20%的核心业务,具体说要做好需求分析。

10.测试与调试的区别是什么:

  测试:由测试人员来进行,主要目的是发现、报告和跟踪缺陷。
  调试:由开发人员进行,主要目标是定位缺陷位置,分析缺陷原因,修复缺陷。

11.IEEE、GB的含义:

  IEEE:国际电气电子工程师协会
  GB:国家标准

12.杀虫剂怪事

  用于描述软件测试越多,其对测试的免疫力越强的现象。测试时,应尝试新方法、不同的测试程序,对程序进行测试,以找出更多软件缺陷。

13.木桶原理

  全面质量管理。

14.Good-enough原则

  做测试时,既不要做过多测试,也不做不充分测试。至于多少测试合适,需要我们不断积累经验,在项目中可以指定最低测试通过标准和测试内容,然后具体问题具体分析。

15.群集效应

  发现的缺陷越多,证明软件存在的缺陷越多。群集效应指导我们在找到软件缺陷的地方要继续找找。

16.什么是软件测试?回归测试?

  确认测试: 缺陷修复后,验证缺陷是否真正修复
  回归测试: 缺陷修复以后,确保对程序的修改没有给软件其他未改变部分带来新的缺陷。

17.测试人员应具备的素质?

  要有责任心,要有破坏的态度,对事不对人,三心二意(细心、信心、耐心、缺陷预防意识、沟通意识),具有一定的开发技能,善于思考。

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

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

19.如何解决开发和测试的矛盾

  1.以沟通和合作的方式开展工作
  2.提高开发技能
  3.换位思考
  4.进行有效沟通

20.测试团队中有哪些角色?

  测试负责人: 制定测试计划,监督安排任务,进行测试总结
  测试工程师: 进行测试需求分析、设计用例、搭建环境、执行用例、提交并跟踪缺陷
  技术支持: 负责环境维护
  配置管理员: 维护版本架构、维护版本库、文档配置
  质量保证人员: 负责软件质量方面的工作

21.什么是软件生命周期?

  从软件最初构思到公开发行的过程。瀑布模型的过程是计划、需求、设计、编码、测试、运行、维护循环。
  瀑布模型有严格的开发步骤,每个阶段是按顺序进行的,每个阶段都必须编写完整的文档,每个阶段完成后必须经过审查才能进行下一步。
  瀑布模型不能迭代、不能反复;测试在编码之后,测试太晚;测试的只是程序。

22.软件开发有什么模型?软件测试主要有哪些模型?

  软件开发模型: 大爆炸模型、边写边改模型、瀑布模型、螺旋模型、敏捷开发模型
  软件测试模型: V模型、W模型、H模型、X模型、前置测试模型、敏捷测试模型

23.简述V模型

在这里插入图片描述
  V模型的过程: 用户需求—>需求分析—>概要设计—>详细设计—>编码—>单元测试—>集成测试—>系统测试—>验收测试。
  优点:
  1.V的左侧表示传统的瀑布开发模型。V的右侧明确地将测试分为不同的级别或阶段,测试过程更为具体;
  2.测试各个阶段和开发的各个阶段相对应
  3.V模型的测试策略包括低层测试和高层测试,低层测试是为了源代码的正确性,高层测试是为了整个系统满足用户的需求。
  缺点:
  1.测试的对象就是程序本身;忽视了测试活动对需求分析、系统设计等活动的验证和确认的功能,直到后期的验收测试才被发现。
  2.测试是开发后的一个阶段。实际应用中容易导致需求阶段的错误一直到最后系统测试阶段才被发现。

优点:
既有底层的测试(单元测试)又有高层的测试(系统测试);
将开发清楚的表现出来,便于控制开发的过程,当所有阶段都结束时,软件开发就结束了。

缺点:
容易让人误解为测试是在开发完成后的一个阶段;
由于其的顺序性,当编码完成后,正式进入测试时,一些bug可能不容易被发现并修改;
忽视了测试对需求分析,系统分析的验证,一直到后期的验收测试才被发现。

24.简述W模型

在这里插入图片描述
  优点:
  1.W模型体现了尽早和不断测试的原则,既强调测试方案设计,也强调测试执行。
  2.左侧V是开发,右侧V是与开发并行的测试,相对于V模型,W模型增加了软件各开发阶段中应同步进行的验证和确认活动,W明确表示出了测试与开发的并行关系。测试与开发是同步进行的,有利于尽早地全面的发现问题。
  3.测试伴随着整个软件开发周期,且测试的对象不仅仅是程序,需求、设计等同样要测试。
  缺点:
  在W模型中,需求、设计、编码等活动被视为串行的,测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一阶段工作。这样就无法支持迭代的开发模型,不利于当前软件开发复杂多变的情况。

优点:
将测试贯穿到整个软件的生命周期,不仅要测试代码,还要对需求、设计进行测试;
测试人员更早的介入到软件开发过程中,能尽早的发现错误,降低开发成本;
测试与开发独立起来,并与开发同步。

缺点:
对有些项目,开发过程中没有文档的产生,所以W模型没法使用;
对于需求和设计的测试技术要求高,实践起来很困难。

25.简述H模型

在这里插入图片描述

  H模型的过程: 将测试活动完全独立出来,形成一个完全独立的流程,将测试准备活动和测试执行活动清晰地体现出来。H模型的测试流程是只要测试准备工作完成,达到测试就绪点,测试就可以执行了。
  优点:
  1.软件测试不仅仅指测试的执行,还包括很多其他的活动。
  2.软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地进行。
  3.H模型反应出软件测试要尽早准备,尽早执行。
  4.软件测试可以进行迭代、反复进行。

26.敏捷开发

  敏捷开发的核心思想是:以人为本,适应变化。
  具体讲:
  1.认为个体和交互重于过程和工具,强调通过过程和工具理解个人和交流的作用;
  2.认为可用软件重于完备文档,强调通过全面的文档理解运行的软件;
  3.认为客户协作重于合同谈判,强调通过合同和谈判得到客户的协作;
  4.认为响应变化重于遵循计划,强调在计划的执行中做出对变更的响应。
  特点:
  1.敏捷开发提倡迭代式和增量式的开发模式,并强调测试在其中的重要作用。
  2.敏捷开发是以用户为中心、以客户需求为导向的开发过程,在此过程中随时做好“迎接变化”的准备,客户是敏捷的关键环节。
  3.敏捷开发没有单一固定的开发方法和过程,敏捷开发有3个共同点:依赖客户的参与、测试驱动以及紧凑的迭代开发周期。

27.敏捷测试

  1.敏捷测试是协同测试的一种形式,程序员结对编程,程序员分饰测试员角色,敏捷测试是连续测试。
  2.敏捷测试侧重单元测试和验收测试。单元测试的过程是先设计单元测试用例,然后进行编码,之后执行测试。
  3.敏捷测试强调客户参与,单元测试通过之后代码集成到代码库中,再有客户进行验收测试,验收测试的结论反馈给开发人员,缺陷得以迅速修复。

28.软件质量要求有哪些?

  功能要求和非功能要求

29.软件非功能要求有哪些?

  性能要求(压力测试、负载测试、容量测试、可靠性测试)、界面测试、兼容性测试、易用性测试、文档测试、可用性测试、安装测试、安全测试、灾难恢复测试等。

30.简述测试的基本过程

  1.测试人员进行测试需求分析
  2.测试负责人编写测试计划
  3.测试人员根据测试需求分析设计和编写测试用例
  4.测试人员搭建测试环境、创建测试数据、执行测试用例、提交缺陷报告并进行跟踪、记录测试事件
  5.进行测试评估和总结

31.给你一个网站,你如何测试?(测试的基本过程、简述测试流程)

1.测试人员进行测试需求分析
2.测试负责人编写测试计划
3.测试人员根据测试需求分析设计和编写测试用例
4.测试人员搭建测试环境、创建测试数据、执行测试用例、提交缺陷报告并进行跟踪、记录测试事件
5.进行测试评估和总结
@@@@@:编写需求分析并评审--->编写测试计划并评审--->设计测试用例并评审--->搭建测试环境、执行测试用例、提交缺陷报告--->进行评估和总结。

  A.首先,查找需求说明、网站设计等相关文档,分析测试需求。
  B.制定测试计划,确定测试范围和测试策略, 一般包括以下几个部分:
    功能性测试;界面测试;性能测试;数据库测试;安全性测试;兼容性测试

  C.设计测试用例:

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

  界面测试可以包括但不限于一下几个方面:
  1.页面是否风格统一,美观
  2.页面布局是否合理,重点内容和热点内容是否突出
  3.控件是否正常使用
  4.对于必须但未安装的控件,是否提供自动下载并安装的功能
  5.文字检查

  性能测试一般从以下三个方面考虑:压力测试;负载测试;强度测试

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

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

  兼容性测试,根据需求说明的内容,确定支持的平台组合:
  1.浏览器的兼容性;
  2.操作系统的兼容性;
  3.软件平台的兼容性;
  4数据库的兼容性

  D.开展测试,并记录缺陷。 合理的安排调整测试进度,提前获取测试所需的资源,建立管理体系(例如,需求变更、风险、配置、测试文档、缺陷报告、人力资源等内容)。
  E.定期评审,对测试进行评估和总结,调整测试的内容。

32.怎么进行测试需求分析

  1.收集各类文档,仔细阅读文档,提出问题,分析问题或沟通解决,整理需求信息。
  2.编写测试需求分析说明书:功能分解,编写检查点和测试点。
  3.需求评审。

33.什么是入口准则、出口准则?

  入口准则: 是进行一项测试工作前需要准备好的前提条件
  出口准则: 是一项测试工作可以结束的前提条件

34.需求评审都有哪些人参与?

  项目经理、开发经理、测试经理、测试人员、开发人员、市场经理、客户等

35.怎么做需求评审或者说需求评审需要评审哪些方面?

  编写或设计需求评审检查单,比如可以检查有无错别字、病句,标点符号使用是否正确,格式是否一致,是否有多余、错误、遗漏的需求

36.测试资源需求有哪些方面?

  人力资源、硬件资源、软件资源

37.什么是测试策略?什么是测试范围?

  测试策略主要是指如何进行某种测试(如功能测试、性能测试、兼容性测试、可用性测试、易用性测试等),用于说明测试方法以及如何使用测试方法。测试范围有时候等价于测试策略,有时候可以表示要进行测试的某个软件部位。

38.什么是BVT?冒烟测试?版本验证测试?怎么测?

  也称冒烟测试、版本验证测试、小版本验证测试、版本构件测试。冒烟测试用例是一组想先运行以确认这个给出的小版本是否可以测试的测试用例。冒烟测试主要测试软件的基本功能,以判断整个软件值不值得进行大规模测试。通常由一个人进行1~2小时的测试,一般不测试次要功能和各种错误。

39.测试计划的内容和目的是什么?

  包含了产品概述、测试区域/测试策略/测试范围/测试目标(测试项、被测特征)、测试配置/测试资源、测试周期、进度安排(测试任务、人员安排)、测试方法/途径、测试交流、风险分析等内容。
  目的是指导测试过程,规定测试活动的范围、方法、资源和进度;明确正在测试的项目、要测试的特性、要执行的测试任务、每个任务的责任人以及与计划相关的风险。

40.怎么判断是不是软件缺陷?

  1.软件未达到产品说明书标明的功能;
  2.软件出现了产品说明书指明不会出现的错误;
  3.软件功能超出产品说明书指明的范围;
  4.软件未达到产品说明书虽未指出但应达到的目标;
  5.软件测试员具体问题具体分析,认为软件难以理解、不易使用、运行速度缓慢,或最终用户认为不好。

41.缺陷的产生主要有哪些原因?最主要的原因是什么?

  需求频繁变更、沟通不良、不了解客户的需求、实现新功能或很酷的功能、追求新技术、项目期限的压力、需求分析或设计投入的时间和精力不够,产品的复杂度、开发人员疲劳、压力过大或受到干扰、缺乏足够的知识、技能和经验、缺乏动力等。
  最主要原因:需求方面的原因。

42.怎样确认是一个缺陷?

  发现缺陷后,应该做好分离和再现(3次),然后才能提交。

43.怎么处理无法再现的缺陷?

  1.对缺陷进行记录,并提交开发人员
  2.对寻找难以再现的缺陷要合理安排时间,对一时难以再现的缺陷可以暂时搁置,以保证项目的正常进度。
  3.在测试过程中对未再现的缺陷予以关注

44.什么是重复缺陷?怎么避免重复缺陷?

  提交了一个缺陷库中存在或者开发人员已经知道的缺陷。

  1.如果缺陷是跟同事提交的重复,任务分工解决,也可以在提交之前查询下库缺陷是否存在。
  2.如果缺陷是与自己提交的缺陷重复,则需要提高发现缺陷的能力,通过提高开发能力来理解两个缺陷本质上是一个缺陷。

45.什么是无效缺陷?怎么避免无效缺陷?

  1.提交的缺陷不是真正的缺陷。
  2.充分了解需求、提高自己识别缺陷的能力、提高缺陷写作能力

46.缺陷报告的写作准则是什么(5C)?

  1.Correct(准确):每个组成部分的描述准确,不会引起误解;
  2.Clear(清晰):每个组成部分的描述清晰,易于理解;
  3.Concise(简洁):只包含必不可少的信息,不包括任何多余的内容;
  4.Complete(完整):包含复现该缺陷的完整步骤和其他本质信息;
  5.Consistent(一致):按照一致的格式书写全部缺陷报告。

47.缺陷报告的内容有哪些?

  缺陷标题(缺陷摘要、缺陷概述、缺陷基本信息)、预处理、复现步骤、预期结果、实际结果、严重程度、优先级、测试环境、测试版本、测试执行人、注释。

48.简述缺陷报告的处理流程(简述缺陷的生命周期)

  1.软件测试人员提交缺陷报告;
  2.测试负责人审核后将缺陷报告分配给相关的开发人员修改;
  3.缺陷被修改后由测试人员根据缺陷报告中的修改记录进行返测;
  4.返测通过的缺陷报告由负责人关闭;
  5.返测未通过的缺陷报告直接返回给开发人员重新修改,然后再由测试人员返测,直到测试和开发达成一致处理意见。

49.缺陷按照严重程度可以分为哪些类型?

  致命缺陷、严重缺陷、一般缺陷、较小错误、意见建议等

50.缺陷按照优先级可以分为哪些类型?

  1.缺陷必须立即处理;
  2.缺陷需要正常排队等待修复或列入软件发布清单;
  3.缺陷可以在方便时被纠正;
  4.下一个版本修复;
  5.不修复。

51.缺陷的状态有哪些?

  新建/已提交、打开、已拒绝、已解决、已关闭

52.测试有哪些级别(阶段)?

  单元测试、集成测试、系统测试、验收测试

53.什么是单元测试,单元测试谁来做?什么是集成测试、系统测试?系统测试目的是什么?什么是验收测试、维护测试?

  单元测试: 针对一个软件单元的测试。由开发人员或懂开发的测试人员进行测试。
  集成测试: 组件间的接口与交互测试。
  系统测试: 对整个系统能不能满足用户需求的测试。目的是检查软件是否满足需求。
  验收测试: 一般由用户/客户进行的确认是否可以接受一个系统的验证性测试。验收测试根据用户需求,业务流程进行的正式测试以确保系统符合所有验收的准则。
  维护测试: 软件正常使用后,对软件的变更、更新进行测试。

54.什么是桩模块?什么是驱动模块?

  桩模块: 被被测模块调用的模块
  驱动模块: 调用被测模块的模块

55.什么时候可以进行单元测试?

  完成编译的测试对象,测试环境,开发工具,测到对象的规范说明书。

56.单元测试使用技术?测试重点是什么?测试条件是什么?集成测试使用技术?测试重点是什么?测试条件是什么?

  单元测试的技术: 黑盒白盒技术,但是白盒居多,黑盒居少,一般先黑盒再白盒。
  单元测试重点: 功能性测试,健壮性(逆向测试:无效值),性能。
  单元测试前提条件: 完成编译的测试对象,测试环境,开发工具,测到对象的规范说明书。

  集成测试的技术: 白盒技术、黑盒技术、白盒居多,黑盒居少,对比单元测试,白盒下降,一般先做黑盒再做白盒。
  集成测试重点: 接口和系统内不同部分的相互作用(交互)。
  集成测试前提条件: 完成集成的被测系统,测试台,有关组件间交互的文档。

57.集成测试有哪些策略?

  自顶向下集成、自底向上集成。

58.系统测试能发现哪些缺陷?会遗留哪些缺陷?

  **发现:**非功能性缺陷、涉及整个系统的问题。
  遗漏: 对用户的需求的错误理解、没有实现或者没有完全实现用户的隐性需求。

59.验收测试的目标是什么?

  对系统或子系统建立信心、对系统非功能性的特性赢得信任。

60.什么是性能测试?负载测试?压力测试?

  性能测试: 性能表现处理速度、响应时间、CPU使用、内存使用、硬盘使用等。
  负载测试: 通过不断增加负载来测试一个系统的性能。
  压力测试: 通过增加负载超过系统正常工作能力来考察系统能否在异常情况下正常工作。

61.什么是功能测试?

  测试一个软件能做什么,是不是完成了应该做的工作,没做不该做的工作。

62.什么是结构测试?

  白盒测试也称结构测试、逻辑驱动测试、基于程序本身的测试,是对程序结构进行的测试。

63.什么是与变更相关的测试?有哪些具体类型?

  与变更相关的测试是对修改过的程序进行的测试。
  确认测试(再测试)和回归测试。

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

  静态测试是不运行程序本身而寻找程序代码中可能存在的错误或评估程序代码的过程。 (针对文档和不需要执行的代码)

  动态测试是实际运行被测程序,输入相应的测试实例,检查运行结果与预期结果的差异,判定执行结果是否符合要求,从而检验程序的正确性、可靠性和有效性,并分析系统运行效率和健壮性等性能。(需要执行程序,一般采用黑盒测试方法和白盒测试)

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

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

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

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

65.圈复杂度怎么计算?

  不重叠的闭合环数+1。

66.白盒测试的方法

  白盒测试主要是使用逻辑覆盖测试方法,包括语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖、路径覆盖等。
  语句覆盖: 程序中的每个可执行语句至少被执行一次。能发现语句错误,不能发现逻辑错误。
  判定覆盖(分支覆盖): 程序中的每个判定的取真分值和取假分支至少执行一次。能发现逻辑错误,但不能发现组合判断中的条件错误。
  条件覆盖: 程序每个判定中每个条件的可能取值至少满足一次。能发现条件错误,不能发现逻辑错误。
  判定-条件覆盖: 每个条件中的所有可能取值至少执行一次,同时,每个判定的可能结果至少执行一次。
  条件组合覆盖: 每个判定中的所有的条件取值组合至少执行一次。
  路径覆盖: 用例覆盖程序中的所有可能的执行路径。如果路劲数很多,会变得不切实际。

67.测试用例的内容是什么?

  用例编号、测试概述或用例标题、测试步骤、预期结果、输入数据、优先级、前置条件等。

68.测试用例有哪些元素?

  用例编号、测试概述或用例标题、测试步骤、预期结果、输入数据、优先级、前置条件等。
  或者说 测试目标why、测试对象what、测试环境要求where、测试前提when、输入数据

69.什么是UI、GUI?UI测试什么意思?

  UI: 界面
  GUI: 图形界面
  UI测试: 界面测试

70.解释测试目标、测试环境、测试对象、前置条件、测试策略、测试范围的含义?

  测试目标: 功能测试、性能测试、界面测试、易用性测试、兼容性测试、安全性测试。
  测试策略: 某类别测试的过程、方法以及方法如何应用,测试的注意事项等。
  测试环境: 硬件环境、软件环境、网络环境
  前置条件: 进行某项测试工作需要做好的准备条件
  测试范围: 软件需要测试的某个部位

71.软件投入运行后还需要哪些测试?

  维护测试(含升级测试)、数据迁移测试、备份恢复测试、灾难恢复测试等。

72.SP2什么意思?

  第二个版本的服务包或补丁包

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

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

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

  300个用户在一个客户端上:
    1.会占用客户机更多的资源,而影响测试的结果。线程之间可能发生干扰,而产生一些异常。
    2.需要更大的带宽。
    3.IP地址的问题,可能需要使用IP Spoof来绕过服务器对于单一IP地址最大连接数的限制。
    4.所有用户在一个客户端上,不必考虑分布式管理的问题。

  用户分布在不同的客户端上:
    1.需要考虑使用控制器来整体调配不同客户机上的用户。
    2.同时,还需要给予相应的权限配置和防火墙设置。

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

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

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

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

77.什么是软件质量?

  概括的说:软件质量是“软件与明确的和隐含的定义的需求相一致的程度”。
  具体的说:软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准、以及所有专业开发的软件都应具有的隐含特征的程度。
  软件质量包括:正确性、健壮性、效率、完整性、可用性、风险(产品运行);可理解性、可维护性、灵活性、可测试性(产品修改);可移植性、可再用性、可交互性(产品转移)。

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

  白盒测试: 逻辑覆盖(语句覆盖、判定覆盖、条件覆盖、分支覆盖、判断-条件覆盖、多条件组合覆盖、基本路径覆盖)
  黑盒测试: 边界值分析法、等价类划分、错误推测法、判定表法、测试大纲法、随机测试、场景法

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

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

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

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

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

84.如何测试一个纸杯?

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

88.什么是测试覆盖率?

在这里插入图片描述

89.一个好的测试用例,有哪些特点?

在这里插入图片描述

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

在这里插入图片描述

91.如何全面测试一款产品,请以手机短信功能为例来辅助说明,前提是手机自带的短信功能,并非微信、QQ这种软件

在这里插入图片描述
在这里插入图片描述

92.你手中的这支笔有多少用途,请发挥你的想象力

在这里插入图片描述

93.常见的性能测试策略有哪些?

  负载测试、压力测试、并发测试、内存泄漏测试、基准测试、配置测试、数据容量测试、疲劳强度测试。

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

在这里插入图片描述

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

在这里插入图片描述

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

  1.TCP/IP协议 ;tcp:传输控制协议;IP:网络协议/网际协议
  2.主要层次结构:应用层、传输层、网络层、数据链路层
  3.ARP(address resolution protocol )(地址解析协议)

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

在这里插入图片描述

98、系统测试的策略有哪些?

  有功能测试、性能测试、负载测试、强调/压力测试、易用性测试、安全测试、配置测试、安装测试、文档测试、故障恢复测试、用户界面测试、可用性测试。

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

102、软件测试项目从什么时候开始?为什么?

在这里插入图片描述

103、什么是回归测试?

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200821144242919.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,sha

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述

111、性能测试的流程?

在这里插入图片描述

112.你接触过正则表达式吗?怎么校验数字?

在这里插入图片描述

113.什么是BS架构?什么是CS架构?

  BS: 浏览器/服务器架构,需要通过客户端,主要压力在于服务器。
  CS: 客户端/服务器架构,需要专用客户端,客户端承担一部分工作和压力。

114.什么是OO思想?

在这里插入图片描述

115.什么是JRE?什么是JDK?

在这里插入图片描述

116.Java的三大特征分别是什么?

在这里插入图片描述

117.成员变量用static修饰和不用static修饰有什么区别?

在这里插入图片描述

118.如果变量用final修饰,则不可如何?如果方法用final修饰,则不可如何?如果类用final修饰,则不可如何?请举例说明你见过哪些异常?

在这里插入图片描述
在这里插入图片描述

119.你了解几种约束?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

120.你接触过哪些数据库对象?你使用过哪些系统函数?

  1.shuj

121.存储字符串时,使用char、nchar、varchar2的区别?

在这里插入图片描述

122.功能测试中常用的测试工具有哪些?

在这里插入图片描述

123.功能测试中常用的测试方法有哪些?

在这里插入图片描述在这里插入图片描述

124.简单说一下对冒烟测试/集成测试的了解

在这里插入图片描述

125.如何判断一个系统是否通过冒烟测试?

  软件的基本功能或者重要功能已经正确实现。

126.简单说一下bug等级是如何确定的?

在这里插入图片描述

127、简述bug的生命周期?

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

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

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

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

    1. 了解项目或系统的业务需求
    2.和项目经理协调好,了解项目的进度计划安排情况

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  单元测试测试策略:
  自顶向下的单元测试策略: 比孤立单元测试的成本高很多,不是单元测试的一个好的选择。
  自底向上的单元测试策略: 比较合理的单元测试策略,但测试周期较长。
  孤立单元测试策略: 最好的单元测试策略。

集成测试的测试策略:
  大爆炸集成: 适应于一个维护型项目或被测试系统较小
  自顶向下集成: 适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修改;产口控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。
  自底向上集成: 适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。
  基于进度的集成:
    优点:具有较高的并行度;能够有效缩短项目的开发进度。
     缺点:桩和驱动工作量较大;有些接口测试不充分;有些测试重复和浪费。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  测试人员搭建环境

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

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

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

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

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

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

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

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

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

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

  一条Bug记录最基本应包含:
  1.bug编号;
  2.bug严重级别,优先级;
  3.bug产生的模块;
  4.首先要有bug摘要,阐述bug大体的内容;
  5.bug对应的版本;
  6.bug详细现象描述,包括一些截图、录像…等等;
  7.bug出现时的测试环境,产生的条件即对应操作步骤;

  高质量的Bug记录:
  1) 通用UI要统一、准确
    缺陷报告的UI要与测试的软件UI保持一致,便于查找定位。
  2) 尽量使用业界惯用的表达术语和表达方法
    使用业界惯用的表达术语和表达方法,保证表达准确,体现专业化。
  3) 每条缺陷报告只包括一个缺陷
    每条缺陷报告只包括一个缺陷,可以使缺陷修正者迅速定位一个缺陷,集中精力每次只修正一个缺陷。校验者每次只校验一个缺陷是否已经正确修正。
  4) 不可重现的缺陷也要报告
    首先缺陷报告必须展示重现缺陷的能力。不可重现的缺陷要尽力重现,若尽力之后仍不能重现,仍然要报告此缺陷,但在报告中要注明无法再现,缺陷出现的频率。
  5) 明确指明缺陷类型
    根据缺陷的现象,总结判断缺陷的类型。例如,即功能缺陷、界面缺陷、数据缺陷,合理化建议这是最常见的缺陷或缺陷类型,其他形式的缺陷或缺陷也从属于其中某种形式。
  6) 明确指明缺陷严重等级和优先等级
    时刻明确严重等级和优先等级之间的差别。高严重问题可能不值得解决,小装饰性问题可能被当作高优先级。
7) 描述 (Description) ,简洁、准确,完整,揭示缺陷实质,记录缺陷或缺陷出现的位置
    描述要准确反映缺陷的本质内容,简短明了。为了便于在软件缺陷管理数据库中寻找制定的测试缺陷,包含缺陷发生时的用户界面(UI)是个良好的习惯。例如记录对话框的标题、菜单、按钮等控件的名称。
  8) 短行之间使用自动数字序号,使用相同的字体、字号、行间距
    短行之间使用自动数字序号,使用相同的字体、字号、行间距,可以保证各条记录格式一致,做到规范专业。
  9) 每一个步骤尽量只记录一个操作
    保证简洁、条理井然,容易重复操作步骤。
  10) 确认步骤完整,准确,简短
    保证快速准确的重复缺陷,“完整”即没有缺漏,“准确”即步骤正确,“简短”即没有多余的步骤。
  11) 根据缺陷,可选择是否进行图象捕捉
    为了直观的观察缺陷或缺陷现象,通常需要附加缺陷或缺陷出现的界面,以图片的形式作为附件附着在记录的“附件”部分。为了节省空间,又能真实反映缺陷或缺陷本质,可以捕捉缺陷或缺陷产生时的全屏幕,活动窗口和局部区域。为了迅速定位、修正缺陷或缺陷位置,通常要求附加中文对照图。
     附加必要的特殊文档和个人建议和注解
    如果打开某个特殊的文档而产生的缺陷或缺陷,则必须附加该文档,从而可以迅速再现缺陷或缺陷。有时,为了使缺陷或缺陷修正者进一步明确缺陷或缺陷的表现,可以附加个人的修改建议或注解。
  12) 检查拼写和语法缺陷
    在提交每条缺陷或缺陷之前,检查拼写和语法,确保内容正确,正确的描述缺陷。
  13) 尽量使用短语和短句,避免复杂句型句式
    软件缺陷管理数据库的目的是便于定位缺陷,因此,要求客观的描述操作步骤,不需要修饰性的词汇和复杂的句型,增强可读性。
    以上概括了报告测试缺陷的规范要求,随着软件的测试要求不同,测试者经过长期测试,积累了相应的测试经验,将会逐渐养成良好的专业习惯,不断补充新的规范书写要求。此外,经常阅读、学习其他测试工程师的测试缺陷报告,结合自己以前的测试缺陷报告进行对比和思考,可以不断提高技巧。
  14) 缺陷描述内容
    缺陷描述的内容可以包含缺陷操作步骤,实际结果和期望结果。操作步骤可以方便开发人员再现缺陷进行修正,有些开发的再现缺陷能力很差,虽然他明白你所指的缺陷,但就是无法再现特别是对系统不熟悉的新加入开发人员,介绍步骤可以方便他们再现。实际结果可以让开发明白错误是什么,期望结果可以让开发了解正确的结果应该是如何。

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

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

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

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

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

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

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

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

  把因果图转换成判定表。

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

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

   1.易用性测试-界面的友好性,操作方便性等。
   2.功能测试-系统中功能性需求的满足
   3.安全性测试-系统是否存在安全隐患和漏洞
   4.性能测试-系统在大并发下的响应速度和健壮性

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  组合类中的各种方法

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

  根据代码设计测试用例

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

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

153、设计系统测试计划需要参考的项目文档有哪些?

  软件测试计划、软件需求工件、和迭代计划

154、软件验收测试包括哪几种?

  正式验收测试、alpha测试、beta测试三种测试。

155、你的测试职业发展目标是什么?

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

156、测试结束的标准是什么?

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

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

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

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

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

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

159、一个测试工程师应具备那些素质?

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

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

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

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

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

161、你的离职原因是什么?

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

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

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

  生命周期阶段:
  软件计划与可行性分析
  需求分析
  软件设计
  编码
  软件测试
  运行与维护

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

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

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

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

164、APP测试与web测试有什么区别?

  单纯从功能测试的层面上来讲的话,APP 测试、web 测试 在流程和功能测试上是没有区别的。
  根据两者载体不一样,则区别如下:
  系统结构方面
  web项目,b/s架构,基于浏览器的;web测试只要更新了服务器端,客户端就会同步会更新。
  app项目,c/s结构的,必须要有客户端;app 修改了服务端,则客户端用户所有核心版本都需要进行回归测试一遍。
  性能方面
  web项目 需监测 响应时间、CPU、Memory
  app项目 除了监测 响应时间、CPU、Memory外,还需监测 流量、电量等
  兼容方面
  (1)web项目:
  1. 浏览器(火狐、谷歌、IE等)
  2. 操作系统(Windows7、Windows10、Linux等)
  (2)app项目:
  1. 设备系统:iOS(ipad、iphone)、Android(三星、华为、联想等) 、Windows(Win7、Win8)、OSX(Mac)
  2. 手机设备可根据 手机型号、分辨率不同
  相对于 Wed 项目,APP有专项测试
  1. 干扰测试:中断,来电,短信,关机,重启等
  2. 弱网络测试(模拟2g、3g、4g,wifi网络状态以及丢包情况);网络切换测试(网络断开后重连、3g切换到4g/wifi 等)
  3. 安装、更新、卸载
  安装:需考虑安装时的中断、弱网、安装后删除安装文件等情况
  卸载:需考虑 卸载后是否删除app相关的文件
  更新:分强制更新、非强制更新、增量包更新、断点续传、弱网状态下更新
  4. 界面操作:关于手机端测试,需注意手势,横竖屏切换,多点触控,前后台切换
  5. 安全测试:安装包是否可反编译代码、安装包是否签名、权限设置,例如访问通讯录等
  6. 边界测试:可用存储空间少、没有SD卡/双SD卡、飞行模式、系统时间有误、第三方依赖(QQ、微信登录)等
  7. 权限测试:设置某个App是否可以获取该权限,例如是否可访问通讯录、相册、照相机等
  测试工具方面
  自动化工具:APP 一般使用 Appium; Web 一般使用 Selenium
  性能测试工具:APP 一般使用 JMeter; Web 一般使用 LR、JMeter

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

  1、检查系统是否有中毒的特征;

  2、检查软件/硬件的配置是否符合软件的推荐标准;

  3、确认当前的系统是否是独立,即没有对外提供什么消耗CPU资源的服务;

  4、如果是C/S或者B/S结构的软件,需要检查是不是因为与服务器的连接有问题,或者访问有问题造成的;

  5、在系统没有任何负载的情况下,查看性能监视器,确认应用程序对CPU/内存的访问情况。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

解释数据库中join的用法

在这里插入图片描述

SQL中排序、编辑、包含的关键字是?

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Lyan00/article/details/108095361
今日推荐