面试题总结(简答)

1.简答

1、对面向对象的系统采用的集成策略有哪些?

答:自顶向下,自底向上两种。

2、比较负载测试、压力测试、容量测试和强度测试的区别?

负载测试:在一定的工作负荷下,系统的负荷及响应时间。通过逐步增加系统负载,最终确定在满足性能指标的情况下,系统能承受的最大负载量的测试;

压力测试:在瞬间峰值的压力下,看系统的承受能力,最终确定系统性能在什么样的负载条件下处于崩溃状态;

3、测试计划都包括哪些要点?

答:项目的相关简介、测试范围、测试的参考文档、测试时间的安排、人力资源的分配、系统风险的评估和优先级的定义、缺陷的严重级别标准以及在接下来的测试工作中编写测试用例和缺陷报告的模板。

4、什么是测试策略?

答:描述测试工作的总体方法和目标,主要包括:确定的测试技术和工具,确定测试启动、停止、完成的标准,风险分析和应对方案。

5、如何保证用例覆盖到罕见缺陷?

答:充分的设计时间、充分的需求分析,每一个功能点都有用例覆盖,严格的评审流程,保障输出都是有效的,在测试用例的执行过程中,会根据实际的项目情况,对用例来做增加和修改。

6、缺陷报告包括哪些?

答:软件名称、版本号、功能模块、缺陷编号、对应的用例编号、编写时间、编写人、预期结果、实际结果、缺陷描述、严重级别、优先级别。

7、测试总结报告包括哪些?

答:主要是测试过程的总结和版本质量的评估。

8、缺陷等级的划分?

严重:系统崩溃、数据丢失、数据毁坏;

较严重:操作系失误、错误结果、遗漏功能;

一般:小问题、错别字、ui布局、罕见故障;

建议:不影响使用的瑕疵或更好的实现。

9、开发人员修复缺陷后,如何保证不影响其他功能?

答:重新执行用例,看是否出现错误结果,并且对周围的一些相关功能点追加新的测试用例。

10、Alpha测试与Beta测试的区别?(验收测试)

Alpha测试:在系统开发接近完成时对应用系统的测试,不能由程序员或测试员完成;

Beta测试:用户在实际使用环境下测试,开发人员不在测试现场

11、什么是易用性测试?

答:易用性测试主要是从使用的合理性和方便性等角度对软件系统进行检查,发现人为因素或使用上的问题。

12、什么是安全测试?

答:安全性测试是要检验在系统中已经存在的系统安全性、保密性措施是否发挥作用,有无漏洞。

破坏系统的保护机构以进入系统的主要方法有以下几种:

(1)正面攻击或从侧面、背面攻击系统中易受损坏的那些部分;

(2)以系统输入为突破口,利用输入的容错性进行正面攻击。

13.简单概述缺陷报告包含哪些内容

缺陷编号 严重程度 优先级 所属模块 缺陷状态 测试环境 指派人 缺陷类型 缺陷标题 重现步骤
预期结果 实际结果 提交人 提交时间 测试用例 附件

14.开发人员修复缺陷后如何保证不影响其他功能

重新执行用例,看是否出现错误结果,并且对周围的一些相关功能点追加新的测试用例。

15.压力测试和负载测试的区别 需要关注那些指标

负载测试:是指对程序不段增加压力,每个增加后,程序的性能情况 压力测试:是指程序长时间运行的稳定性
压力测试分为稳定性测试和破坏性测试 区别:负载测试是不关注稳定性的,压力测试是关注稳定性的

16.SQL中having是做什么用的 WHERE和Having有什么区别

having称为分组滤过条件,也就是说是分组需要的条件,所以必须与group by联用
也就是说,聚合函数计算的结果可以当条件来使用,因为它无法放在where里,只能通过having这种方式来解决。 区别:HAVING 子句对
GROUP BY 子句设置条件的方式与 WHERE 子句和 SELECT 语句交互的方式类似。WHERE
子句搜索条件在进行分组操作之前应用;而 HAVING 搜索条件在进行分组操作之后应用。HAVING 语法与 WHERE 语法类似,但
HAVING 可以包含聚合函数。HAVING 子句可以引用选择列表中出现的任意项。

17.如果项目周期很短 测试人力匮乏 你是怎么调谐的

依据代码review的结果和影响范围,对测试内容进行适当的裁剪。 借助自动化工具的支持,提高测试案例的执行效率。
调整组内任务的优先级,进行人力协调,优先投入最紧要的项目。 必要的情况下加班

18.测试发现了一个高优先级的bug 在上线前产品人员评估后确认该bug

不阻塞上线 可以以后再修复 但是上线后收到了很多的用户反馈 说该问题 影响到了用户的习惯 因此紧急上线了一个补丁包修复该问题 请问如何保证
同类问题以后不再发生(请将找出的问题原因和解决方法写出来)

19.用例设计 QQ发消息功能(写出你能想到的所以测试点 用例结构要清晰)

1.发送消息是否成功(按钮和快捷键)
2.发送文字(消息为空、空格、最大长度、敏感字、特殊符号)
3.发送图片,包括从本地选择图片和从外部复制粘贴(图片大小、格式、数量)
4.发送文字和图片混合的消息
5.给不同的人发消息(例如:好友、陌生人、群聊里发消息、讨论组里发消息、通过群私聊,需考虑群主开启与未开启私聊的情况)
6.群发消息(对象包括好友、群聊、讨论组等)
7.被禁言是否还能发消息
8.群聊或讨论组中发消息,已经屏蔽群的人是否还能收到
9.发送消息时,对方在线或离线、忙碌状态等
10.发送过程中弱网或者断网
11.从运营安全的考虑,一个qq一天可以发送多少消息,发送多少图片
12.安全性,当发送黄图或有毒链接时(拦截?提示?)

