当前位置:   article > 正文

软件测试面试题_测试组网图

测试组网图
测试面试题
1. 怎么来设计测试方案
根据测试需求(包括功能需求和非功能性需求),识别测试要点,识别测试环境要求,安排测试轮次,根据项目计划和开发计划做整体的测试安排。
被测试的特性:通过对需求规格说明书进行分析,列出本次测试需要进行测试的各部分特性(如要测试的功能需求、性能需求、安全性需求等等);
    不被测试的特性:由于资源、进度等方面原因,本次测试不列入测试范围的特性;
    测试组网图:进行本次系统测试所需要的软硬件设备、配置数据已及相互间的逻辑、物理连接。今后测试执行时需要依据这个组网图来进行环境的搭建。
2. 如果给你一个B/S系统你怎么来进行测试?此题答案还可用于回答测试流程,测试流程题亦可参考15题。
2 阅读系统需求,充分理解需求,记录问题,并与项目需求人员充分沟通。
2 编写测试需求,包括系统功能和非功能测试要点、测试类型、测试进度质量要求等。
2 制定测试计划,包括熟悉测试业务、设计测试用例、执行测试用例、进行测试小结、编写测试报告,任务颗粒度一般应小于5人天
2 编写测试用例,根据测试方案设计用例,即便没有明确的性能和安全测试要求,也应识别进行此两项测试。
2 执行软件测试,
2 进行测试小结,如果测试持续时间较长,每个版本间隙总结本轮测试。
2 编写测试报告,总结测试过程,汇总度量数据。
3. 怎么进行工作流的测试
把握需求,找准结点,理清流程,画出流转图,弄清节点间的数据流转,设计测试用例的时候必须覆盖所有可能的流程。
工作流:
如果问到有没有做过,根据对工作流的了解情况回答,如果比较了解,可以把参与的某个项目中说上一些有工作流的,如果不是很了解就说没有做过,但是学习过相关知识。
4. 在做性能测试的时候都需要关注哪些参数?
并发访问量,服务器响应时间(最小、平均、最大)
并发性能测试的过程是一个负载测试和压力测试的过程,即逐渐增加负载,直到系统的瓶颈或者不能接收的性能点,通过综合分析交易执行指标和资源监控指标来确定系统并发性能的过程。
负载测试(Load Testing)是确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统组成部分的相应输出项,例如通过量、响应时间、CPU负载、内存使用等来决定系统的性能。
负载测试是一个分析软件应用程序和支撑架构、模拟真实环境的使用,从而来确定能够接收的性能过程。压力测试(Stress Testing)是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。
疲劳测试是采用系统稳定运行情况下能够支持的最大并发用户数,持续执行一段时间业务,通过综合分析交易执行指标和资源监控指标来确定系统处理最大工作量强度性能的过程。 疲劳强度测试可以采用工具自动化的方式进行测试,也可以手工编写程序测试,其中后者占的比例较大。
一般情况下以服务器能够正常稳定响应请求的最大并发用户数进行一定时间的疲劳测试,获取交易执行指标数据和系统资源监控数据。如出现错误导致测试不能成功执行,则及时调整测试指标,例如降低用户数、缩短测试周期等。还有一种情况的疲劳测试是对当前系统性能的评估,用系统正常业务情况下并发用户数为基础,进行一定时间的疲劳测试。
大数据量测试可以分为两种类型:针对某些系统存储、传输、统计、查询等业务进行大数据量的独立数据量测试;与压力性能测试、负载性能测试、疲劳性能测试相结合的综合数据量测试方案。大数据量测试的关键是测试数据的准备,可以依靠工具准备测试数据。
5. 如果客户没有给你性能指数时,你怎么来开展性能测试工作?
如果客户没有提出明确的性能指标,可以按照惯例和经验设置,需要和PM协商,一般由PM确认,QA负责给出建议。
举例说一个Server端程序,要求峰值时CPU和MEM消耗在75%以下,而一个页面的访问响应时间一般认为用户的忍耐时间是3-5秒以内,这些要参考实际的应用来确定用户规模、操作频率、同时在线数等。
6. 有没有做过接口测试,是如何做的?
通过编写测试程序, 获得接口地址, 逐个调用接口函数验证其正确性, 及失败操作
根据开发人员提供的接口文档,使用postman编写测试用例脚本,进行测试,看是否跟预期值一致,如果一致则通过pass ,不一致则failed。对项目中每个功能模块,独立建一个文件夹。
对比较复杂的业务,通常,由多个接口组成,有次序,并且,多个请求之间会传递数据,那么需要进行编写写tests
    断言,是否和预期的值一致。
