软件测试面试题个人归纳总结(2021版本更新中)_面试题 拿到新版本之后怎么做-程序员宅基地

技术标签: 测试  软件测试  面试题  基础  

1.重要!什么是测试设计?如何做好测试设计?测试设计的意义和必要性?好的测试设计是什么?

测试设计是一门需要长时间学习和领悟的学科!

如果测试没有测试设计,就没有办法制定的测试计划和测试策略,工作量评估会有偏差,导致漏测,延期

 

核心目标是,保证产品的质量,所以测试所有可能,覆盖所有的场景,思考各种异常

测试这几包括了(功能设计,性能设计,稳定性测试,自动化设计,异常点设计,交互设计,ui测试设计,安全测试设计等)

测试设计对一个产品质量具有很大的影响(题外话,产品质量不是测试出来的,是产品开发测试和项目管理一起努力的结果)

 

白盒测试设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果

黑盒设计的关键同样也是以较少的用例覆盖模块输出和输入接口,以最少的用例在合理的时间发现更多的问题,引入一个名词,用例发现缺陷的比例越高说明用例越优秀,切记不要写很多无法发现缺陷的测试用例

 

 

2.重要!目前主要思考测试的方法 (测试设计考虑的点,用例编写考虑的点)

黑盒(功能测试):等价类,边界值,错误推断,因果图,判定表,场景法,正交试验分析

最常用还是等价类和边界值和场景法

性能测试:

稳定性测试:

自动化测试:

UI测试:

交互测试:

安全测试:

其他:

白盒:逻辑覆盖,循环覆盖,基本路径覆盖

 

3.简述白盒测试,黑盒测试,静态测试,动态测试,α测试 ,β测试(ps,基本没有公司问过,除了笔试)

白盒测试:不关注输入输出 只关注内部逻辑结构是否正确

黑盒测试:不关注内部的逻辑和结构 只关注输入输入是否正确

静态测试:不允许程序 查找程序的错误

动态测试:运行程序 输入 必须结果和内心预期的偏差判断是否符合要求

α测试 :有公司内部人员在场的模拟用户测试,开发人也可以在场 ---不能有测试或开发完成

β测试 :有真实的内测用户在真实环境进行的测试评估,开发人员不能在场---不能有测试或开发完成

 

4.软件测试分为几个阶段 各个阶段的策略和要求是什么

4个单元测试,集成测试,系统测试,验收测试

5个单元测试,集成测试,确认测试,系统测试,验收测试

单元测试:程序测试的最小单位-----一个小模块或者是几行代码 一般由程序员自己测试

集成测试:将模块按照设计要求组装起来进行测试,主要的发现与接口有关的问题

确认测试:验证接口已近没有问题 ,各个功能达到需求,可以进行下一步测试

系统测试:验证系统在各个环境下能实现功能

验收测试:以规格需求说明书为标准,模拟用户的环境,a测试 b测试 功能模块的全面测试,文档测试

 

5.介绍一下项目的测试流程

1.需求评审,查找重要功能点

2.测试计划编写,明确做什么

3.测试用例编写,明确怎么做,用例评审

4.测试环境的搭建 

5.冒烟测试,对主要的功能快速的验证

6.执行用例测试,查找bug,提交bug,跟踪bug

7.新版本发布以后,回归测试

8.根据项目需要提交测试报告

 

6.缺陷的等级 4个

1.致命

2.严重

3.一般

4.轻微

 

7.测试计划包括哪些

1.测试计划目标2.测试参考文档3.测试术语与定义4.测试内容5.测试人员的分工6.测试进度7.测试流程8.测试工具9.测试缺陷管理10.测试风险分析

 

8.测试用例如何写

1.查看需求文档 熟悉产品。熟悉中与开发能良好的沟通

2.提炼详细的功能点编写

3.一个测试要点与用例是一对多的关系,有正常操作和异常操作,根据功能实现的要求来具体分析实现

 

9.测试用例包括什么

功能模块 用例id   编写人 用例名称 用例级别 预置条件 操作步骤  预期结果 实际结果 备注 

 

10.缺陷处理流程(bug)