20.什么是软件测试

使用人工或自动的手段来运行或测量软件系统的过程, 以检验软件系统是否满足规定的要求,并找出与预期结果之间的差异。

21.软件测试的目的

用最少的人力物力时间,找出软件中存在的问题,修正问题,规避商业风险。

22.性能测试中tps如果不上去原因有哪些

1、网络带宽 在压力测试中,有时候要模拟大量的用户请求,如果单位时间内传递的数据包过大,
超过了带宽的传输能力,那么就会造成网络资源竞争,间接导致服务端接收到的请求数达不到服务端的处理能力上限。 2、连接池
可用的连接数太少,造成请求等待。连接池一般分为服务器连接池(比如Tomcat) 和数据库连接池(或者理解为最大允许连接数也行)。
3、垃圾回收机制 从常见的应用服务器来说,比如Tomcat,因为java的的堆栈内存是动态分配,
具体的回收机制是基于算法,如果新生代的Eden和Survivor区频繁的进行Minor GC,老年代的full GC也回收较频繁,
那么对TPS也是有一定影响的,因为垃圾回收其本身就会占用一定的资源。 4、数据库配置
高并发情况下,如果请求数据需要写入数据库,且需要写入多个表的时候,如果数据库的最大连接数不够,
或者写入数据的SQL没有索引没有绑定变量,抑或没有主从分离、读写分离等,就会导致数据库事务处理过慢,影响到TPS。 5、通信连接机制
串行、并行、长连接、管道连接等,不同的连接情况,也间接的会对TPS造成影响。 6、硬件资源
包括CPU(配置、使用率等)、内存(占用率等)、磁盘(I/O、页交换等)。 7、压力机
比如jmeter,单机负载能力有限,如果需要模拟的用户请求数超过其负载极限,
也会间接影响TPS(这个时候就需要进行分布式压测来解决其单机负载的问题)。 8、压测脚本
还是以jemter举个例子,之前工作中同事遇到的,进行阶梯式加压测试, 最大的模拟请求数超过了设置的线程数,导致线程不足。
提到这个原因,想表达意思是:有时候测试脚本参数配置等原因,也会影响测试结果。 9、业务逻辑
业务解耦度较低,较为复杂,整个事务处理线被拉长导致的问题。 10、系统架构
比如是否有缓存服务,缓存服务器配置,缓存命中率、缓存穿透以及缓存过期等,都会影响到测试结果。

2.简答

1.APP和web测试有什么不同

Web测试和APP测试相同点 
1)设计测试用例时,依然都是依据边界值分析法、等价类划分等; 
2)多数采用黑盒的测试方法,来验证业务功能是否得到正确的应用; 
3)需要检查界面的布局、风格和按钮等是否简洁美观、是否统一等; 
4)测试页面载入和翻页的速度、登录时长、内存是否溢出等; 
5)测试应用系统的稳定性等。 
Web测试和APP测试不同点 
web自动化测试使用的工具较常用的是QTP,而android手机自动化测试工具比较常
用的是monkey、monkeyrunner。 兼容性测试,web的比较常用考虑到是不同分辨率
的电脑、不同浏览器。app考虑的是不同手机型号、厂家、分辨率和屏幕大小等

2.简述一条测试用例包含那些必要部分 怎样理解

1.编号,用来区别每一个测试用例;
2.标题或者描述,用来标注这个用来的作用
3.前置条件,要执行这个测试所需要满足的条件
4.执行步骤
5.预期结果
6.用例执行日期
7.用例执行者(如果是一个人测试的话,这个字段就是所有用例所共有的)
8.实际结果,这个是每次测试用例执行完后需要填写的
9.测试环境:包括软硬件环境,配置信息等,但因为我每次测试都在同样环境中执行不止一个用例,所以测试环境是每次执行的测试用例所共有的信息.
10.参考信息,这部分信息可用来做测试执行成功与否的判断辅助信息

3.如果判断一个问题是不是bug bug一般分为那些级别以及如何定级

1.致命问题: 造成系统崩溃、死机、死循环,导致数据库数据丢失,与数据库连接错误,主要功能丧失,基本模块缺失等问题。如:代码错误、死循环、数据库发生死锁、重要的一级菜单功能不能使用等
2.严重问题: 系统主要功能部分丧失、数据库保存调用错误、用户数据丢失,一级功能菜单不能使用但是不影响其他功能的测试。功能设计与需求严重不符,模块无法启动或调用,程序重启、自动退出,关联程序间调用冲突,安全问题、稳定性等。
3.一般问题 功能没有完全实现但是不影响使用,功能菜单存在缺陷但不会影响系统稳定性。
4.轻微问题: 接口、性能缺陷,建议类问题,不影响操作功能的执行,可以优化性能的方案等。

4.功能测试的常用方法有哪些以微信朋友圈的点赞功能为例请设计测试用例

主要从界面、功能、兼容性、性能、并发等几个角度进行设计,至于安全性这块,不知道针对这个功能应该如何进行,所以未涉及
主要的测试点在功能测试,尽力覆盖了能想到的常用功能的测试点

