李毛毛的技术专栏 An interesting software testing engineer

软件测试工程师面试题总结(二)

2020-05-21


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

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

3.一台客户端有三百个客户与三百个客户端有三百个客户对服务器施压,有什么区别? 300 个用户在一个客户端上,会占用客户机更多的资源,而影响测试的结果。线程之间可能发生干扰,而产生一些异常。300 个用户在一个客户端上,需要更大的带宽。IP 地址的问题,可能需要使用 IP Spoof 来绕过服务器对于单一 IP 地址最大连接数的限制。所有用户在一个客户端上,不必考虑分布式管理的问题;而用户分布在不同的客户端上,需要考虑使用控制器来整体调配不同客户机上的用户。同时,还需要给予相应的权限配置和防火墙设置。试述软件的概念和特点?软件复用的含义?构件包括哪些?软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、文档的完整集合。软件复用(Software Reuse)是将已有软件的各种有关知识用于建立新的软件,以缩减软件开发和维护的花费。软件复用是提高软件生产力和质量的一种重要技术。早期的软件复用主要是代码级复用,被复用的知识专指程序,后来扩大到包括领域知识、开发经验、设计决定、体系结构、需求、设计、代码和文档等一切有关方面。可以被复用的软件成分一般称作可复用构件

4.软件生存周期及其模型是什么? 软件生存周期是软件开发全部过程、活动和任务的结构框架,是从可行性研究到需求分析、软件设计、编码、测试、软件发布维护的过程。在经历需求、分析、设计、实现、部署后,软件将被使用并进入维护阶段,直到最后由于缺少维护费用而逐渐消亡。这样的一个过程,称为”生命周期模型”(Life Cycle Model)。什么是软件测试?软件测试的目的与原则使用人工或自动手段,来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。软件测试的目的:测试是程序的执行过程,目的在于发现错误一个成功的测试用例在于发现至今未发现的错误一个成功的测试是发现了至今未发现的错误的测试确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明。确保产品满足性能和效率的要求确保产品是健壮的和适应用户环境的软件测试的原则:教材的说法:软件测试应尽早执行,并贯穿于整个软件生命周期软件测试应追溯需求测试应由第三方来构造穷举测试是不可能的,要遵循 Good-enough 原则必须确定预期输出(或结果)必须彻底检查每个测试结果充分注意测试中的群集现象缺陷的二八定理严格执行测试计划,排除测试的随意性注意合法合理的输入,也要注意非法的非预期的输入检查程序是否做了不该做的测试应从“小规模”开始,逐步转向“大规模”反复使用同样的测试会使软件具有抵抗力关注缺陷的修复软件配置管理的作用?软件配置包括什么?软件配置管理作为软件开发过程的必要环节和软件开发管理的基础,贯穿整个软件生命周期,同时对软件开发过程的宏观管理即项目管理也有重要的支持作用。一个软件开发组织真正有效的实施软件配置管理,将会使软件开发过程有更好的可预测性,使系统具有可重复性,大大提高软件组织的竞争力。软件配置包括如下内容:配置项识别工作空间管理版本控制变更控制状态报告配置审计什么是软件质量?软件质量:软件产品的特性可以满足用户的功能、性能需求的能力。

5.http与https有何区别?

  • HTTP明文传输且无状态的,数据都是未加密的,安全性较差,HTTPS数据传输过程进行加密传输,而且传输数据前需要身份认证,所以安全性较好。
  • 使用HTTPS协议需要到CA(数字证书认证机构)申请证书。
  • HTTP页面响应速度比HTTPS快,主要是因为HTTP使用tcp三次握手建立连接,客户端和服务器需要交换3个包,而HTTPS除了tcp的三个包,还要加上ssl握手需要的9个包,一共12个包。
  • HTTP和HTTPS使用不同的连接方式,端口也不一样,前者80,后者443。
  • HTTPS是建构在ssl/tls之上的HTTP协议,所以HTTPS比HTTP更耗费服务器资源。

6.tcp/ip三次握手

  • 含义理解 TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。
  • 三次握手 (1)客户 端发送一个带SYN标志的TCP报文到server。这是三次握手过程中的报文1。 (2)server端回应client的,这是三次握手中的第2个报文。这个报文同一时候带ACK标志和SYN标志。因此它表示对刚才clientSYN报文的回应。同一时候又标志SYN给client,询问client是否准备好进行数据通讯。

    (3) 客户必须再次回应服务段一个ACK报文,这是报文段3。

    (4)连接终止协议(四次握手)

7.jmeter中跟踪重定向和自动重定向区别? 1)跟踪重定向通俗的理解就是跟踪请求执行的过程,并记录一些信息给开发者看到,我们一般可以在结果日志和监控中看到

2)自动重定向是不用跟踪请求执行过程,也不用记录

8.你认为做好测试用例设计工作的关键是什么? 白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结构。黑盒测试用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题。软件的黑盒测试意味着测试要在软件的接口处进行,这种方法是把测试对象看作是一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或者数据驱动测试。黑盒测试主要是为了发现以下几类错误:

  • 是否有不正确或遗漏的功能

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

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

  • 性能上是否能够满足要求

  • 是否有初始化或终止性错误

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

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

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

  • 在循环的边界和运行的界限内执行循环体

  • 测试内部数据结构的有效性等等

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

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

10.TCP与UDP区别?

  • TCP面向连接,发送数据需要三次握手先建立连接;UDP是无连接的,发送数据前不需要建立连接
  • TCP提供可靠的服务,通过TCP连接传送的数据,无差错、不丢失、不重复,且按序到达;UDP尽最大努力交付,但不保证可靠交付。
  • TCP面向字节流,把数据看成一连串无结构的字节流;UDP是面向报文的,没有拥塞控制,网络出现拥塞不会降低发送速率。
  • TCP首部开销20字节;UDP首部开销8个字节
  • TCP是全双工的可靠信道,UDP则是不可靠信道。

上一篇 忘记mysql密码

Comments

Content