提交bug到(禅道) 派发给开发  开发收到问题   把状态改为正在修复    改正上交(svn)状态改为修复完成     测试人员 从svn拿到产品 测试验证bug  正确 关闭bug 

发现-提交-修改-回归-关闭

 

11.缺陷报告包括哪些?原则是什么

编写人 产品的版本 当前测试的环境 预期结果 实际结果 重现步骤 错误截图  测试用例 

内容准确,步骤简单,内容清晰,结构完整,风格一致

 

12.开发人员修改以后如何保证 不会产生其他影响

冒烟测试  快速对其进行基础测试  确保主要功能和基础功能没有问题

 

13.发现问题如何确定是bug

主要根据是否符合需求规格说明书的内容   模糊的情况和同事上级讨论

 

14.测试完成的要求

1.功能测试用例通过100%,覆盖率100%

2.代码覆盖虑达到标准(80%)

3.bug修复率达到标准(85%),没有严重致命bug

 

15.测试一个水杯

1、需求测试:水杯的使用说明书

2.界面测试:水杯的外观

功能:水杯漏不漏水能不能被喝到

安全性:有没有毒,热水会不会烫到人,杯子的碎片伤不伤人

性能:能装多少水,能不能装热水,冰水,能不能放冰箱冰水,能不能放微波炉,能承受多大的压力不碎

兼容性:果汁,汽油,酒精

易用性:放不防滑,好不好拿

 

16.登录的测试用例

功能:1.输入正确的账号密码

2.输入错误的账号密码

3.登陆以后是否跳转到正确界面

4.账号密码太长

5.账号密码有特殊字符

6.记住账号功能

7.登录失败以后不能记录密码的功能

8.空格的处理

9.密码是否加密

10.验证码

11.输入密码的大写锁

12.什么都不输入

界面:

1.布局是否合理,2个testbox和一个按钮是否对齐

2.testbox和按钮的长度,高度是否符合要求

3.界面风是否与原型图一致

4.界面中的文字是否简洁易懂,没有错别字

性能测试:

1.打开登录界面,需要几秒

2.输入正确的账号和密码,登录成功跳转到新页面,不能超过要求

3.最大承受多少人

4,。并发登录 登录时间多少 最大并发多少

安全测试:

1.账号密码是否加密发送

2.账号密码框是否屏蔽sql注入攻击

3.错误登录的次数限制防止暴力(破解)

4.考虑是否支持多用户在同以机器登录

5.考虑一用户多机器

兼容性

1.主流浏览器下

2.不同系统

3.移动设备

4.不同分辨率

本地化测试

不同的语言环境,是否显示正常

 

17.集成测试是什么?

1.集成测试也叫组装测试或者联合测试

2.把各个模块连接起来,检测穿越模块接口数据是否丢失

3.一个模块是否会对另一个模块产生不利的影响

4.各个子功能组合起来,能否达到预期要求的父功能

5.全局数据是否有问题

6.单个模块的误差累计起来是否会放大,从而达到不能接受的程度

 

18.网络七层协议 ?

osi从上到下

应用层

表示层

会话层

传输层

网络层

数据链路层

物理层

 

19.测试电梯 同水杯 能说多少说多少

 

20 什么是性能测试,负载测试,压力测试

性能测试:通过自动化测试模拟多种正常,峰值以及异常负载条件来对系统的各项性能指标进行测试

负载测试:逐步增加系统负载,确定系统性能的变化,并最终满足性能指标的情况下,系统能承受的最大负载

压力测试:逐步增加系统负载,确定系统性能变化,确定在什么条件下,系统性能处于失效状态

 

21.什么是请求响应时间,事物响应时间

请求响应时间:指客户端发送请求开始,到客户端收到服务器返回的响应结果时结束,

请求响应时间=客户端时间+网络时间+服务器时间

事物响应时间:用户完成某个事物,(一个或者多个完整的动作,有操作者自己定义),从客户端第一个请求发出,到最后一个服务器响应被接收所消耗的时间,可能包含多个请求和多个应答

 

 

22.点击率和吞吐量

点击率:每秒用户向web服务器提交的http请求数

1.点击率越大,对服务器的压力越大

2.点击不是用户单机,一次单机可能发送多个http请求