5.简述app测试中 性能测试主要包含了那些方面

功能测试
性能测试
地理位置定位测试
设备兼容性测试
耦合应用测试
PUSH跳转测试
功能测试
适当的性能测试

6.在你之前项目测试中做过那些兼容性测试

1.测试软件是否能在不同的操作系统平台上兼容,或测试软件是否能在同一操作平台的不同版本上兼容

2.软件本身能否向前或向后兼容

主要指的是能否兼容不同版本的数据

3.测试软件能否与其他相关的软件兼容

例如杀毒软件,文字处理软件,办公软件之间的兼容性

4.被测软件与标准外设的兼容

例如打印机

5.程序与运行支撑平台版本之间的兼容性

例如是否可以兼容不同的JDK版本,或不同的framework版本等

6.程序与应用服务器之间的兼容性

是否支持不同的应用服务器产品,或支持同一应用服务器的不同版本

7.各个浏览器之间的兼容性

主要是指的B/S架构中,与浏览器各种内核之间的兼容性问题

8.各种屏幕分辨率之间的兼容性

9.不同的网络环境中的兼容性

10.数据库之间的兼容性

不同的数据库之间的数据迁移问题

11.不同版本程序数据文件之间的兼容性

同一数据库在不同版本的软件上是否能够迁移

12.整机的兼容性

例如在本机能安装使用,在其他配置机器能否正常使用

13.其他软件的数据兼容性

即别的软件中的数据文件能否经进行处理

14.低版本软件生成的文件,高版本软件是否能够打开

15.如果是C/S系统,能否支持低版本的客户端程序访问高版本的服务器端或者是否支持高版本的服务器端程序访问低版本的服务器端

16.如果是C/S系统,是否允许不同版本的客户端与同一个服务器进行通信

17.如果是C/S系统,是否允许不同版本的客户端之间进行通信

18.当前软件系统生成的文件或数据是否可以在其他软件中被打开

19.是否支持同时安装或运行两个不同版本的软件

20.不同版本的软件系统是否能够支持以往的数字证书或硬件加密狗等安全校验文件

21.新版本的系统是否和老的应用插件相兼容

7.使用monkey命令做稳定性测试用到过那些参数 各代表什么意思

monkey工具是Android自动化测试工具的一种,通过命令行对Android
app稳定性和健壮性进行测试,即随机点击屏幕一段时间,看看app是否会崩溃。

1.环境准备 1)安装jdk:java 1.8.0 (java -version) 2)下载android sdk,配置相关环境 3)将设备与电脑连接成功

2.测试命令行 1)-h:查看帮助信息
例:adb shell monkey -h

2)对连接的设备触发随机事件100次
例:adb shell monkey 100

3)-p:对指定应用触发随机事件100次
例:adb shell monkey -p packagename 100

 可以指定对多个应用触发随机事件100次
  例:adb shell monkey  -p  packagename1  -p  packagename2  100

4)-s:设置种子数,保证回归路径一致
例:adb shell monkey 100 -s 5

5)–throttle :每次执行随机事件的时间间隔(单位:毫秒)
例:adb shell monkey 100 --throttle 1000

6)–randomize-throttle:设置时间间隔的随机时间区间
例:adb shell monkey 100 –

8.接口中常见的请求方式有哪些 有什么区别是否了解cookie sesion token的用法和区别

1、Get 向特定资源发出请求(请求指定页面信息,并返回实体主体)

2、Post 向指定资源提交数据进行处理请求(提交表单、上传文件),又可能导致新的资源的建立或原有资源的修改

3、Put 向指定资源位置上上传其最新内容(从客户端向服务器传送的数据取代指定文档的内容)

4、Head
与服务器索与get请求一致的相应,响应体不会返回,获取包含在小消息头中的原信息(与get请求类似,返回的响应中没有具体内容,用于获取报头)

5、Delete 请求服务器删除request-URL所标示的资源*(请求服务器删除页面)

6、Trace 回显服务器收到的请求,用于测试和诊断

7、opions 返回服务器针对特定资源所支持的HTML请求方法 或web服务器发送*测试服务器功能(允许客户端查看服务器性能)

8、Connect HTTP/1.1协议中能够将连接改为管道方式的代理服务器

9.如何判断一个bug是客户问题还是服务端问题还是前端问题

首先需要了解一个页面的请求过程:以http请求为例:
1、用户在前端页面操作,如点击某个提交按钮
2、页面携带数据进行请求,访问具体功能接口
3、由后端服务执行相应的业务逻辑,如涉及数据,再去请求并组装数据返给前端 4、前端页面进行渲染和展示对应的页面和数据
前后端bug各有什么特点?

前端bug特点 1, 界面相关 2,布局相关 3,兼容性相关

后端bug特点 1,业务逻辑相关 2,性能相关 3,数据相关 4,安全性相关

定位前后端bug,有什么方法?

1、经验法

软件测试人员应不断精进自己的技能,负责的项目多了,自然对功能的实现过程有了解,也就明白如何分类bug了。 例如:
网页上的某个图片的分辨率不对,如果我们了解实现过程,可以想到一般情况下,是根据某个地址去服务器取图片的,数据库一般只保存地址,那么图片能正确显示,就说明后端的基本功能是满足需求的。如果具体图片分辨率有误,最可能的原因是前端显示过程出了差错。

2、查日志

