• 软件测试面试复习题(一)


    目录

    HTTP的get请求和post请求的区别?

    1. 在客户端,get方式在通过url提交数据,数据在url中可以看到; post方式,数据放置在 body内提交。
    2. get方式提交的数据最多只能有1024字节,而post没有此限制
    3. 安全性问题。在使用get的时候,参数会显示在地址栏上,而post不会。所以,如果这些数据是中文数据而且是非敏感数据,那么使用get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用post为好。
    4. 安全的和幂等的。所谓安全的意味着该操作用于获取信息而非修改信息。幂等的意味着对统一URL的多个请求应该方位同样的结果。
    5. 登录账号提交密码时、修改账号信息时,支付等就是post请求。在查询展示数据时,一般就是get请求

    更多详细说明在👉HTTP 方法:GET 对比 POST

    cookies和session的区别?

    1. cookies:是针对每一个网站的信息,每一个网站只对应一个,其它网站不能访问,这个文件是保存在客户端的,每次你访问相应的网站,浏览器会查找这个网站的cookies,如果有就会将这个文件一起发送出去。cookies文件的内容大致包含这些信息如:用户名,密码,设置等。
    2. session:是针对每一个用户的,只有客户机访问,程序就会为这个客户新增一个session.
      session里主要保存的是用户的登陆信息,操作信息等。这个session在用户访问结束后会被自动消失(如果超时也会)。

    测试分类

    在这里插入图片描述

    功能测试bug级别怎么划分?

    bug严重程度:一般提L4和L3,L2很少提,除非影响流程。L1这个是非常致命的bug,只有很严重的情况才提。

    工作中如何提交bug,一条bug包含哪些内容?

    1. bug产生对应的软件版本
    2. 开发的人员
    3. bug的优先级
    4. bug的严重程度
    5. bug可能属于的模块,如果不能确认,可以用开发人员来判断
    6. bug标题,需要清晰的描述现象
    7. bug描述,需要尽量给出重现bug的步骤8.bug附件中能给出相关的日志和截图。

    Selenium的运行原理是什么,为什么能够实现Web自动化?

    技术分析

    • Selenium本身不操作浏览器,是基于 webdriver 来对浏览器进行操作的
      webdriver作为一个HTTP协议下的服务,在后端以进程的形态启动,再通过指令调用到对应的浏览器,让其运行和操作。
    • Selenium.webdriver库是Web自动化执行的核心库,其中包含有各类对浏览器以及页面元素的操作,通过这个库,结合webdriver服务来实现对web的自动化测试
      基于Selenijum.webdriver库的源代码可以看出,所有的操作行为都是基于封装的指令来进行的。实际的操作模式是通过Selenium下发代码指令至WebDriver服务端,经由HTTP网络协议,以请求的形式将所接收到的内容,下发至浏览器,直接显示在用户眼前。|
    from selenium import webdriver#webdriver库源代码示例与分析
    
    • 1

    在自动化测试过程中,选择的是哪一种数据驱动形式?

    • 技术分析
      数据驱动,通过文件存放数据管理的形式,在执行自动化时,直接导入文件中的数据,来实现整个自动化测试业务。提升代码的可维护性,代码与数据分离,更好地对自动化测试执行以及测试数据进行管理和维护。
    • 常用数据驱动形式包括:
      Excel数据驱动:实现简单,容易上手。但是数据较为死板,管理相对麻烦。yaml数据驱动:数据直观,可灵活优化,方便管理。但实现对于技术要求更高。其他数据驱动:工XT、CSY、XML等

    jemter和postman做接口测试的区别

    一个完整的请求过程是什么样子的?

    常规而言,在不强调网络协议的情况下,请求基本都是HTTP网络协议下的请求完整流程:
    域名解析——服务器建立连接——发送请求——服务器接收并运算,生成响应——返回响应结果——前端解析,加载资源——渲染到页面展示

    性能测试过程中应用的工具有哪些?

    jmeter、load runner

    软件的含义

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

    测试与调试的区别是什么?

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

    IEEE是什么意思?

    国际电气电子工程师协会

    软件测试的含义

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

    软件测试的目的

    (1)验证软件是否满足各类文档说明书等规定的软件质量要求
    (2)找出软件缺陷
    (3)为软件产品的质量测量和评价提供依据

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

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

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

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

    解释QA及其职责

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

    测试工程师与软件质量保证的区别

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

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

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

    pareto 法则、帕累托法则、28原则、82原则

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

    杀虫剂怪事

    杀虫剂怪事用于描述软件测试越多,其对测试的免疫力越强的现象。这个现象告诉我们,
    测试时,应尝试新方法、不同的测试程序,对程序进行测试,以找出更多软件缺陷。

    木桶原理

    木桶原理在软件方面的主要含义是全面质量管理,另外还告诉我们测试时要关注团队中较弱的人。|

    Good-enough原则

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

    群集效应

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

    什么是确认测试?回归测试?

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

    测试人员应该具备哪些素质?

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

    测试人员应具备的“三心二意”

    细心,信心,耐心。
    团队合作的沟通意识、时刻保持怀疑的态度且有缺陷预防意识

    如果测试提交的缺陷开发人员不认可,该怎么办?

    首先分析或与开发沟通开发不认可的原因。

    • 如果拒绝原因是提交的不是缺陷,而且自己分析后,的确不是缺陷,则应该注意以后再做测试时要做好复现,认真研读需求,提高自己找缺陷的能力。
    • 如果拒绝原因是提交的不是缺陷,但自己分析时认为缺陷应该是存在的,则再次研读需求并做好复现,拿出确实是缺陷的证据,然后与开发沟通。
    • 如果拒绝原因是认可缺陷,但不予修复,如果自己觉得必须修复,则拿出充分理由和证据和不修复的不利影响和影响范围,再与开发沟通。
    • 注意沟通技巧,合理的论述,向开发说明自己的判断的理由,注意客观、严谨,不掺杂个人情绪。
    • 等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并由上级做出决定。

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

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

    测试团队中都有哪些角色?各负责什么任务?各有多少人?

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

    什么是软件开发生命周期?

    从软件最初构思到公开发行的过程。瀑布模型的过程是计划、需求、设计、编码、测试、运行、维护循环。

    什么是软件生命周期?

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

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

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

    简述v模型。

    V模型的过程:用户需求―需求分析—概要设计—详细设计—编码—单元测试─集成测试—系统测试—验收测试。

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

    简述W模型。

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

    简述H模型。

    H模型将测试活动完全独立出来,形成一个完全独立的流程,将测试准备活动和测试执行活动清晰地体现出来。H模型的测试流程是只要测试准备工作完成,达到测试就绪点,测试就可以执行了。
    优点:
    (1)软件测试不仅仅指测试的执行,还包括很多其他的活动。
    (2)软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地进行。当某个测试时间点就绪时,软件测试即从测试准备阶段进入测试执行阶段。
    (3)H模型反映出软件测试要尽早准备,尽早执行。
    (4)软件测试可以进行迭代、反复进行。
    在这里插入图片描述

    敏捷开发

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

    敏捷测试

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

    软件质量要求有哪些?

    功能要求和非功能要求。

    软件非功能要求有哪些?

    性能要求(压力测试、负载测试、容量测试、可靠性测试)、界面测试、兼容性测试、易用性测试、文档测试、可用性测试等。

    简述测试的基本过程

    (1)测试人员进行测试需求分析。
    (2)测试负责人编写测试计划。
    (3)测试人员根据测试需求分析设计和编写测试用例。
    (4)测试人员搭建测试环境、创建测试数据、执行测试用例、提交缺陷报告并进行跟踪、记录测试事件。
    (5)进行测试评估和总结。
    每一分步工作完成后都进行评审。

    拿到一个软件后,应该怎样开始工作?

    编写需求分析并评审→编写测试计划并评审→设计测试用例并评审→搭建测试环境、执行测试用例、提交缺陷报告→进行评估和总结

    怎么做测试?

    编写需求分析并评审→编写测试计划并评审→设计测试用例并评审→搭建测试环境、执行测试用例、提交缺陷报告→进行评估和总结

    简介测试流程

    编写需求分析并评审→编写测试计划并评审→设计测试用例并评审→搭建测试环境、执行测试用例、提交缺陷报告→进行评估和总结。

    怎么进行测试需求分析?

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

    拿到项目后,需要分析或咨询软件哪些方面的问题?

    软件主要的功能、流程、开发环境(开发语言<含数据类型>、数据库,中间件)、运行
    环境(硬件、软件、网络、软件架构)、用户群、测试范围、测试优先级。

    简介测试流程

    编写需求分析并评审→编写测试计划并评审→设计测试用例并评审→搭建测试环境、执行测试用例、提交缺陷报告→进行评估和总结。

    怎么进行测试需求分析?

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

    拿到项目后,需要分析或咨询软件哪些方面的问题?

    软件主要的功能、流程、开发环境(开发语言<含数据类型>、数据库、中间件)、运行环境(硬件、软件、网络、软件架构)、用户群、测试范围、测试优先级

    什么时候提交发现的缺陷?

    测试执行发现缺陷时立即提交缺陷。

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

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

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

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

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

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

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

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

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

    测试策略主要包括功能测试、性能测试、兼容性测试、可用性测试、易用性测试等。测试范围有时候等价于测试策略,有时候可以表示要进行测试的某个软件部位

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

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

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

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

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

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

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

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

    当你发现一个缺陷时,应该怎么确认的确是一个缺陷?

    根据缺陷的判断原则来甄别发现的问题是不是一个缺陷,发现缺陷后,
    应该做好分离和再现(3次),然后才能提交。

    在正式提交一个缺陷前,你应该做些什么?

    分离缺陷、再现缺陷(3次),然后才能提交。

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

    首先,应当对这样的缺陷进行详细的记录,并尽快提交给开发人员。
    其次,对于寻找难以再现的缺陷要合理地安排时间,对一时难以再现的缺陷可以暂时搁置,以保证项目的正常进度。
    最后,在测试过程中对未再现缺陷予以关注。

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

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

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

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

    缺陷报告的写作准则是什么?

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

    缺陷报告的内容有哪些?|

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

    缺陷报告的组织结构是什么?

    缺陷标题(或者说缺陷摘要、缺陷概述、缺陷基本信息)

    缺陷报告的写作需要注意什么问题?

    不要使用我、你、他等字眼,系要使用情绪化的语言和强调符号、不要使用“似乎”、看上去可能等不确定性内容、不要使用认为比较幽默的内容、不要使用不确定的测试问题(不确定是否是缺陷)、不要人身攻击。

    简述缺陷报告的处理流程

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

    简述缺陷的生命周期

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

    简述重复缺陷的处理流程

    提交缺陷→分配缺陷→是重复缺陷→置为无效缺陷。

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

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

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

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

    缺陷的状态有哪些?

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

    测试有哪些级别?

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

    测试有哪些阶段?

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

    什么是单元测试?单元测试谁来做?

    针对一个软件单元的测试。开发人员或懂开发的测试人员

    什么是桩模块、驱动模块?

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

    什么时候可以进行组件测试?

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

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

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

    什么是集成测试?

    组件间的接口与交互的测试。

    集成测试的测试重点是什么?测试条件是什么?使用什么技术?

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

    集成测试有哪些策略?

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

    什么是系统测试?

    对整个系统能不能满足用户需求的测试。

    系统测试的目的是什么?

    检查软件是否满足需求。

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

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

    什么是验收测试?

    一般由用户/客户进行的确认是否可以接受一个系统的验证性测试。
    验收测试根据用户需求,业务流程进行的正式测试以确保系统符合所有验收的准则。

    验收测试有哪些人进行?

    客户或用户,测试人员可以介入。

    验收测试的目标是什么?

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

    什么是 alpha、beta测试?有何区别?

    Alpha测试:潜在的客户/用户在开发场地进行的测试。
    Beta测试:由潜在客户/用户在自己的环境下测试软件系统。

    什么是维护测试?

    软件正常使用后对软件的变更、更新进行测试

    什么是性能测试?负载测试?压力测试?有什么区别?

    性能表现处理速度、响应时间、CPU使用、内存使用、硬盘使用等。
    负责测试:通过不断增加负载来测试一个系统的性能。

    什么是维护测试?

    软件正常使用后对软件的变更、更新进行测试

    什么是性能测试?负载测试?压力测试?有什么区别?

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

    什么是功能测试?

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

    什么是结构测试?

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

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

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

    什么是静态测试?动态测试?如何区分二者?

    静态测试:不执行程序的测试。针对文档和不需执行的代码。
    动态测试:需要执行程序,方法一般采用黑盒测试方法和白盒测试方法。

    圈复杂度怎么计算?

    不重叠的闭合环数+1

    什么是黑盒测试?白盒测试?

    黑盒测试也称功能测试,基于规格说明书的测试,关注输入数据到程序中,输出结果是否正确,侧重于测试软件能做什么
    白盒测试也称结构测试、逻辑驱动测试,是对程序内部逻辑结构进行的测试

    白盒测试有哪些方法?具体解释每种方法?

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

    什么是配置测试?

    不同配置环境下进行测试。

    什么是文档测试?

    不仅包括测试文档校对,还有文档和软件不一致

    什么是国际化测试?本地化测试?

    • 国际性的软件
    • 翻译成本国语言的,测试是否符合本国的语言习惯,是否符合本国法律,是否符合本国的国情。

    测试用例的内容是什么?

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

    测试用例有哪些元素?

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

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

    界面
    图形界面
    界面测试

    测试用例的优先级如何?

    冒烟测试


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

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

    用例评审一般使用什么方式?哪些人参与评审?

    检查单。一般由测试人员进行

    测试计划由谁编写?测试需求说明书由谁编写?测试用例谁编写?测试总结谁编写?

    测试负责人。测试人员(测试需求分析人员)。测试人员(测试设计工程师)。测试负责人

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

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

    SP2什么意思?

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

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

    1. 首先,查找需求说明、网站设计等相关文档分析测试需求。
    2. 制定测试计划,确定测试范围和测试策略,一般包括以卞几个部分:功能性测试、界面测试、性能测试、数据库测试、安全性测试、兼容性测试。
    3. 设计测试用例:
    (1)功能性测试可以包括,但不限于以下几个方面:

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

    (2)界面测试可以包括但不限于一下几个方面:

    1、页面是否风格统一,美观
    2、页面布局是否合理,重点内容和热点内容是否突出
    3、控件是否正常使用
    4、对于必须但未安装的控件,是否提供自动下载并安装的功能
    5、文字检查

    (3)性能测试一般从以下两个方面考虑:压力测试、负载测试
    (4)数据库测试要具体决定是否需要开展。
    数据库一般需要考虑连结性,对数据的存取操作,数据内容的验证等方面。
    (5)安全性测试:

    1、基本的登录功能的检查
    2、是否存在溢出错误,导致系统崩溃或者权限泄露
    3、相关开发语言的常见安全性问题检查,例如 SQL注入等

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

    1、浏览器的兼容性;
    2、操作系统的兼容性;
    3、令软件平台的兼容性;
    4、数据库的兼容性

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

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

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

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

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

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

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

    什么是软件质量?

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

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

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

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

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

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

    1. 软件安全性测试包括程序、数据库安全性测试。
    2. 根据系统安全指标不同测试策略也不同。
    3. 用户认证安全的测试要考虑的问题。

    明确区分系统中不同用户权限、系统中会不会出现用户冲突、系统会不会因用户
    的权限的改变造成混乱、用户登陆密码是否是可见、可复制、是否可以通过绝对途径登陆系统(拷贝用户登陆后的链接直接进入系统)、用户退出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入系统
    4. 系统网络安全的测试要考虑的问题
    测试采取的防护措施是否正确装配好,有关系统的补丁是否打上、模拟非授权攻
    5. 数据库安全考虑的问题
    系统数据是否机密(比如对银行系统,这一点就特别重要,一般的网站就没有太高要求)、系统数据的完整性、系统数据可管理性、系统数据的独立性、系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)

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

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

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

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

    如何测试一个纸杯?

    • 功能:用水杯装水看漏不漏;水能不能被喝到
    • 安全性:杯子有没有毒或细菌
    • 可靠性:杯子从不同高度落下的损坏程度
    • 可移植性:杯子在不同的地方、温度等环境下是否都可以正常使用
    • 兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等
    • 易用性:杯子是否烫手、是否有防滑措施、是否方便饮用
    • 用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述

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

    1. 软件测试计划是指导测试过程的纲领性文件:
      √ 领导能够根据测试计划进行宏观调控,进行相应资源配置等。
      √ 测试人员能够了解整个项目测试情况以及项目测试不同阶段的所要进行的工作等。|
      √ 便于其他人员了解测试人员的工作内容,进行有关配合工作
    2. 测试计划包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。
    3. 测试计划编写6要素(5W1H):
      √ why→→为什么要进行这些测试;
      √ what→测试哪些方面,不同阶段的工作内容;
      √ when→测试不同阶段的起止时间;
      √ where→相应文档,缺陷的存放位置,测试环境等;
      √ who→项目有关人员组成,安排哪些测试人员进行测试;
      √ how→如何去做,使用哪些测试工具以及测试方法进行测试
    4. 测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。所以其中最重要的是测试测试策略和测试方法(最好是能先评审)。

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

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

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

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

    什么是测试覆盖率

    • 是指完成的测试工作目标量占总目标量的百分比,有很多分类。
    • 软件测试覆盖率常用的计算公式:
      √ 功能覆盖率=至少被执行一次的测试功能点数/测试功能点总数(功能点)
      √ 需求覆盖率=被验证到的需求数量/总的需求数量(需求)
      √ (用例)覆盖率=至少被执行一次的测试用例数/应执行的测试用例总数
      √ 语句覆盖率=至少被执行一次的语句数量/有效的程序代码行数
      √ 判定覆盖率=判定结果被评价的次数/判定结果总数
      √ 条件覆盖率=条件操作数值至少被评价一次的数量/条件操作数值的总数

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

    • 用例要完整、简洁、一致
      至少含有编号、标题、操作步骤和预期结果。
    • 用例要表明测试目的
    • 用例覆盖程度要高
    • 用例能够使工作量最小化用例描述正确、规范。
      含有正确的、规范的测试标题和编号用例的分类以及描述要足够清晰
    • 用例要具有可测试性
    • 测试用例易于维护
      如果被测对象有所升级,测试用例的说明或者脚本是不是容易维护呢?
    • 可复用
    • 可重复性
      不管谁执行此用例,结果一样。
    • 可追踪性
      用例能追踪到一个具体的需求。

    测试结束的标准是什么

    • 全部测试用例都执行完成。
    • 未修改 bug 都被确认或置为应有状态,暂缓修改的问题都有详尽的解释。
    • 测试报告编写完成。
    • 测试收尾工作结束。
    • 测试总结完成。
    • 项目处于试运行或上线阶段
    • 在测试计划中定义结束标准
      1、如计划中规定:系统在一定性能下平稳运行72小时,本版本中没有严重的BUG,普通BUG的数量在3以下,BUG修复率90%以上
      2、实际测试达到上述要求,然后由开发经理,测试经理,项目经理共同签字,认同测
      试结束,版本即可发布。

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

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

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

    在这里插入图片描述

    判断字符串回文

    回文序列是指正序和反序都相同的字符串,如“A",“BAB”,“BFFB”。实现一个函数,判断输入的字符串是否为回文,并写出测试用例。如有可能请使用你最熟悉的编程语言实现这个函数。本道题视频解析点我
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    性能测试流程是什么样的?

    考点:
    1、对性能测试理论的掌握程度
    2、是否拥有实际性能测试的经验
    参考答案:
    需求分析-环境搭建-脚本编写-准备数据-执行测试-回归调优-测试报告

    如果在测试过程中发现响应时间长应该怎么进行下一步分析呢?

    1. 排查负载机
    2. 查看所消耗的时间主要是在网络传输上还是服务器上

    什么情况下要做关联,关联是怎么做的?

    当脚本的上下文有联系,就用关联

    性能测试中,一般都关注哪些指标

    TPS(TPS越高,性能越好)、平均响应时间、并发数、错误率

    性能测试中的思考时间应该怎么用

    • 在LoadRunner中主要通过lr_think_time函数+RTS模拟随机思考时间在jmeter中通过高斯随机定时器来模拟随机思考时间。
    • 思考时间的应用场景一般是构造测试数据接口、混合压测场景、稳定性压测场景

    性能测试过程中如何对瓶颈行分析?

    性能瓶颈分析参考准则:排除法,从上至下、从局部到整体!针对不同的瓶颈采用不同的分析方法,一般分为:
    内存分析方法、处理器分析法、磁盘/O 分析方法、进程分析方法、网络分析方法等等。

    如何准备性能测试数据

    a)调用业务接口构造数据,一般适用于数据逻辑比较复杂的惰况下。
    b)直接写jdbc代码造数据,一般适用于数据量较大且数据逻辑较简单的情况。
    c)存储过程造数据,一般适用于数据量巨大且数据逻辑较简单的惰况。
    d)导入sql,一般适用于数据安全级别较低且数据量巨大的情况。

    怎么根据线下环境评估线上环境的性能

    1、首先线下必须要有专门的性能测试环境
    2、线下环境单台机器配置和线上不能相差很大,可以通过单台的机器性能推算出多台机器性能
    3、如果线下机器配置很差,只能测试出程序有无性能问题,这样线下测试出来的数据对线上没有太大参考意义
    4、如果想获取比较准确的线上性能情况,建议最好做线上的性能测试

  • 相关阅读:
    基于模拟退火算法优化的BP神经网络预测模型(Matlab代码实现)
    电脑卡怎么办?4招帮你解决电脑卡顿的烦恼!
    Hibernate JPA中的N+1 选择问题以及如何避免它
    【C++】泛型编程 ④ ( 函数模板 与 普通函数 调用规则 | 类型自动转换 | 类型自动转换 + 显式指定泛型类型 )
    92. 递归实现指数型枚举
    Python基础入门篇【44】--文件读写实例:读取一个文件,并将其中的内容写入到创建的包里
    5. 凸集和凸函数
    高级java每日一道面试题-2024年7月14日
    Yolov8-pose关键点检测:模型轻量化创新 | ScConv结合c2f | CVPR2023
    ffmpeg命令分析-yuv封装mp4
  • 原文地址:https://blog.csdn.net/weixin_45990326/article/details/125520512