7. 测试过程中是如何来保证软件质量的?
        测试用例编写完毕后要加强评审的力度,确保测试用例覆盖所有需求点
执行测试过程中注意做小结检查覆盖情况、审视所提缺陷质量,复测时应注意相关模块的测试
测试时间宽裕的话可以做交叉测试,用以确保测试质量。
8. 测试方案都写什么内容?


 

1概述
2被测对象分析
3应测试的特性
4不被测试的特性
5总体设计方法
6测试模型
  6.1测试组网图
  6.2结构/对象关系图
  6.3测试原理
  6.4操作规程
7测试需求
  7.1环境需求
  7.2被测对象需求
  7.3测试工具需求
  7.4测试代码需求
  7.5数据需求
  7.6其它需求
8测试设计
  8.1工具设计
  8.2测试代码设计
  8.3用例设计
  8.3.1设计原则
  8.3.2测试项目
9.附录


 

(测试方案要求根据《SRS》上的每个需求点设计出包括需求点简介,测试思路和详细测试方法三部分的方案) 以往华为测试方案目录如下:


 

第1章 技术方案
1.1. 测试需求描述
1.1.1. 测试类型分析
1.1.2. 测试内容
1.2. 缺陷分类
1.3. 缺陷级别
第2章 SOW及规格的应答
2.1. 测试需求应答
2.2. 交付件应答
2.2.1. 软件交付件应答
2.2.2. 非软件交付件应答
2.3. 项目里程碑项目完成时间应答
2.4. 质量目标应答
2.5. 验收标准应答
2.6. 限制应答
2.6.1. 合作供应商人员组织应答
2.6.2. 硬件设备应答
2.6.3. 合作项目开发场地应答
第3章 类似项目成功案例
第4章 项目详细工作计划
第5章 项目估算


 

9. 测试方案和测试计划的区别
测试方案是技术性的;测试计划更多是管理性的。
测试计划主要要考虑测试的技术可行性、关键技术、资源投入、进度安排、风险管理、配置管理、输入输出等。测试计划更多地供高层管理者决策时做参考;同时对后续测试工作开展起指导作用。
在一些小项目中,可能只需要一个测试方案,测试计划内容相对较少,可以与测试方案合并进行;而一些大项目中,也许要设计数十个测试方案,这就需要一个提纲挈领的东西了,这就是测试计划的作用。
10. 测试用例是根据什么写的?
系统测试用例根据需求和设计编写
(华为的SDV测试用例是根据《测试方案》和测试策略来编写的)
11. 是怎么来设计测试用例的?
答:先熟悉系统需求,把握测试要点,设计用例的原则首先是要覆盖每个需求点,可以通过填写需求跟踪矩阵来保证覆盖。
黑盒测试的测试用例设计方法:等价类划分法、        边界值分析法、错误推测法、因果图。
12. 有没有测过手机终端的项目?
根据实际情况回答,如果没有测试过,可以回答,公司有过类似业务。
手机终端测试
13. 对测试工作的认识?
答:软件测试是软件开发过程的重要组成部分,是用来确认一个程序的品质或性能是否符合开发之前所提出的一些要求。软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。软件测试是为了发现错误而执行程序的过程。
软件测试在软件生存期中横跨两个阶段:通常在编写出每一个模块之后就对它做必要的测试(称为单元测试)。编码和单元测试属于软件生命周期中的同一个阶段。在结束这个阶段后对软件系统还要进行各种综合测试,这是软件生命周期的另一个独立阶段,即测试阶段。
华为独立外包测试一般包括ST(系统测试)和SDV(详细设计验证)两个阶段。
14. 缺陷是怎么管理的?
答:我们采用了Rational ClearQuest来管理缺陷。
测试人员执行测试,发现缺陷,录入CQ,要求填写项目名称、子系统名称、模块名称、缺陷标题、缺陷描述(描述场景、现象)、缺陷级别、提出人等。状态:已提交。
项目经理或开发组长确认缺陷后分配给开发人员,状态:已分配。
开发人员修复缺陷完成后,将修复缺陷所花费的时间填写的Schedule中,缺陷的产生原因填写在备注中,因采用UCM模式,所有造成该缺陷的错误代码文件,在UCM视图中可以统计。状态:已处理。
测试人员复测,如缺陷已经修复,则关闭缺陷,状态:已关闭。如缺陷仍然存在,则修改状态为已分配。
当缺陷存在争议时,开发组长或开发人员可以申请否决,由项目经理、技术经理、测试负责人、相关开发人员和测试人员共同决定缺陷是否可以否决。状态:已申请否决、已否决。
当前不能修复,或当前版本无法解决的缺陷可以申请延期,状态:已申请延期、已延期。
15. 介绍一下测试流程。
答:项目启动后进行需求培训,测试人员尽早的参与到项目需求的培训和评审,也就是测试工作应该从需求阶段开始介入。
  项目经理编写《项目计划》,开发人员产出《需求规格说明书》,这时测试组长就要根据《项目计划》开始编写《测试计划》,其中包括人员,软件硬件资源,测试点,进度安排和风险识别等内容。
