软件测试面试题汇集(2)

在测试一个web页面时,页面显示为空白页,如何定位问题所在?可能是哪些原因引起的?

参考答案:

  1. 本身页面代码就是空白的。浏览器按F12查看
  2. 本地无网络,浏览器是否缓存是否为空白页
  3. 发送超时,接收超时,服务器超时。
  4. 域名错误,ip解析不了。

软件的评审一般由哪些人参加?其目的是什么?

参考答案:在正式的会议上将软件项目的成果(包括各阶段的文档、产生的代码等)提交给用户、客户或有关部门人员对软件产品进行评审和批准。其目的是找出可能影响软件产品质量、开发过程、维护工作的适用性和环境方面的设计缺陷,并采取补救措施,以及找出在性能、安全性和经济方面的可能的改进。 人员:用户、客户或有关部门开发人员,测试人员,需求分析师都可以,就看处于评审哪个阶段。

描述测试用例设计的完整过程?

参考答案:

  1. 需求分析 + 需求变更的维护工作;
  2. 根据需求 得出测试需求;
  3. 设计测试方案,评审测试方案;
  4. 方案评审通过后,设计测试用例,再对测试用例进行评审;

面试官问用安卓系统和ios系统进行软件测试,会有哪些不同?

App测试中ios和Android有哪些区别呢?

  1. Android长按home键呼出应用列表和切换应用,然后右滑则终止应用;
  2. 多分辨率测试,Android端20多种,ios较少;
  3. 手机操作系统,Android较多,ios较少且不能降级,只能单向升级;新的ios系统中的资源库不能完全兼容低版本中的ios系统中的应用,低版本ios系统中的应用调用了新的资源库,会直接导致闪退(Crash);
  4. 操作习惯:Android,Back键是否被重写,测试点击Back键后的反馈是否正确;应用数据从内存移动到SD卡后能否正常运行等;
  5. push测试:Android:点击home键,程序后台运行时,此时接收到push,点击后唤醒应用,此时是否可以正确跳转;ios,点击home键关闭程序和屏幕锁屏的情况(红点的显示);
  6. 安装卸载测试:Android的下载和安装的平台和工具和渠道比较多,ios主要有app store,iTunes和testflight下载;
  7. 升级测试:可以被升级的必要条件:新旧版本具有相同的签名;新旧版本具有相同的包名;有一个标示符区分新旧版本(如版本号),对于Android若有内置的应用需检查升级之后内置文件是否匹配(如内置的输入法)。

LoadRunner分哪三部分?

参考答案: 用户动作设计; 场景设计; 测试数据分析;

数据库内联接和外连接,自联接有什么区别?

参考答案:内联接通常是2个表存在主外键关系时使用的, 内联接查询有2种方式实现, 1是在WHERE 子句中指定联接条件 ;2是在FROM子句中使用join...on ;内联接查询通常不仅仅联接2表,可以3表甚至更多的表 ;参与内联接的表的地位是平等的 。而外联接中参与联接的表有主从之分。以主表的每行数据去匹配从表的数据列,符合条件的数据将直接返回到结果集中,不符合的用NULL(空值)填充后再返回到结果集中。

测试计划工作的目的是什么?测试计划工作的内容都包括什么?其中哪些是最重要的?

参考答案:

  1. 软件测试计划是指导测试过程的纲领性文件,包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。
  2. 测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。所以其中最重要的是测试测试策略和测试方法(最好是能先评审)。

当开发人员说不是BUG时,你如何应付?

参考答案:开发人员说不是bug,有2种情况,一是需求没有确定,所以我可以这么做,这个时候可以找来产品经理进行确认,需不需要改动,3方商量确定好后再看要不要改。二是这种情况不可能发生,所以不需要修改,这个时候,我可以先尽可能的说出是BUG的依据是什么?如果被用户发现或出了问题,会有什么不良结果?程序员可能会给你很多理由,你可以对他的解释进行反驳。如果还是不行,那我可以给这个问题提出来,跟开发经理和测试经理进行确认,如果要修改就改,如果不要修改就不改。其实有些真的不是bug,我也只是建议的方式写进TD中,如果开发人员不修改也没有大问题。如果确定是bug的话,一定要坚持自己的立场,让问题得到最后的确认。

如果一个bug只出现一次,该怎么处理?

参考答案:

  1. bug出现的同时立即截图留下异常的画面
  2. 使用相同的环境、设备、测试步骤、方法,使用相同的输入数据,看能否重
  3. 不能重现,则告诉项目经理发现bug的过程,分析优先级,讨论解决方案