当我们发现一个bug,并不确定这个bug属于前端还是后端,可以查看后端服务的日志,复现bug时,查看日志中有没有相关信息。基本可以认为,如果日志没有输出,很可能这个功能并没有与后端交互,也就不存在后端的问题。反之,如果日志有输出,可以进一步查看有无错误日志信息,进一步分析

3、查接口

这种方法常用于查看是后端返回给前端的数据有误,还是前端显示有误。
大多数浏览器都有自带的接口查看工具,如Chrome,FireFox等都可以通过F12开启抓包,在NetWork中可以看到当前页面发送的每个http请求。
我们需要对比通过后端接口拿到的数据和前端显示的数据,来确认问题出在哪里。如果数据错了,页面显示是错的,也是正常的,先从后端入手去解决。

还可以分析控制台中js是否有错误,network中状态码是否有问题,如果是500等说明服务端有问题。

比如登录页面,输入账号和密码点击登录,结果没有跳转也没有反应

可以打开控制台,看是否有js错误,如果有就是前端问题,没有且有正常post请求再看network状态码,如果是404有可能是前端参数写错或者后台接口改了,前后端都可以提,500就是后台出了问题。

10.简述软件项目的送达流程你在过去的工作中参与过哪些环节

1.1 项目合作与成员 根据本项目的工作内容和范围,我们将成立一个20人左右的项目工作组来负责本项目的开发。

1.2 项目实施方法 项目管理的成效直接关系到整个项目的成败。尤其是实施与移动互联网有关的新技术应用项目,无论在国内和国外都是有一定难度的,更需要成功的项目管理。我们充分认识到了这一点,并且已做好了准备。我们在项目管理方面具有丰富的经验,并且拥有一套实际运用和不断完善的实施方法和富有经验的项目管理人才。

我们项目管理紧跟世界项目管理协会(Project Management
Institute)的原则,结合移动互联网项目IT系统开发和创意设计的特性,我们的这套方法适用于带有大量系统应用开发和创意设计相结合的项目。已经在我们越来越多的成功项目中得以体现和印证。

项目的实施方法是保证我们每个项目能够得以顺利完成,有效协同各种专业人员共同参与,有组织有计划的进行资源管理和分配,并能够在最大程度上保证我们的项目按时,按质完成的前提。作为我们多年积累摸索的结果,在这里我们将它作一个介绍。

我们项目实施方法中的五个基本阶段是:

1.2.1 规划定义 作为项目的启动,规划定义阶段的目的是为了能够准确地把握客户的商业目的,确立项目范围、整体性和操作实施性。这包括对客户商业策略的回顾;确认、记录并按优先次序排列出需求清单,提出系统构架草案。根据该项目的特点,我们将选择项目成员、整合项目组并安排项目计划。

1.2.2 分析设计 在得到了项目目标,范围和高级别需求清单等结果后,我们将针对功能性,系统构架技术性和视觉创意等方面进行更详细的分析设计。我们将它们一一记录下来并与您一起探讨,改进.如有必要,我们将制作一个原型或演示系统来测试我们的概念。
之后,我们将根据这个设计又针对性地来完成内容开发,交互信息和界面设计等工作。

1.2.3 编码制作 我们开始建造这个系统。开发整合阶段的工作是将所有设计的结果予以开发出来。 如有必要我们还将这个新系统与您现有系统进行整合。本阶段将完成一个正常运行的系统。

1.2.4 测试验收 测试工作包括功能测试和性能测试两部分。然后将已完成的系统从开发环境迁移至发布环境。有计划的发布功能和数据直至全部开放进行商务运作。我们将记录并转移一切客户必须掌握和了解的技术与规范方面的知识,保证客户懂得如何运作及维护系统。用户和我们将在一个有限的范围内对系统进行试运行,系统试运行一段时间后,系统将投入正式运行。

1.2.5 维护管理 除了对活的系统进行必须的监视、维护来保证其正常运作外,管理维护阶段更重要的任务是从正处于实际运营的系统上测试实际的系统性能;在运营中发现系统需要完善和升级的部分;衡量并比对系统较商业目的和需求的成功与否。将所有这些信息整理成一份计划以便于将来对网站系统的增强和升级阶段、步骤和任务我们将项目的时间周期分为5个阶段(Phase),在不同阶段内用相应的步
骤(Process)来达到不同阶段的目标。而任务(Task)被包含在不同步骤之内,以完成该步骤的工作内容。由浅至深,由总到细,三个元素之间相互联系,相互作用,有机的构成了整个方法的蓝本。在实际操作中,根据不同时期的不同任务,动态地分配资源予以实施,再与专业人员的专业知识相结合,使得项目得以妥善完成。

1.3 项目组织与管理 组织机构的建设及其有效运作,对于大型系统和应用开发项目而言,往往关系到工程实施的成败,因此这一环节被许多业界专家称为“硬件”、“软件”之外的“人件”。在该项目的建设中,我们拟采用如下的项目组织形式。

由于系统的建设是一个较为复杂的系统工程,为便于实现高度的合作及高效率的管理,建议成立项目组,项目组的人员组织结构由双方管理人员和技术人员共同组成,以充分发挥个人特长和有利于项目实施为原则,由双方协商安排项目组成员的工作。

项目组成员对领导小组成员负责,领导小组成员主要由领导和实施的专家组成,主要对系统的实施提出指导性意见和把握系统建设的总体方向和技术实施方案和技术措施的评审。
项目组以项目经理为核心,整个项目由项目经理全权负责,项目经理向项目组负责,并接受项目组监督管理。