《测试计划》编写完成后需要进行评审,参与人员有项目经理,测试经理。测试组长需要根据评审意见修改《测试计划》,并上传到CC上,由配置管理员管理。
  待开发人员把《需求规格说明书》归纳好并打了基线,测试组长开始组织测试成员编写《测试方案》,《测试方案》编写完成后也需要进行评审,评审人员包括项目经理,开发人员,测试经理,测试组长,测试成员;测试组长组织测试成员修改测试方案,直到评审通过后才进入下个阶段――编写测试用例。
  测试用例是根据《测试方案》来编写的,通过《测试方案》阶段,测试人员对整个系统需求有了详细的理解。这时开始编写用例才能保证用例的可执行和对需求的覆盖。测试用例需要包括测试项,用例级别,预置条件,操作步骤和预期结果。其中操作步骤和预期结果需要编写详细和明确。测试用例应该覆盖测试方案,而测试方案又覆盖了测试需求点,这样才能保证客户需求不遗漏。同样,测试用例也需要通过开发人员,测试人员的评审,测试组长也需要组织测试人员对测试用例进行修改,直到评审通过。
  在我们编写测试用例的阶段,开发人员基本完成代码的编写,同时完成单元测试。提交测试中心后根据《测试计划》进度安排,测试组长组织进行多轮次的测试,每轮测试完成后测试组长需要编写测试报告,其中包括用例执行通过情况,缺陷分布情况,缺陷产生原因,测试中的风险等等,这时测试人员就修改增加测试用例。待到开发修改完bug并转来新的测试版本,测试人员开始进行第二轮的系统测试,首先回归完问题单,再继续进行测试,编写第二轮的测试报告,如此循环下去,直到系统测试结束。