软件测试的缺陷等级如何划分?

A类—严重错误,包括以下各种错误:
1. 由于程序所引起的死机,非法退出
2. 死循环
3. 数据库发生死锁
4. 因错误操作导致的程序中断
5. 与数据库连接错误
6. 数据通讯错误
B类—较严重错误,包括以下各种错误:

1.程序接口错误

2.系统可被执行,但操作功能无法执行(含指令)

3.单项操作功能可被执行,但在此功能中某些小功能(含指令参数的使用)无法被执行(对系统非致命的)

4.在小功能项的某些项目(选项)使用无效(对系统非致命的)

5.业务流程不正确

6.功能实现不完整,如删除时没有考虑数据关联

7.功能的实现不正确,如在系统实现的界面上,一些可接受输入的控件点击后无作用;对数据库的操作不能正确实现;

8.报表格式以及打印内容错误(行列不完整,数据显示不在所对应的行列等导致数据显示结果不正确的错误)
C类—一般性错误,包括以下各种错误:

1.操作界面错误(包括数据窗口内列名定义、含义是否一致)

2.打印内容、格式错误(只影响报表的格式或外观,不影响数据显示结果的错误)

3.简单的输入限制未放在前台进行控制

4.删除操作未给出提示

5.已被捕捉的系统崩溃,不影响继续操作

6.虽然正确性不受影响,但系统性能和响应时间受到影响

7.不能定位焦点或定位有误,影响功能实现

8.显示不正确但输出正确

9.增删改功能,在本界面不能实现,但在另一界面可以补充实现。
D类—较小错误,包括以下各种错误:

1.界面不规范

2.辅助说明描述不清楚

3.输入输出不规范

4.长时间操作未给用户提示

5.提示窗口文字未采用行业术语

6.可输入区域和只读区域没有明显的区分标志

7.必填项与非必填项应加以区别

8.滚动条无效

9.键盘支持不好,如在可输入多行的字段中,不支持回车换行;或对相同字段,在不同界面支持不同的快捷方式

10.界面不能及时刷新,影响功能实现

 E类—其他错误

1.光标跳转设置不好,鼠标(光标)定位错误

2.一些建议性问题

软件的安全性应从哪几个方面去测试?

  1. 用户认证机制:如数据证书、智能卡、双重认证、安全电子交易协议
  2. 加密机制
  3. 安全防护策略:如安全日志、入侵检测、隔离防护、漏洞扫描
  4. 数据备份与恢复手段:存储设备、存储优化、存储保护、存储管理
  5. 防病毒系统

逻辑题,一个是一个6L水的水壶,一个5L水的水壶,旁边有一个池塘,如何用这两个水壶,倒出3L水

第一步:5升加满全部倒入6升中,5升再加满倒入6升使6升加满,此时6升满5升中剩4升;

第二步:清空6升.把5升容器中的4升倒入6中,此时6升中有4升 ;

第三步:加满5升,倒入6升中使其加满,此时5升中剩3升。

想象一个登录框,包括ID、密码、登录、取消,记住密码(复选框),尽可能的写出你想到的测试点?

参看答案:

ID测试要点:

字符类型(包括:数字、字母、汉字、特殊字符)

字符长度

默认值

空值

字符集

存在空格

复制、粘贴

密码测试要点:

密码长度(例如:密码不能少于7个字符,最长不能超过20个字符) 密码复杂度、强度(例如:密码必须包含特殊字符、数字字母大小写等等,长度是否长)

密码字符类型(例如:只允许输入数字、字母、特殊字符、下划线)

默认值

密码为空

字符集

存在空格

复制、粘贴

登录测试要点

① 用户名和密码都符合要求(格式上的要求)

② 用户名和密码都不符合要求(格式上的要求)

③ 用户名符合要求,密码不符合要求(格式上的要求)

④ 密码符合要求,用户名不符合要求(格式上的要求)

⑤ 用户名或密码为空

⑥ 数据库中不存在的用户名,不存在的密码

⑦ 数据库中存在的用户名,错误的密码

⑧ 数据库中不存在的用户名,存在的密码

⑨ 输入的数据前存在空格

⑩ 输入正确的用户名密码以后按[enter]是否能登陆

取消

鼠标左键点击“取消”按钮

鼠标左键双击“取消”按钮

鼠标右键点击“取消”按钮

鼠标右键双击“取消”按钮

鼠标指针移动到“取消”按钮”,按回车键 鼠标指针停留在“取消”按钮上