项目组分为业务需求组、应用系统开发组、技术支持组、质量保证组、项目保障组、系统维护组,应用开发组可以根据系统或开发过程的需要及其特点,划分为若干个开发小组。

1.4 工程质量保证体系 为保证工程项目的实施进度计划和质量,特制定严格的项目研发管理流程,来保证工程质量,项目研发管理流程主要定义研发中心产品研发或项目的管理与监控的规范,产品或项目开发通常由下列4个阶段构成:

启动阶段:证实一个项目应该开始,经过论证是可行的,并承诺按时间要求完成。
计划编制阶段:设计并维护一个可执行的进度计划,以实现所承担项目所要达到的商业需求,保证项目按时间要求和成本要求完成。
实施阶段:协调人员和其他资源以执行计划,并通过验收,移交给产品部。
总结阶段:项目或产品的正式接收,总结项目成功的经验和失败的教训,总结项目中产生的技术资源等,并将全部技术文档、源程序、技术资源等,移交技术资源与监督部备份保存。
这些过程所创造的结果是相互联系的,即每个过程的输出(结果)成为另一个过程的输入(依据)。同时,这些过程不是离散的,它们相互因果关系。后一个过程必须在前一个过程完成后才开始进行。

11.是否遇到过测试任务过多无法完成情况 当时你是怎么解决的

把任务分级,先做重要的,再做紧急的,然后做其他的。自己不要慌乱,要有章法,再多的任务,只要一点一点做,都能做完任务再多,再忙碌也不要着急,一定要理清头绪,分清轻重缓急,先干最要紧的事儿,然后再一件一件的去干,这样就井井有条了

12.在同一个项目组内 你认为你怎么做会比另外一名测试更加优秀

工作积累经验和此份工作的契合度; 硬实力:列举专业技能 软实力:协作能力、规划能力等 自己对面试岗位的理解和自己未来能给他们带来什

13.你做软件测试多久了 你认为对于测试人员最重要的三个特点是什么

一、 踏实细心和积极主动 我觉得作为一名测试人员首先要踏实细心。细心:这个不用多解释了吧。粗枝大叶的人是没法做好 软件测试的。
软件测试,特别是当前国内主流的手动黑盒
功能测试。基本上软件测试的工作就是一项重复劳动,需要有一定的耐心来保证不在枯燥的重复劳动中放过那些细小的
缺陷。测试人员每天都要面对着枯燥的程序,从事着大量的重复工作,还要尽量发现产品中的
bug。如果不踏实,你就坐不住,总想干别的,就无法净下心来想用户有可能怎么用,
需求对产品是怎么要求的,现在产品中是怎么做的,哪里可能存在问题。不细心,就特别容易一些产品中微笑的错误,而恰恰就是这些错误是最影响产品形象的问题。
至于积极主动就不多说了。这是每个人都应该具有
二 好奇心,怀疑一切
测试人员,对于手上的项目,如果单单只是去运行它,这样是没法发现问题的。我们测试人员进行测试的主要目的就是发现软件存在缺陷,而不是证明它没有缺陷。如果不抱着怀疑一切的态度就不是一名合格的测试人员。经过你手测试的产品面对的是直接用户。你不认真负责,不抱着怀疑一切的态度。总想着这个功能本版没动应该没什么问题,认为一般人不会去这样操作它,这个功能没什么用户用不用认真测了。这样发出的产品,我是不敢让用户用。因为用户用起产品来是千奇百怪,有些用户的水平和对产品的理解比咱们还要深。所以一定要抱着怀疑一切的态度,从多个方面考虑,认为产品每个功能都可能有问题,多问一个「为什么」,「如果这样,行不行?」,认真地测试产品的每一个测试点。
三 与他人良好交流的能力 众所周知,测试的过程是一个发现问题并且跟踪解决问题的一个过程,在这个过程中,要意识到测试、
开发、需求是一个团队,一个整体。离了谁,产品的质量都无法保证。沟通能力作为一项特别重要的软技能,在工作中起着举足轻重的作用。作为一名测试人员,我们在提交问题的时候,要做到条理清晰,必要时配上图片以便别人理解,自己提交的问题只有自己能看懂这可不行。我们还需要和项目经理交流了解最新的客户需求,要和
开发人员沟通以便解决缺陷。之前看过一段幽默的开发人员和测试人员的对话:
测试日常: 开发:这不是软件的问题,我看了测试代码,这个地方有点问题,不该是这样测。 测试:真的吗?我看看…真的啊,稍等我提交一下…谢谢你帮我们找到这个bug。 开发:没事,不用谢…(感觉有什么不对)
无论是和项目经理还是开发员人交流的时候,态度很重要,这里我说的态度不是低声下气,底气不足的跟她们交流,特别是和开发人员交流时,可能会因为一个bug,两人争执不下发生冲突,这时候我们测试人员要做到分析问题所在,同时也要听听开发人员的想法,心平气和进行交流,最后实在是两人都拿不定注意,可以请示上级。
四 持续不断的自我提高和总结能力 我觉得无论是哪个行业,都不能停滞不前,自我提高是必须的,这样才不会被淘汰,那么作为一名优秀的测试人员如何提高自己的测试能力呢?
第一,首先提高自己的测试理论基础。所有的测试基础概念其实都是通用的:静态测试,动态测试, 测试 用例,等等以及一些测试相关技术:等价类划分,边界值,相信这些方法所有的人每天都在用,但是未必所有的人都能说明白。所以为自己每天所做的测试行动找点理论基础,即有效率有与实践相结合,这也是职业发展的重要一步。
第二,要对测试的整体流程有完整的概念。这个是目前很多初级测试人员所欠缺的。目前大多数人只知道自己测试的是什么东西,但是不知道自己执行的测试处于什么阶段,下一个阶段是什么,也许整个项目做完不知道;这对于一个产品来说是一个不负责任的行为,所以也就需要测试人员有端到端的测试意识和对测试流程的概念的认可,要有测试整体流程管理的概念。
第三,在进行测试工作中要弄明白为什么要这么做,为什么要执行这样的案例,为什么要执行相关的测试工作。多问几个为什么。有一个问题要先讲清楚,就是有很多人还没有注意到这个问题,领导让怎么做就怎么做,也许真的做的很熟练了,但是一年后去问他为什么要这么做,相信他也说不出太多,反倒觉得就应该这么测。这样带来直接的弊端就是对自己的职业之路不负责任。
  另外,我觉得作为一名合格的测试人员,一定要注意进行总结。通过总结可以对自己的工作进行一个回顾分析,看看那些做得不错,下次还继续这么做。那些工作还有改进的余地。对自己能力的提高是一个很好的帮助。