吞吐量;用户在任意给定一秒从服务器获取的全部数据量,单位是字节

如果在宽带充足的情况下,完美的吞吐量,应该随着点击率的增加而增加

 

23.linux常用基础命令

cd 切换目录                           kill 杀掉某个进程        cat查看某文件

ls 列出当前目录所有文件文件夹        tar 打包    vim 文本编辑

pwd 列出当前目录的路径 top查看系统状态

cp复制 mv剪切 grep管道

find查找 rm删除 ps查看进度

 

 

 

24数据库

曾 insert  into    values

删 delete                                 drop

改update    set

查 select     from          主要为查 

 

25adb命令

adb devices --查看设备

adb install ----安装软件

adb uninstall--卸载软件

adb root--获取管理权

adb logcat--查看日志

 

26,安卓系统四层架构

上到下  

应用程序层

应用程序框架层

系统运行库层

linux核心层

 

27.app性能测试  用什么 关注哪些 

emmagee  itest  app测试apk 

查看 内存 cpu  耗电量 流量 流畅度 

 

28.安卓和ios手机的系统区别

1.两者的运行机制不同,ios沙盒运行机制,安卓虚拟机运行机制

2.两者后台机制不同,ios任何第三方都不能在后台运行,安卓任何程序都能在后台运行,直到没有内存

3.ios中用于ui指令权限最高,安卓中数据处理指令最高

 

29.APP测试的方面

1.真机测试

2.模拟器测试

3.耗电量测试

4,。弱网测试(2G 3G 4G wifi)

5.中断测试  比如来电 短信 闹钟 来呀 没电 破坏 

6,安装卸载测试 

 

30,android SDK 中自带的几个工具

adb  Android debug bridge 调试桥 我们通过adb调试android

uiautomatorviewer 一个用来扫描分析android应用程序的ui组件,做自动化时可以通过他了解各个控件的布局和属性

monkey android中的命令行工具 可以运行在模拟器里或者实际设备中,它向系统发送伪随机的用户事件流

实现对正在开发的应用程序进行压力测试

uiautomator  IUAutomator 是eclipse自带的用于ui自动化测试工具,可仿真app上的单机,滑动,输入文本等操作

 

31.遇到需求模糊,没有提供界面原型图的情况

首先和产品沟通   产品不听 上报协商 

 

32 测试最重要的是什么

找出产品缺陷 提升产品质量

 

33,如果一个很有个性的程序员认为自己的BUG不是BUG,怎么解决?

首先我要确定我所提的在我认为是不是bug,如果我认为是的话我会在他面前重现这个bug和他讲这是个bug,和他沟通,或者我会找到我的直系领导让他解决

 

34.系统测试的测试对象,目的,测试依据,测试的方法

测试的对象是整个系统的,目的是对整个系统测试 ,依据是需求规划说明书,方法是黑盒测试

 

35.测试覆盖的类型

条件覆盖 ,判定/条件覆盖,语句覆盖,判定覆盖,条件覆盖,路径覆盖

 

36.性能测试分类

负载测试 压力测试 容量测试

 

37,c/s  b/s 结构的区别

c/s  客户端 服务器机制 客户端需要专门的客户端软件

b/s 浏览器 服务器机制 

 

38.测试和质量保证有什么区别?

质量保证是对软件制作过程的制作质量进行管理,看是否符合公司的规定。

软件测试是对软件产品的质量本身进行测试,是从技术方面出发测试软件质量

 

39..没有任何说明书,如何进行测试?

首先是通过对软件测使用来熟悉整个软件,接着是与开发沟通掌握软件的特性并一一记录下来,作为测试的依据。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_38839915/article/details/77185740

智能推荐

维护库存地点的装运点确认_sd 如何确定storage location-程序员宅基地

文章浏览阅读1.4k次。一.说明外向交货中,发货需要确认装运点(Shipping Point),后台配置有两个,其中一个是工厂级(参见《维护工厂的装运点确认》),本文是库存地点级,具体配置是给一个组合(装运条件/装载组/工厂/库存地点 Shipping Conditions / Loading Group / Plant / Storage Location)指定一个或多个计划装运点。主数据层面,装运_sd 如何确定storage location