16.接口测试中依赖登录状态的接口如何测试?
目前,身份标识主要使用两种技术来实现:1、token;2、cookie+session
如果是token,那么只需要在实现登录接口之后,获取token,然后设置到变量中,之后的接口在请求数据中按照接口文档的要求,进行引用即可;
如果是cookie和session,同样是在实现登录接口之后;
postman工具,会自动保存和管理cookie,之后的接口直接发送接口请求就行;
Jmeter工具:可以添加cookie管理器,然后线程组中的接口请求之间就能只能完成cookie的传递;
Python代码:可以使用创建session对象,来自动化管理和传递接口之间的cookie;
17.手工接口测试或者自动化接口测试的过程中,上下游接口有数据依赖如何处理?
用一个全局变量来处理依赖的数据,比如登录后返回token,其它接口都需要这个token,那就用全局变量来传token参数。
18.平常做接口测试的过程中发现过哪些bug?
常规错误,接口没实现,没按约定返回结果,边界值处理出错等。
输入异常值(空值、特殊字符、超过约定长度等),接口抛错,没做封装处理;
输入错误的参数、多输入、少输入参数、接口可能出现的错误;
安全性问题,如明文传输、返回结果含有敏感信息,没有对用户身份信息做校验,没做恶意请求拦截;
性能问题,如接口并发插入多条相同操作,响应时间过程,接口压测出现瓶颈等。
19.公司什么时候做接口测试?
1、项目处于开发阶段,前后端联调接口是否请求的通,(对应数据库增删改查)---开发自测;
2、有接口需求文档,开发已完成联调(可以转测),功能测试展开之前;
3、专项测试:如测流量大小,查看图片压缩大小,测试接口请求响应时间;
4、版本上线前,进行整体回归测试,查看接口是否有异常(如404等)。对准备上线的版本进行抓包,查看服务器地址是否正确;
5、版本功能稳定后,接口自动化测试;
20.如何做接口测试?
1、拿到开发给的接口文档,对接口进行分析;
2、根据接口文档给出的信息,编写接口的功能测试用例。接口的功能测试用例分为两方面:
  • 业务场景的接口测试

         业务场景测试的是,手工的正向业务流程测试用例,调用接口是否能够正常完成;

  • 单接口的测试

        单接口测试,测试的是接口本身的功能是否实现。可以按照两个方面来设计测试用例:

                正向测试用例(测试接口的功能是否实现):仅必填参数、全部参数、参数组合;

                反向测试用例(传入请求数据异常的情况下,依然有返回的响应数据):功能异常、数据异常、参数异常;

3、通过postman或者Jmeter工具实现接口测试用例,具体是两方面:

        对接口发送请求;

        获取响应的结果,对响应结果是否与预期一致进行校验;

21.接口测试流程?

1、获取接口规范;

2、设计接口测试用例(主要从用户角度出发看接口能否实现业务需求,用例设计就是黑盒用例);

3、各种入参验证(正常情况、异常情况包括输入参数个数不对,类型不对,可选/必选,还有考虑参数有互斥或关联等的情况);

4、接口返回值各种验证(符合接口文档需求);

5、了解接口实现逻辑,实现逻辑覆盖(语句/条件/分支/判定...)

6、接口的安全性、接口性能

7、采用工具或者自写代码来验证;

8、发现问题报bug,并进行状态跟踪;

22.接口测试出现bug的原因有哪些?

接口测试常见的bug有以下几个:

特殊值处理不当导致程序异常退出或者崩溃;

类型边界溢出,导致数据独处和写入不一致;

取值边界外未返回正确的错误信息;

权限未处理,可以访问其他用户的信息;

逻辑检验不完善,可以利用漏洞获取非正当利益;

状态处理不当,导致逻辑出现错误;

数组类型item个数为0或者item重复时程序异常退出;

23.日常开发中有遇到过哪些状态码?

常见的状态码:

200 OK 客户端请求成功。 301 Moved Permanently 请求永久重定向。 302 Moved Temporarily 请求临时重定向。 304 Not Modified 文件未修改,可以直接使用缓存的文件。 400 Bad Request 由于客户端请求有语法错误,不能被服务器所理解。 401 Unauthorized 请求未经授权,无法访问。 403 Forbidden 服务器收到请求,但是拒绝提供服务。服务器通常会在响应正文中给出不提供服务的原因。 404 Not Found 请求的资源不存在,比如输入了错误的URL。 500 Internal Server Error 服务器发生不可预期的错误,导致无法完成客户端的请求。 503 Service Unavailable 服务器当前不能够处理客户端的请求,在一段时间之后,服务器可能会恢复正常。

24.接口测试中参数类型有哪些?

常见的参数类型为:字符串、JSON数据、表单数据。

key-value形式可以把参数拼接在url的后面由?相连,多个参数之间用&相连,如url?parameter1=key¶meter2=key2....

json,表单数据传参不能把参数直接连在url中,需要写在请求的body里面,可借助工具postman,打开请求的body写入JSON格式参数。

25.接口测试的主要测试点?

业务场景(多接口):测试由多个接口,是否能够实现指定业务场景;

单接口:

        测试该接口功能是否实现;

        测试当传入异常请求数据时,接口是否依然能够正常返回响应数据;

26.接口测试中有哪些要注意的测试点?

1、接口中返回了推按地址,要手工进行图片的测试(大小、内容)

2、接口完成查询功能的时候,数据返回的排序显示;

3、接口测试的时候,关注参数的默认值、必填项。

