PAGEPAGE1软件测试常见典型面试题库(整理100题)简答题1.安卓和ios测试有什么区别?答案:一、两者运行机制不同:IOS采用的是沙盒运行机制,安卓采用的是虚拟机运行机制。
二、两者后台制度不同:IOS中任何第三方程序都不能在后台运行;安卓中任何程序都能在后台运行,直到没有内存才会关闭。
三、IOS中用于UI指令权限最高,安卓中数据处理指令权限最高。2.当测试过程发生错误时,有哪几种解决办法?答案:一、分析下错误大小,涉及内容;可以转其他模块进行测试。
二、阻塞测试的话,需尽快与开发沟通去解决3.测试退出标准?答案:1)系统测试用例设计已经通过评审
2)按照系统测试计划完成了系统测试
3)系统测试的功能覆盖率达100%
4)系统的功能和性能满足产品需求规格说明书的要求
5)在系统测试中发现的错误已经得到修改并且各级缺陷修复率达到标准
6)系统测试后不存在A、B、C类缺陷
7)D类缺陷允许存在,不超过总缺陷的5%
8)E类缺陷允许存在,不超过总缺陷的10%
注:这只是一套比较理想化的退出标准,但在实际工作中不可能达到这种程度,尤其是测试覆盖率和缺陷解决率不可能是100%。现在的军方标准是达到99%。对于通用软件来说就要根据公司实际情况了。4.测试原则答案:追溯到需求;冒烟测试;按照用例全部覆盖测试;回归测试;业务流程测试;发散测试,尽可能的让问题提暴漏出来;避免随意性测试。5.你觉得软件测试,通过的标准应该是?答案:测试用例覆盖到所有的测试点,并且用例全部执行;优先级别高得bug已全部回归测试,并且缺陷的密度达到客户需求。6.详细的描述一个测试活动的完整过程?答案:项目经理通过和客户的交流,完成需求文档,由开发人员和测试人员共同完成需求文档的评审,评审的内容包括:需求描述不清楚的地方和可能有明显冲突或者无法实现的功能的地方。项目经理通过综合开发人员,测试人员以及客户的意见,完成项目计划。然后SQA进入项目,开始进行统计和跟踪
开发人员根据需求文档完成需求分析文档,测试人员进行评审,评审的主要内容包括是否有遗漏或双方理解不同的地方。测试人员完成测试计划文档,测试计划包括的内容上面有描述。
测试人员根据修改好的需求分析文档开始写测试用例,同时开发人员完成概要设计文档,详细设计文档。此两份文档成为测试人员撰写测试用例的补充材料。
测试用例完成后,测试和开发需要进行评审。
测试人员搭建环境
开发人员提交第一个版本,可能存在未完成功能,需要说明。测试人员进行测试,发现BUG后提交给BugZilla。
开发提交第二个版本,包括BugFix以及增加了部分功能,测试人员进行测试。
重复上面的工作,一般是3-4个版本后BUG数量减少,达到出货的要求。
目的:查看软件在未正式投入运行前是否还存在问题。对于不同软硬件平台能否正常运行,是否有与客户理解不一致的地方,同时可以对一些可以改进的地方再多加改进。8.你怎么做需求分析的?答案:一、结合场景使用,分析具体的功能
二、开发需求中具有可测性的需求或特征提取出来9.这有一个杯子,你怎么测?答案:需求测试:查看杯子使用说明书
界面测试:查看杯子外观
功能度:用水杯装水看漏不漏;水能不能被喝到
安全性:杯子有没有毒或细菌
可靠性:杯子从不同高度落下的损坏程度
可移植性:杯子在不同的地方、温度等环境下是否都可以正常使用
兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等
易用性:杯子是否烫手、是否有防滑措施、是否方便饮用
测试是一个经验行业,工作越久越能感觉到做好测试的难度和乐趣
通过自己的工作,能使软件产品越来越完善,从中体会到乐趣12.软件测试风险答案:测试人员:业务不熟、人员变动、疲态、同化效应、定位效应
测试材料:需求变更、质量标准不一样、测试用例或测试数据设计不充分
测试环境:测试软件版本不统一、软件环境不统一、硬件环境不统一、硬件不到位
测试方法:错误或缺失测试方法、场景缺失、测试用例实施不充分13.B/S和C/S架构有哪些不同?答案:B/S为浏览器/服务器架构。通过浏览器访问,使用方便,访问速度相对较慢,更易维护更新,只需更新服务器数据,安全性相对较低。
C/S为客户端/服务器架构。需下载客户端应用程序,由于要下载并安装客户端才能使用,相对来说不易使用;由于有部分客户存储在客户端,所以访问速率较快,维护更新较为负责,安全性更高。14.什么是测试用例?测试脚本?两者的关系是?答案:为实施测试而向被测试系统提供的输入数据、操作或各种环境设置以及期望结果的一个特定的集合。
测试脚本是为了进行自动化测试而编写的脚本。
测试脚本的编写必须对应相应的测试用例15.边界值怎么用?答案:(1)边界值点:有效等价类和效等价类之间的分界点(最值和最值)。(2)(2)次边界值(4个):最值和最值相邻两边的点
最次边界:有效最次边界、效最次边界
最次边界:有效最次边界、效最大次边界
问题2:需求中有可能数据的边界开始时是不明确的。
[说明】边界值得数据本质上就是属于某个等价类范围的,但是由于边界值是最容易出现bug的地方,所以即使存在冗余(重复)测试,也必须要测试质量必要的冗余是可以接受的。
等价类划分+边界值法综合测试16.电梯测试实例?答案:
测试点可以分为:功能测试、兼容性测试、易用性测试、性能测试、UI测试、安全性测试等等。
一、功能测试:
上下楼层;上下按键的使用;报警键使用;显示的电梯层数;感应系统是否有效
一、性能测试:
测试电梯负载单人时的运行情况(基准测试)
多人时的运行情况(负载测试)
不断增加人数导致电梯报警(拐点压力测试)
一、易用性测试:
二、楼层按键高度(小孩和一些身高矮的用户会按键不方便)
三、电梯是否有地毯、夏天是否有空调、通风条件、照明条件、手机信号是否通畅
电梯是否有扶手,是否有专针对残疾人的扶手等等
一、兼容性测试:
电梯的整体和其他设备的兼容性,与大楼的兼容,与海地隧道的兼容等等
不同类型的电压是否兼容
一、安全性测试:
下坠时是否有制动装置
暴力破坏电梯时是否报警,超重是否报警
停电情况下电梯是否有应急电源装置
一、UI界面测试:
查看电梯的外观,按钮的图标显示,电梯内部张贴的说明(比如报警装置的说明、称重量等)17.什么是回归测试?答案:用例回归:对之前执行的用例在重新测试一遍;
Count():对符合条件的结果个数求和;
1)求和用累加sum(),求行的个数用累计count()
2)数据库中对空值的处理:sum()不计算,count()认为没有此项
示例:
例如:
表fruit
Idnameprice
1apple3.00
2pear4.00
Selectcount(price)fromfruit;执行之后结果为:2(表示有2条记录)
白盒:有逻辑覆盖法,循环测试路径选择,基本路径测试。
例子:在一次输入多个条件的完整性查询中。利用等价类划分法则和边界分析法则,首先利用等价划分法,可以一个或多个结果是OK的测试用例,然后确认多个NG的测试用例,然后利用边界值分析法,可以对结果分别是OK和NG的测试用例进行扩展和补充。25.开发人员老是犯一些低级错误怎么解决?答案:主要是以沟通为主,不埋怨,埋怨解决不了问题,过多的埋怨只会激化矛盾;
一种方法:可以跟开发老大沟通,建议开发人员在开发的前期就制定好一些编码规范,这样子可以减少很多因为个人习惯引起的错误。【测试人员在发现开发人员犯一些低级错误的时候不可以指责他们,要耐心的给他们指出错误所在】
二种方法:开发人员进行自测,找出一些一眼看得出来是错误的地方。26.什么是软件测试,软件测试的目的?答案:软件测试是通过人工或者自动化的操作进行发现程序中的错误,查看他们的功能是否满足客户需求,保证产品质量,渐少bug出现。
具有挑战性,锻炼耐心和细心,有发展潜力,可以很锻炼人的沟通能力,需要掌握更多的技能。28.怎样做好测试计划?答案:
一、及早介入(从刚开始的需求评审会介入)
二、需求文档分析(细化模块以及每个功能点,输入框长度格式等校验)
三、吸取经验(把以前的经验运用)
四、工作量大小,完成测试需要多少人天
六、什么时候功能测试?
测试人员对程序进行测试,减少程序中的bug,但是并不能保证程序是没有bug的。30.B/S系统(Web)要从哪方面测?答案:
一、功能测试(链接,表单,页面跳转,导航菜单,数据,业务逻辑,功能校验等)
二、兼容性测试(不同的浏览器,不同的系统ie,谷歌,火狐)
四、界面测试(字体大小,图标和字段的间距等,列表预留高度,页面自适应(等比例缩小页面))
五、性能测试:接口反应速度,页面响应时长,压力测试,并发测试
Mv移动文件夹
Source更新
Cd/home进入'/home'目录'
Cd..返回上一级目录
Cd../..返回上两级目录
Cd进入个人的主目录
Cd~user1进入个人的主目录
Cd-返回上次所在的目录
Vi编辑
Wq编辑保存
Ls-F查看目录中的文件
Ls-l显示文件和目录的详细资料
Ls-a显示隐藏文件35.测试用例通常包括哪些元素?答案:用例编号、用例标题、预知条件、操作步骤、预期结果、重要级别、负责人等36.所有的软件缺陷都能修复吗?所有的软件缺陷都要修复吗?答案:从理论上来说所有的缺陷都是可以修复的;
需求不明确:需找产品经理确认需求,明确需求
需求明确:首先记录bug管理工具上,做好优先级bug分类;
200--成功;400--请求错误;401无法解析次请求;403禁止访问;404找不到王爷;500内部服务器错误;502网关错误;503服务器不可用。41.数据库查询语句答案:查询所有语句:*from
查询条件语句:where语句
模糊查询语句:wherelike语句
排序语句:orderbyasc升序;orderbydesc降序
分组查询语句:groupbyhaving42.给你一个插板,你怎么测试答案:测试点可以分为:功能测试、兼容性测试、易用性测试、UI测试、安全性测试等等;比如功能测试:插板的大小、有几个插孔、有没有开关按钮;
比如兼容性测试:手机的充电器能不能用,电脑的插孔能不能用等;安全性测试:在插入的时候会不会触电,用电的时候会不会漏电的情况。43.测试用例的设计方法?答案:白盒测试:逻辑覆盖、循环覆盖、基本路径覆盖
黑盒测试:边界值分析法、等价类划分、错误猜测法、因果图法、状态图法、测试大纲法、随机测试、场景44.发现的缺陷越多,说明软件缺陷越多吗?答案:一般情况是的,(除非需求变动)通常如果发现一个缺陷的话,有的时候会发现很多类似的缺陷,由于开发人员的编码习惯,可能一个地方有错误,另外一个地方就会有相同的错误。45.你对测试最大的兴趣在哪里?为什么?答案:最大的兴趣就是具有挑战性。
01)输入合理的英文及数字字符组成的正确格式
02)格式正确的前提下输入第一部分中的异常字段校验
05)输入后无内容的格式,如a
06)输入前后均没有内容的格式,如
07)输入没有域名的格式,如ab.,ab
08)输入email中有多个的,如ab.,abc.d
09)输入后面直接跟域名的,如a.
10)输入后面有多个分隔符的,如ab.c.d,ab.c.d.e
11)输入前面有分隔符的情况,如a.bc.d,a.b.cd.e,a.bc,a.b.cd47.测试人员在软件开发过程中的任务是什么?答案:一、尽可能早的找出系统中的Bug;
二、避免软件开发过程中缺陷的出现;
三、衡量软件的品质,保证系统的质量;
总的目标是:确保软件的质量。48.需求评审都有那些人参加?答案:参加人员:测试人员,开发人员,产品,项目经理
首先是梳理业务需求,所涉及的功能开发49.您在从事性能测试工作时,是否使用过一些测试工具?如果有,请试述该工具的工作原理,并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的。答案:有使用过LoadRunner,该工具能够录制测试人员的操作步骤,然后对这个操作步骤模拟出多个用户来播放出来。
一、VisuralUserGenertor创建脚本,选择协议,录制操作,编辑操作。
二、中央控制器(Controller)调度虚拟用户,创建场景,选择脚本,建立虚拟用户,设计shedual,设置ipspoofer。
三、运行脚本。分析shedual。
严重:导致软件功能不稳定、功能实现错误、流程错误
一般:校验错误、罕见故障、错别字,不影响功能,影响体验
低级:没影响的小问题53.测试设计方法?答案:等价类划分、边界值、因果图划分、正交、场景、随机、错误推断、测试大纲54.手机号码输入框校验?答案:
01)不输入,空内容
02)空格输入
03)输入空格+数字,空格出现在开头,中间,结尾均需要测试
04)输入其他非数字内容
05)输入第一部分中的异常字段校验
06)输入1个数字
07)输入16位数字
08)输入超过17位数字
09)输入超长全数字测试
10)输入空格+数字,空格出现在开头,中间,结尾均需要测试55.简述软件系统中用户文档的测试要点?答案:完整性:用户文档中功能的描述要完整的,以免让用户产生疑问。
一致性:用户文档中的功能描述要与实际软件中的功能一致,不能描述过盛。
易使用性:用户文档描述的内容要方便用户阅读并且能够让用户很清楚的知道如何操作。56.软件测试的策略?答案:在一定的软件测试标准、测试规范的指导下,依据测试项目的特定环境约束而规定的软件测试的原则、方式、方法的集合。57.开发与测试的关系?答案:开发和测试是一个有机的整体。在产品发布之前,开发和测试是循环进行的,测出的缺陷要经开发人员修改后继续测试。在开发的同时测试经理开始编写测试用例,测试文档要参考开发文档,所以开发和测试是不可分割的,少了任何一个都不能开发出产品。58.什么是内存溢出?答案:内存不够,比如:安装程序需要内存超出你本机安装内存
内存泄漏
由于疏忽或者错误造成程序未能释放已经不再使用的内存,造成系统内存浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。59.session和cookie的区别答案:Session属于服务器端
制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:功能性测试;界面测试;性能测试;数据库测试;安全性测试;兼容性测试
设计测试用例:
功能性测试可以包括,但不限于以下几个方面:
链接测试。链接是否正确跳转,是否存在空页面和无效页面,是否有不正确的出错信息返回。
提交功能的测试。
多媒体元素是否可以正确加载和显示。
多语言支持是否能够正确显示选择的语言等。
界面测试可以包括但不限于一下几个方面:
页面是否风格统一,美观
页面布局是否合理,重点内容和热点内容是否突出
控件是否正常使用
对于必须但未安装的控件,是否提供自动下载并安装的功能
文字检查
性能测试一般从以下两个方面考虑:
压力测试;负载测试;强度测试
数据库测试要具体决定是否需要开展。数据库一般需要考虑连结性,对数据的存取操作,数据内容的验证等方面。
安全性测试:
是否存在溢出错误,导致系统崩溃或者权限泄露
如果需要高级的安全性测试,确定获得专业安全公司的帮助,外包测试,或者获取支持
兼容性测试,根据需求说明的内容,确定支持的平台组合:
浏览器的兼容性;
操作系统的兼容性;
软件平台的兼容性;
数据库的兼容性
开展测试,并记录缺陷。合理的安排调整测试进度,提前获取测试所需的资源,建立管理体系(例如,需求变更、风险、配置、测试文档、缺陷报告、人力资源等内容)。
UDP:不可靠的,无连接协议,传输效率高63.什么是触发器?什么是存储过程?答案:触发器:通过事件来触发运行的,不需要人工干预的,从而保证数据的完整性和一致性。
存储过程:sql语句集,存储在数据库中,通过指定存储过程的名称来执行对应的语句。64.什么是系统瓶颈?答案:系统瓶颈就是软件在一定的并发量、访问量下无法达到用户的需求。
比如说用户需要在10s内完成一个访问,但是每一次都要12s才能完成,这个就是性能瓶颈。65.案例分析答案:暂无66.请问功能测试和性能测试的区别是什么?答案:一、测试目的:
首先,功能测试:检测实际软件的功能是否符合用户需求,测功能是不是全部实现,某个实现是不是有BUG。主要为了发现以下几类错误:A、是否有不正确或遗漏的功能?B、功能实现是否满足用户需求和系统设计的隐藏需求?C、能否正确接收输入?能否正确输出结果?
然后,性能测试:验证软件质量的三个质量特性,可靠性,正确性和效率。主要是测试产品的健壮性
二、测试方式:
首先,功能测试按照用例,对产品的功能一步步操作进行测试,查看产品的功能是否全部实现。
然后,性能测试:使用性能工具对产品的健壮性进行评估。通过创建场景和虚拟用户模拟真实环境,进行压力测试和负载测试。67.测试工具jmeter讲解答案:是一款java编写负载功能测试和性能测试开源工具,支持接口自动化测试,录制、抓包、可进行压力测试(增加线程,考验服务器最大支持访问数)、弱网测试、添加请求、添加断言,查看断言、结果树,聚合报告,分析测试报告等。
聚合报告参数详解:
一、Label:每个JMeter的element(例如HTTPRequest)都有一个Name属性,这里显示的就是Name属性的值
二、Samples:请求数——表示这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100
300个用户在一个客户端上,需要更大的带宽。
在不同的客户端上,需要考虑使用控制器来整体调配不同客户机上的用户。同时,还需要给予相应的权限配置和防火墙设置。71.你们公司测试用例如何评审的?答案:一、评审就是对测试用例进行检查
二、评审类型:同行评审、小组评审、部门评审、三方评审
三、评审目的:发现测试用例不足,方便测试人员改进测试用例,提高测试质量
四、评审过程:循环执行“测试用例评审--》改进测试用例”72.用例评审都有哪些人参加?答案:参加人员:测试人员、开发人员、产品人员、会议评审
标准:
一、用例设计的结构安排是否清晰、合理,是否利于高效对需求进行覆盖。
二、优先极安排是否合理。
三、是否覆盖测试需求上的所有功能点。
四、用例是否具有很好可执行性。例如用例的前提条件、执行步骤、输入数据和期待结果是否清晰、正确;期待结果是否有明显的验证方法。
五、是否已经删除了冗余的用例。73.你能不能说下3-5年的职业规划?答案:首先,要巩固自己的测试基础知识,在基本知识扎实的情况下提高理解需求文档地能力。
其次,学习自动化测试工具,并将它运用到测试中。
然后,在测试技术达到一定程度后,要学会如何带领一个测试团队。
【首先:做好测试的基础上,学习调控测试人员,分配对应的测试工作,把控测试进度,与开发积极配合。后期转项目经理或者产品方向】74.你认为什么是bug?答案:bug指的是软件中(包括程序和文档)不符合用户需求的问题。
常见的软件bug分为以:
没有实现的功能;完成需求基础上,运行时会出现一些功能或性能上的问题。75.功能测试用例需要详细到什么程度才是合格的?答案:全部覆盖所有测试点76.什么是兼容性测试?答案:兼容性测试是检查软件在不同软件平台,硬件平台上是否可以正常运行的测试。主要查看软件在不同操作系统、浏览器、数据库中是否运行正常。77.集成测试通常都有哪些策略?答案:
一、大爆炸集成
二、自顶向下集成
三、自底向上集成
四、三明治集成适应于大部分软件开发项目
五、基干集成
六、分层集成
七、基于功能的集成
八、基于消息的集成
九、基于风险的集成
十、基于进度的集成78.验证码输入框字段校验测试?4位数答案:
03)输入空格+正确验证码,空格出现在开头,中间,结尾均需要测试
04)输入4位其他非数字内容
06)输入前3位或后3位验证码正确数字
07)输入4位正确验证码+其他数字79.安卓测试?答案:一、使用灰盒进行功能测试
二、使用fiddler或者Charles进行抓包测试
三、兼容性测试,Android从4.0版本的手机测试到9.0版本手机
四、各大品牌的手机都的进行测试,比如:小米小米9小米8小米7小米6note红米系列7红米5,华为:华为mate20华为mate10,华为荣耀:荣耀10,9,8,vivo:x21,27,23,oppo:R7,R9,R11,三星手机:note9,8,7S9,8。
五、稳定性测试:使用monkey命令进行稳定性测试
六、专项测试,使用腾讯专项测试工具进行,测试耗电量,流量,CPU占用率
七、性能测试,对app的接口进行性能测试,使用工具jmeter或者loadrunner
八、对app接口进行接口测试,使用postman或者Jmeter都行
总的目标是:确保软件的质量。81.数据库查询什么是左连接,右链接?答案:左连接:左右两张表按某个列进行关联查找,左连接以左边的表为基础表,基础表中的数据全部查找出来,右边的表如果有和左边的表条件相符的数据就查找出来,如果条件不相符就用Null显示。右连接刚好相反【leftjoinon;rightjoinon】82.性能测试的流程?答案:需求分析编写测试用例设计测试用例维护脚本执行脚本分析结果性能调优83.没有产品说明书和需求文档地情况下能够进行黑盒测试吗?答案:可以。
这个情况下我们就要进行探索性测试,把软件当成用户需求,一步步进行测试。凭借经验判断功能正确与否,有的时候还可以与产品经理、开发人员一起进行交流沟通,从而进行更好做好全部覆盖性测试。84.请介绍你做的项目?答案:首先给什么类型公司或者什么行业做的项目;
其次这个项目的基本模块功能罗列下
最后介绍自己负责的模块有哪些85.你觉得你有哪些优点,哪些缺点?答案:优点:工作负责,有耐心,细心,性格:外向,善于沟通交流
缺点:自己有主见,有一定的原则性,立场比较坚定86.安全测试怎么进行的?答案:软件安全性测试主要包括程序、数据库安全性测试。根据系统安全指标不同测试策略也不同。87.我现在有个程序,发现在Windows上运行的很慢,怎么判别是程序存在问题,还是软硬件系统存在问题?答案:
一、检查系统是否有中毒的特征;
二、检查软件/硬件的配置是否符合软件的推荐标准;
三、确认当前的系统是否是独立,即没有对外提供什么消耗CPU资源的服务;
四、如果是C/S或者B/S结构的软件,需要检查是不是因为与服务器的连接有问题,或者访问有问题造成的;
原因/优点:起到一个规范化的作用,后期好管理;多个项目或者一个项目多个模块测试时,方便查看测试进度89.白盒测试和黑盒测试的优缺点?答案:黑盒测试优点:简单,不需要了解程序内部代码的实现;从用户角度触发,自测试过程中知道软件实现了哪些功能。
黑盒测试缺点:不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;自动化测试的复用性较低。
白盒测试的优点有:帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题。