14.简述测试流程

1、需求:阅读需求,理解需求,与客户、开发、架构多方交流,深入了解需求。–testing team 2、测试计划:根据需求估算测试所需资源(人力、设备等)、所需时间、功能点划分、如何合理分配安排资源等。—testing leader or testing manager
3、用例设计:根据测试计划、任务分配、功能点划分,设计合理的测试用例。—testing leader,senior tester
4、执行测试:根据测试用例的详细步骤,执行测试用例。–every tester(主要是初级测试人员)
5、执行结果记录和bug记录:对每个case记录测试的结果,有bug的在测试管理工具中编写bug记录。–every
tester(主要是初级测试人员)
6、defect tracking:追踪leader分配给你追踪的bug.直到 bug
fixed。–every tester
7、测试报告:通过不断测试、追踪,直到被测软件达到测试需求要求,并没有重大bug.
8、用户体验、软件发布等。

15.什么是软件测试 软件测试的目的与原则

软件测试指的是在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。其目的主要有以下几点:
测试原则
1.尽早进入测试软件
2.穷尽测试是不可能的
3.程序员应避免检查自己的程序
4.充分注意测试中的缺陷集群性现象
5.严格执行测试计划,排除测试的随意性
6.应当对每个测试结果做全面检查
7.妥善保存测试计划,测试用例,出错统计和最终分析报告,位维护提供方便
8.设计测试用例时,应当包括合理的输入数据和不合理的输入数据
9.测试用例应由测试数据和之对应的预期输出结果这两部分组成

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

等价类划分法 边界值分析法 因果图法 正交试验发 错误推算法 判定表

17.给你一个网站 你如何测试

首先,查找需求说明、网站设计 m 等相关文档,分析测试需求。
设计测试用例
提交功能的测试
界面测试
性能测试一般从以下两个方面考虑:
压力测试;负载测试;强度测试
安全性测试
兼容性测试

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

软件安全一般可以从操作系统级安全和应用软件级安全两个层面。应用软件的安全可以从用户管理和访问权限、SQL注入、恶意攻击、数据加密等方面考虑

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

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

20.什么是并发

并发用户数量,有两种常见的错误观点。一种错误观点是把并发用户数量理解为使用系统的全部用户的数量,理由是这些用户可能同时使用系统;还有一种比较接近正确的观点是把用户在线数量理解为并发用户数量。实际上,在线用户不一定会和其他用户发生并发,例如正在浏览网页的用户,对服务器是没有任何影响的。但是,用户在线数量是统计并发用户数量的主要依据之一。

并发主要是针对服务器而言,是否并发的关键是看用户操作是否对服务器产生了影响。因此,并发用户数量的正确理解为:在同一时刻与服务器进行了交互的在线用户数量。这些用户的最大特征是和服务器产生了交互,这种交互既可以是单向的传输数据,也可以是双向的传送数据。

21.您认为在测试人员同开发人员的沟通过程中 如何提高沟通的效率和改善沟通的效果

尽量面对面的沟通,其次是能直接通过电话沟通,如果只能通过Email等非及时沟通工具的话,强调必须对特性的理解深刻以及能表达清楚。

运用一些测试管理工具如TestDirector进行管理也是较有效的方法,同时要注意在TestDirector中对BUG有准确的描述。

在团队中建立测试人员与开发人员良好沟通中注意以下几点:

一真诚、二是团队精神、三是在专业上有共同语言、四是要对事不对人,工作至上

当然也可以通过直接指出一些小问题,而不是进入BUG Tracking System来增加对方的好感。

22.测试结束的标准是什么

1.因项目要求,强制退出测试
2.测试过程受到开发等方面的原因阻塞
3.发现缺陷数达到规定指标
4.测试用例1.2级100执行,3.4级80%执行
5.项目必须发布,暂停测试
6.覆盖率达到规定指标

23.请你回答一下性能测试有哪些指标对一个登录功能做性能测试有哪些指标

(1)性能测试指标 系统性能指标 资源性能指标 中间件指标 数据库指标 稳定性指标 可扩展性指标 可靠性指标