记住密码(复选框)

点击选中“记住密码”按钮,重新登录

不选中“记住密码”按钮,重新输入密码登录

输入已存在ID和错误密码,勾选“记住密码”,点击登录 输入错误ID和正确密码,勾选“记住密码”,点击登录 输入正确ID和正确密码,勾选“记住密码”,点击登录 输入错误ID和错误密码,勾选“记住密码”,点击登录。

访问一个完整http请求会经历哪些问题?

参考答案:

  1. 域名解析
  2. 发起TCP的3次握手
  3. 建立TCP连接后发起http请求
  4. 服务器端响应http请求,浏览器得到html代码
  5. 浏览器解析html代码,并请求html代码中的资源
  6. 浏览器对页面进行渲染呈现给用户。

https和http请求的区别?

参考答案:

  1.     https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
  2.     http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
  3.     http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
  4.     http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议。

http有哪些请求方式,get和post请求有什么区别

参看答案:

  1.  get传输数据是通过URL请求,以field(字段)= value的形式,置于URL后,并用"?"连接,多个请求数据间用"&"连接,如http://127.0.0.1/Test/login.action?name=admin&password=admin,这个过程用户是可见的;post传输数据通过Http的post机制,将字段与对应值封存在请求实体中发送给服务器,这个过程对用户是不可见的;
  2.  Get传输的数据量小,因为受URL长度限制,但效率较高,Post可以传输大量数据,所以上传文件时只能用Post方式;
  3.  post较get安全性较高,get是不安全的,因为URL是可见的,可能会泄露私密信息,如密码等。
  4.  get方式只能支持ASCII字符,向服务器传的中文字符可能会乱码,post支持标准字符集,可以正确传递中文字符。

cookie与session区别

参考答案:

    cookie数据存放在客户的浏览器上,session数据放在服务器上;

    cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session;
    session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能。考虑到减轻服务器性能方面,应当使用COOKIE;
    单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能超过3K;
    Cookie和Session的方案虽然分别属于客户端和服务端,但是服务端的session的实现对客户端的cookie有依赖关系的,上面我讲到服务端执行session机制时候会生成session的id值,这个id值会发送给客户端,客户端每次请求都会把这个id值放到http请求的头部发送给服务端,而这个id值在客户端会保存下来,保存的容器就是cookie,因此当我们完全禁掉浏览器的cookie的时候,服务端的session也会不能正常使用。

http请求和http响应包含哪些内容

参考答案:

    请求报文包含三部分:
    a、请求行:包含请求方法、URI、HTTP版本信息

    b、请求首部字段

    c、请求内容实体
    响应报文包含三部分:

    a、状态行:包含HTTP版本、状态码、状态码的原因短语

    b、响应首部字段

    c、响应内容实体

你所熟悉的软件测试类型有哪些?

参考答案:

测试类型有:功能测试、性能测试、界面测试

  功能测试在测试工作中占有比例最大,功能测试也叫黑盒测试。

  性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。

  界面测试,界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。

  区别在于,功能测试关注产品的所有功能,要考虑到每个细节功能,每个可能存在的功能问题。性能测试主要关注产品整体的多用户并发下的稳定性和健壮性。界面测试则关注与用户体验相关内容,用户使用该产品的时候是否已用,是否易懂,是否规范(用户无意输入无效的数据,当然考虑到体验性,不能太粗鲁的弹出警告)。做某个性能测试的时候,首先它可能是个功能点,首先要保证她的功能是没有问题的,然后再考虑性能的问题。

1.按测试阶段划分 单元测试→集成测试→系统测试→回归测试

2.按技术划分 白盒测试、黑盒测试、灰盒测试

3.按测试对象是否运行划分 静态测试、动态测试

4.按不同的测试手段划分 手工测试、自动化测试

5.按测试包含的内容来划分 功能测试、性能测试、UI测试、接口测试、安全测试、兼容性测试、易用性测试、压力测试、负载测试、恢复测试

6.其它测试 冒烟测试、探索性测试

接口测试用例的编写要点有哪些?

1、测试每个参数类型不合法的情况(类型不合法容易遗漏null型)

2、测试每个参数取值范围不合法的情况

3、测试参数为空的情况

4、测试参数前后台定义的一致性

5、 测试每个参数的上下限(这里容易出现致命的BUG,如果程序处理不当,可能会程序导致崩溃)

6、如果两个请求有严格的先后顺序,需要测试调转顺序的情况

你可能感兴趣的:(软件测试)