27.接口测试时测试的重点是什么,测试用例如何设计?

1、通过性验证,说白了就是传递正确的参数,是否返回正常的结果;

2、参数组合,因为参数有必传和非必传,参数的类型和长度,以及传递时可能业务上的一些限制,所以设计用例时,就要排列组合这些情况,保证所有情况都能覆盖到;

3、接口的安全性,这个又分为几种情况:

        绕过验证,比如提交订单时,在传递商品价格参数时,修改商品价格,就要看后端有没有验证了;

        绕过身份证验证,就是某个功能只有特殊权限的用户才能操作,那我传递一个普通的用户,是不是也能操作呢;

参数是否加密,这个关系到一些账户的安全,比如我们在登录一些网站时,它要讲我们的登录信息进行加密,如果不加密我们的信息就会暴露,危害性极大;

密码安全规则,设置密码时复杂程度的校验;

4、根据业务逻辑来设计测试用例

28.如何设计自动化测试用例?

1、编写测试脚本之前要编写测试用例,而且测试用例不能直接使用手工测试的用例;

2、自动化的测试用例是一个完整的场景。用户登录系统到用户退出;

3、用例之验证一个功能点。不用试图登陆后验证所有的功能再退出;

4、测试用例尽量只做正向的逻辑验证;

5、用例之间不要产生关联,相互独立,也要高内聚、低耦合;

6、测试用例关注的是功能逻辑的实现,字段无关;

7、测试用例的上下文必须有一定的顺序性,前置条件清晰;

8、检查点的设置要侧重,全面、灵活;

9、测试用例对数据的操作要进行还原;

10、测试用例必须是可回归的;

11、用例选择遵循成本始终,构建场景,目的冒烟回归,繁琐功能,主体流程;

12、用例转型遵循前置配置,抛异常,步骤验证,高内聚,关门归原;

29.测试用例你一般是怎么设计的,怎么可以提高覆盖率?

30.地铁刷卡进站是怎么测试的?用例设计,同类的还是水杯、笔、电梯。。。。

31.从零到一独立负责一个大项目,你是如何开展测试的?

32.接口测试你是怎么做的?都发现了哪些问题,详细说下定位分析过程。

33.测试过程中你遇到最难得一个技术问题是什么?如何解决的?

34.Linux 监控操作系统的常用命令,查看 JVM 的命令

35.Linux 三剑客说一下有什么区别,应用场景是什么?

36.查找大于 1M 的文件 linux 命令

37.Linux 查找当前目录下所有后缀为.py 的文件?

38.系统操作卡顿怎么分析原因,会有哪些命令

39.说一下装饰器,应用场景有哪些,项目中是如何用的?

40.深浅拷贝

41.说下 python 的可变参数,应用场景是什么?

42.面向对象三大特征

43.类变量,实例变量,类对象,实例对象的区别

44.return 和 yield 区别

45.推导式,迭代器,生成器

46.Python有哪些类型的数据结构,列表、集合、元祖、字典的区别

47.Python 中私有变量能否访问

48.Python 中类的方法种类和区别

49.常见的排序算法,冒泡,快排等

50.数组,字符串的相关算法操作比如找一个字符串中重复最长的字符串等

51.斐波那契数列相关

52.http、rpc接口的特点,如何俄式

53.Cookies\session\token 3者

54.Tcp 握手过程,为什么是3次

55.有了 postman,jmeter 还有开源的接口自动化平台,为什么还要写代码来做自动化,你们这套自动化框架的意义是什么?

56.接口自动化分别用了哪些框架,怎么实现的,你主要负责哪些部分?

57.你们这套框架最难的技术点有哪些?

58.搭建框架过程中遇到哪些问题,怎么解决的?

59.数据驱动怎么做的?关键字驱动怎么做的?

60.正向代理和反向代理区别?

61.全链路压测如何做,分析性能瓶颈

62.Tps上不去什么原因,怎么排查,响应时间长如何分析

63.内存泄漏、内存溢出的区别

64.如何监控数据库,分析慢查询

65.压测prd环境会有哪些问题、如何减少影响,数据隔离如何实现

66.浏览器输入www.baidu.com后的过程是什么,dns

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/519041
推荐阅读
相关标签
  

闽ICP备14008679号