html中在一个页面内实现多张图片的轮流播放_html多张照片轮播图-程序员宅基地

文章浏览阅读2.8w次,点赞17次,收藏96次。主要功能是实现6张图片的轮流播放,牵扯到的核心知识点有函数的使用,document.getElementById(),document.getElementByClass();_html多张照片轮播图

Linux LittlevGL 使用_littlevgl linux-程序员宅基地

文章浏览阅读2.3k次。Linux LittlevGL 使用 LittlevGL 是一个开源免费的GUI,支持触摸屏操作,移植简单方便,开发者一直在不断完善更新。LittlevGL 自带了丰富的控件:窗口、按键、标签、list、图表等,还可以自定义控件;支持很多特效:透明、阴影、自动显示隐藏滚动条、界面切换动画、图标打开关闭动画、平滑的拖拽控件、分层显示、反锯齿、仅耗少量内存的字体等等。 ..._littlevgl linux

QT某一个cpp提示 无法用“UTF-8”编码解码_qt无法用utf-8编码解码-程序员宅基地

文章浏览阅读721次。解决办法:下载NotePad++,将这个CPP文件用这个软件打开点击Encoding选择covert to UTF-8-BOM_qt无法用utf-8编码解码

计网复习1-程序员宅基地

文章浏览阅读167次。1.2.1 Access networkDSL 连接 DSLAM,类似拨号上网,占用电话线路。客户端:splitter seoarates the data and telephone signals arriving to the home and forwards the data signal to the DSL modem.telco side: in CO, D..._cuit计网

SQL改名的语句_sql改名语句-程序员宅基地

文章浏览阅读618次。First database rename alter database 数据库名 modify name=新数据库名 exec sp_rename 数据库名,新数据库名,databaseSecond table rename 不能修改非当前数据库上的表名 ALTER TABLE table_name RENAME TO new_table_name _sql改名语句

随便推点

bzoj 2809 [Apio2012]dispatching-程序员宅基地

文章浏览阅读214次。可并堆(斜堆)

NOIP2015普及组 金币_金币(noip普及组2015)-程序员宅基地

文章浏览阅读4k次。题目描述国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币。请计算在前K天里,骑士一共获得了多少金币。输入输出格式输入格式:_金币(noip普及组2015)

Qt 用指定字符、指定间距分割字符串-程序员宅基地

文章浏览阅读451次。//参数说明: //org要修改的字符串 //ch要插入的字符,默认为空格 //nSpacing指定间距,默认为1,即一个字符中间插入一个ch voidformatStringByChar(QString&org,intnSpaci..._qt怎么将输入的数字碰到空格隔开

thinkphp获取星期_ThinkPHP中获取指定日期后工作日的具体日期方法-程序员宅基地

文章浏览阅读298次。思路:1、获取到查询年份内所有工作日数据数组2、获取到查询开始日期在工作日的索引3、计算需查询日期索引4、获得查询日期/*创建日期类型记录表格*/CREATE TABLE `tb_workday` (`did` int(11) NOT NULL AUTO_INCREMENT,`exact_date` varchar(32) NOT NULL COMMENT '具体日期:格式date("Ymd");..._thinkphp查询周几的数据

C语言:从键盘输入两个字符串,输出第一个字符串在第二个字符串中的位置_从键盘输入两个字符串,输出第一个字符串在第二个字符串中的位置(第一个字符串的首-程序员宅基地

文章浏览阅读2.3w次。从键盘输入两个字符串,输出第一个字符串的首字母在第二个字符串中的位置。如“abc”在“bbbacccabcddaw3”的位置为7。悬赏分:50 | 解决时间:2011-12-14 11:50:11//========================================最佳答案:试试如下程序:#include #includevoid main(){ char M[100], C[_从键盘输入两个字符串,输出第一个字符串在第二个字符串中的位置(第一个字符串的首

windows 安装配置 pycharm 创建项目并运行代码_window安装pycharm运行代码-程序员宅基地

文章浏览阅读10w+次,点赞2次,收藏37次。windows 安装配置 pycharm 创建项目并运行代码_window安装pycharm运行代码