(2)响应时间 系统处理能力 吞吐量 并发用户数 错误率

24.如何测试一个纸杯

功能度:用水杯装水看漏不漏;水能不能被喝到
安全性:杯子有没有毒或细菌 可靠性:杯子从不同高度落下的损坏程度
可移植性:杯子在不同的地方、温度等环境下是否都可以正常使用
兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等
易用性:杯子是否烫手、是否有防滑措施、是否方便饮用 用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述
疲劳测试:将杯子盛上水(案例一)放 24 小时检查泄漏时间和情况;盛上汽油(案例二) 放 24 小时检查泄漏时间和情况等
压力测试:用根针并在针上面不断加重量,看压强多大时会穿透

25.购物车功能怎么进行测试

功能测试
1.点击购物车是否可以跳转购物车界面
2.选中商品后是否可以正确计算出商品总价
3.点击管理是否可以弹出管理相应按钮(清理、移入收藏夹、删除)
4.点击商家前的空心圆是否可以批量选中购物车内相应店铺所有商品
5.点击商品前的空心圆是否可以选中该商品
6.点击商品是否可以跳转商品详情购买界面
7.点击店铺是否可以跳转店铺
8.点击颜色分类是否可以进行颜色重新选择
9.点击下方全选前的空心圆是否可以选中购物车内所有商品
10.未选择商品点击结算是否可以弹窗提示“您还没有选择宝贝哦”
11.选择商品点击结算是否可以跳转至确认订单界面
12.点击已选择商品前的对勾是否可以取消选中状态

界面测试
1.图片展示是否有误
2.颜色搭配是否赏心悦目
3.选中商品后商品前的空心圆有怎样的变化
4.购物车下是否可以展示购物车内商品数量
5.是否可以正确展示购物车商品信息(店铺、图片、文字描述、价格等)
6.“你可能还喜欢”模块商品图片布局是否美观
7.已下架商品是否会有相应提示

性能测试
1.页面响应速度怎样
2.下滑是否会有卡顿
3.最多可以存放多少件商品
4.最大一次性可以交易的金额是多少

安全测试
1.交易过程中是否存在密码泄露的风险
2.商家是否能查看用户的购物车
3.用户地址和手机等信息是否会被泄露
4.别的用户能否查看他人的购物车

易用测试
1.能否兼容不同的浏览器(IE、火狐、谷歌等)
2.能否兼容不同的设备(笔记本、电脑、手机、平板等)
3.能否兼容不同的登录渠道(app、浏览器、微信小程序等)
4.删除功能是否有提示
5.是否有回到顶部的功能
6.商品过多时结算按钮是否可以浮动显示

26.对于有系统大量并发访问 你会如何做测试有什么建议

1、不同省份、不同运营商CDN节点性能 此部分可以采用典型压力测试的方案。
2、核心机房BGP网络带宽
此部分重点在于测试各运营商BGP网络可靠性、实际速率等,一般采用smokeping、IxChariot等工具。
3、各类硬件设备性能 此部分一般采用专业的网络设备测试工具
4、各类服务器(Web服务器、应用服务器、缓存服务器等)并发性能、分布式处理能力
此部分可以采用压力测试方案及工具。
5、业务系统性能 此部分可以采用业务系统压力测试方案。
6、数据库处理性能 大部分互联网公司都对数据库作了定制改造以满足业务需要,此部分测试需要结合业务系统进行测试,以获取核心业务场景下数据库的TPS/QPS,尤其是测试定制改造的地方。
7、支付渠道接口及分流测试此部分相对而言可能是最大的瓶颈所在,也是互联网公司们无法完全掌控的地方,只能协调银行总部改造支撑。

27.简述负载测试与压力测试的区别

1、含义不同:负载测试是通过改变系统负载方式、增加负载等来发现系统中所存在的性能问题。负载测试是一种测试方法,可以为性能测试、压力测试所采用。压力测试通常是在高负载情况下来对系统的稳定性进行测试,更有效地发现系统稳定性的隐患和系统在负载峰值的条件下功能隐患等。
2、对象不同:压力测试强度,负载测试载重。
负载压力测试是在一定约束条件下测试系统所能承受的并发用户量、运行时间、数据量,以确定系统所能承受的最大负载压力。负载压力测试有助于确认被测系统是否能够支持性能需求,以及预期的负载增长等。负载压力测试不只是关注不同负载场景下的响应时间等指标,它也要通过测试来发现在不同负载场景下会出现的,例如速度变慢、内存泄漏等问题的原因。负载压力测试是性能测试的重要组成部分,负载压力测试包括并发性能测试、疲劳强度测试、大数据量测试等内容。找到一些在测试流程中前面的阶段所进行的粗略测试中没有被找出的bugs,例如,内存管理bugs,内存泄露,缓冲器溢出等等。保证应用程序达到性能测试中确定的性能基线。这个可以在运行回归试验时,通过加载特定的最大限度的负载来实现。尽管性能测试和负载测试似乎很像,但他们的目的还是有差异的。

28.假设有一个池塘,里面有无穷多的水。现有2个空水壶,容积分别为5升和6升。题是如何只用这 2个水壶从池塘里取得3升的水。

1.将6升的装满倒进5升,6升的壶里还剩1升,将1升水倒进5升的桶里,这样5升桶里还有1升水;

2.接着再将6升的桶装满,倒进5升的桶里,这样6升的桶里还剩2升,将5升桶里的水去掉,再将6升桶里的剩余的2升水,倒进5升桶里,这样5升桶里还有2升水
3.再将6升的桶装满,倒进装有2升水的5升桶里,最后6升的水桶里只剩3升水

29.测试分为哪几个阶段

测试分为四个阶段: 单元测试阶段、集成测试阶段,系统测试阶段,验收测试阶段。

30.了解那些测试工具你是用过和知道的测试工具有哪些各有什么用途

Appium:AppUI自动化测试,一个移动端自动化测试开源工具 Selenium:WebUI自动化测试,一个用于Web应用程序测试的工具
QTP:WebUI自动化测试,提供符合所有主要应用软件环境的功能测试和回归测试的自动化
Robot:多功能自动化测试,是一款python编写的自动化测试框架 Loadrunner:性能测试,一种预测系统行为和性能的负载测试工具
Jmeter:接口性能测试,用于静态测试或者动态资源的性能
GT:App性能测试,一个直接运行在手机上的“集成调测环境”可以APP进行快速的性能测试
Monkey:稳定性测试,适用于android和ios,通过adb shell,生成用户或系统的伪随机事件
Appscan:安全测试,一个适合安全专家的Web应用程序和Web服务渗透测试解决方案
Jenkins:持续集成,用于自动化构建,编译,部署,任务执行,测试报告,邮件通知等

31.一个测试工程师应该具备哪些素质和技能?

1-掌握基本的测试基础理论  
2-本着找出软件存在的问题的态度进行测试,不要以挑刺的形象出现  
3-可熟练阅读需求规格说明书等文档
4-以用户的观点看问题  
5-有强烈的质量意识  
6-细心和责任心  
7-良好的有效的沟通方式(与开发人员及客户)
8-具有以往的测试经验能够及时准确的判断出高危险区在何处

32.软件测试员自身素质培养?

1-首先,应对软件测试感兴趣和对自己有自信,如果具备了这两点,那么在开发过程中不管遇到什么样的困难,相信一定能克服
 2-善于怀疑,实际上没有绝对正确的,总有错误的地方,具有叛逆心理,别人认为不可能发生的事情,我却认为可能发生,别人认为是对的,我却认为不是对的。
 3-打破沙锅问到底的精神,对于只出现过一次的BUG一定要找出原因,不解决誓不罢休。
 4-保持一个良好的心情,否则可能无法把测试做好。不要把生活中的不愉快的情绪带到工作中来。
 5-做测试时要细心,不是所有的BUG都能很容易找出,一定要细心才能找到这些BUG。
 6-灵活一些,聪明一点,多造一些容易产生BUG的例子。  7-在有条件的情况下,多和客户沟通,他们身上有你所需要的。
 8-设身处地为客户着想,从他们的角度去测试系统。
 9-不要让程序员,以“这种情况不可能发生”这句话说服你,相反,你应该去说服他,告诉他在客户心理,并不是这样的
 10-考虑问题要全面,结合客户的需求,业务流程和系统的架构等多方面考虑问题。
 11-提出问题不要复杂化,这点和前面矛盾,如果你是一个新手,暂时不要管这点,因为最终将有你的小组成员讨论解决。
 12-追求完美,对于新测试员来说,努力追求完美,这对你很好,尽管有些事情无法做到,但你应该尝试。
 13-幽默感,能和开发小组很好的沟通是关键,试着给你的开发小组找一个BUG杀手,或对他们说“我简直不敢相信,你写的程序居然到现在没有找到BUG”。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue是一种渐进式的JavaScript框架,专门用于开发单页面应用程序。Vue的主要特点是轻量、灵活、易于学习和理解。以下是Vue的一些简答题: 1. Vue的MVC架构是怎样的? Vue采用的是MVVM架构,即Model-View-ViewModel。Model表示数据模型层,View表示视图层,ViewModel充当了连接两者的桥梁。Vue的实现方法是通过指令进行数据绑定。ViewModel会根据数据模型的变化自动更新视图,而用户操作视图时,ViewModel也会自动更新数据模型。 2. Vue中的生命周期函数有哪些? 在Vue中有8个生命周期函数:beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy、destroyed。这些生命周期函数按顺序被调用,分别表示实例在某个阶段需要执行的操作。比如在beforeCreate生命周期函数中可以进行全局变量的定义,而mounted生命周期函数中可以进行DOM操作、获取数据等等。 3. 如何进行Vue中的组件通信? Vue中的组件通信可以通过props和emit两种方式来实现。props可以将数据从父组件传递给子组件,而emit则是子组件向父组件发送事件。除此之外,Vue还提供了一个事件总线的概念。可以通过创建一个空的Vue实例进行通信。 4. Vue的响应式原理是什么? Vue的响应式原理是通过数据劫持来实现的。当数据发生变化时,Vue会自动更新视图。这是因为Vue会对对象和数组的所有属性进行监听,当属性发生变化时,Vue就会自动触发视图更新。Vue是通过Object.defineProperty方法来实现数据劫持的。 5. Vue如何实现异步组件加载? Vue可以利用webpack的代码分割功能来实现异步组件加载。这个功能可以将一个应用程序分割成多个块,每个块都可以异步加载。这样可以减少初始加载时间,并提高应用程序的性能。Vue中的异步组件可以使用import进行导入,然后在组件定义中使用一个特殊的语法来标识异步组件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值