测试面试题

1,测试数据来源哪里?

       1、开发的模拟数据

       2、线上真实数据

       3、测试模拟数据

      4、同类产品的数据库采样

2,状态通道和预状态通道的区别是?

        1、预状态通道比状态通道安全,防止了SQL注入

        2、预状态通道可以实现预编译,效率高、维护性高、可独享高

3,什么是软件测试,软件测试分为哪几个阶段?

软件测试是在测试中识别软件产品和服务的准确性和质量的过程。显然,它的诞生是为了验证产品是否满足客户的特定先决条件、需求和需求。

单元测试   集成测试  系统测试   验收测试

4,http和https的区别

  1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

  2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

  3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

  4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

5,软件缺陷的跟踪管理流程。

1、测试人员提交缺陷

2、开发人员确认并修复缺陷

3、测试人员回归缺陷

4、回归通过,测试人员关闭缺陷

5、回归不通过,测试人员重新打开缺陷

6、开发可以提出在后期版本修复缺陷或者拒绝缺陷

6,响应时间和吞吐量之间的关系是什么

    响应时间越短,单位时间内的吞吐量越大;响应时间越长,单位时间内的吞吐量越小

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

Bug的修复以及新功能的添加都有可能对版本造成一些影响,为了避免,在新版本发布以后,首先会对新版本做一个基础的流程测试也叫做冒烟测试,如果测试基本流程都顺利通过没有任何问题,那么测试人员可以继续进行详细的测试,否 则就将冒烟测试中出现 的问题以及问题有可能出现的原因反馈给开发人员,由开发人员修正后再次发版,进行测试。这是一个迭代的过程。

8,如果项目周期很短  测试人力缺乏  你是怎么协调的?

依据代码review的结果和影响范围,对测试内容进行适当的裁剪。

借助自动化工具的支持,提高测试案例的执行效率。

调整组内任务的优先级,进行人力协调,优先投入最紧要的项目。

必要的情况下加班

9,你在测试过程中发现了一个 重现率低的bug  你会如何处理?

如果能必现的话,无论概率多大都需要处理。如果不能必现的,先保留下来看看等用户量大了之后情况怎么样


10,软件测试的目的

 测试的目的是找出软件产品中的错误,是软件尽可能的符合用户的要求。当然软件测试是不可能找出全部错误的

11,数据库的中的左连接右连接和全连接内连接的区别?

  left join (左连接):返回包括左表中的所有记录和右表中连接字段相等的记录。

  right join (右连接):返回包括右表中的所有记录和左表中连接字段相等的记录。

  inner join (等值连接或者叫内连接):只返回两个表中连接字段相等的行。

  full join (全外连接):返回左右表中所有的记录和左右表中连接字段相等的记录。

二,填空题

1,Load Runner 分为三个模块:(脚本生成器) (场景控制器) (结果分析器)

2,常见的黑盒测试方法(等价类划分法)(边界值分析法)(错误推测法)(因果图法)(正交实验法)(判断法)

3,典型的软件测试过程模型有(w)(H)(V)(X)

4,在测试中的80-20原则是指:(80% 的软件缺陷常常生存在软件 20% 的空间里。)

5,目前 Unix 操作系统提供的一个常用的文本编译器是(vim)其有(普通模式)(插入模式)(命令模式)三种模式。

6,软件的六大质量特性包括(功能性)(可靠性)(易用性)(效率性)(软件维护性)(软件可移植性)


三,简答题

1,APP闪退的原因可能是:

缓存垃圾太多,Android系统的特性,如果长时间不清理垃圾文件,会导致越来越卡,甚至闪退。

运行程序太多,导致内存不足。

应用版本兼容问题,分辨率兼容问题。

APP中访问网络的地方,组件能否正常下载并显示。

APP的SDK与手机系统不兼容。

系统升级后,新版本不兼容老版本的API,返回对象失败,报空指针。

软件权限未开放。


2,如何对app进行弱网测试

一款APP针对不同网络情况下都需要保证不会崩溃,同时尽可能做到在弱网情况下也能达到功能正常使用,或者使用体验达到最佳。弱网测试可以测试APP的加载时间、可用性、稳定性和健壮性。这时我们就可以借助工具来模拟不同的网络状况,模拟2G、3G或弱网情况进行测试。工具可以选择Fiddler也可以选择Charles也可以选择其他工具。

3,Push消息的测试可以从以下几个方面进行:

检查Push消息是否按照指定的业务规则发送。

检查不接收推送消息时,用户不会再接收到Push消息。

如果用户设置了免打扰的时间段,检查在免打扰时间段内,用户接收不到Push。在非免打扰时间段内,用户能正常收到Push。

当Push消息是针对登录用户的时候,需要检 77查收到的Push与用户身份是否相符,没有错误的将其他人的消息推送过来。一般情况下,只对手机上最后一个登录用户进行消息推送。

测试Push时,在开关机、待机状态下执行推送,消息及其推送跳转的正确性。

push消息时,会有红点展示,推送消息阅读前后数字的变化是否正确;

应用在开发、未打开状态、应用启动且在后台运行的情况下是push显示和跳转是否正确。

多条推送的合集的显示和跳转是否正确。

4,web测试和app测试的相同点和区别?

相同点:都离不开测试的基础知识和测试原理。具体包括以下几个方面。

测试用例,均使用边界值分析法,等价类划分法等。

多数采用黑盒测试,来验证业务功能是否能得到正确的应用。

需要检查界面布局,风格,按钮是否美观、简洁,是否统一。

测试页面载入和翻页的速度、登录时长、内存是否溢出等。

测试应用系统的稳定性。

不同点:相对于web测试来说,app测试要考虑手机本身固有的属性,所以app测试还需要注意以下几点。

中断测试(来电去电,短信,蓝牙,NFC支付,闹钟,数据线插拔,锁屏,断电,关机重启等)

安装卸载测试(全新安装,新版本覆盖旧版本,卸载旧版本安装新版本,卸载新版本安装旧版本)

外在因素测试(网络切换,硬件按键,不同分辨率,兼容性,系统,系统版本)

web测试更多的是考虑自身功能和浏览器兼容。

5,测试过程中遇到app出现crash或者ANR,你会怎么处理?

APP出现Crash或ANR,可以从以下几个方面处理:

可以先把日志过滤出来:adb logcat | findstr xxxxx(过滤日志信息) ;

然后再搜索其中的关键字,比如:exception、crash,看看是哪些方法或者异常导致了问题;

初步定位问题原因后,可以交给开发人员去具体查找深层原因并修复。

6,如何测试一个App的登录场景?

APP登录场景大体从以下几个方面进行:

页面基本元素的操作。

大量字符,特殊字符,边界值,必填项校验。

注册手机号的特殊性验证,注册邮箱的格式验证。

密码大小写是否敏感,密码是否加密展示,密码是否有可见按钮功能,密码框能否使用复制粘贴。

验证码校验:必填项,过期,错误,无网络时获取验证码,多次获取,超过获取次数,输入验证码后,修改手机号。

登录时与系统的交互:锁屏,蓝牙,home,后退,横竖屏,修改字体字号。

逆向思维:已注册账号注册,未注册账号忘记密码,未注册账号登录,注册过程中退出再次注册。

输入法交互,切换输入法,切换输入模式,手写/九宫格。

登录账号的多样性:多个账号轮流登录,同一个账号多角色登录。

第三方登录验证:账号授权,信息正确,取消授权。

登录页面跳转,返回,登录成功及其他页面跳转。

手机兼容性测试:分辨率兼容,系统兼容,系统版本兼容,App版本兼容。

网络切换,网络断开,弱网。

7,你平常会看日志吗, 一般会出现哪些异常(Exception)?

这个主要是面试官考察你会不会看日志,是不是看得懂Java里面抛出的异常,一般面试中Java Exception(runtimeException )是必会被问到的问题,app崩溃的常见原因应该也是这些了。常见的异常列出四五种,是基本要求。

常见的几种如下:

NullPointerException - 空指针引用异常

ClassCastException - 类型强制转换异常

IllegalArgumentException - 传递非法参数异常

ArithmeticException - 算术运算异常

ArrayStoreException - 向数组中存放与声明类型不兼容对象异常

IndexOutOfBoundsException - 下标越界异常

NegativeArraySizeException - 创建一个大小为负数的数组错误异常

NumberFormatException - 数字格式异常

SecurityException - 安全异常

UnsupportedOperationException - 不支持的操作异常

你可能感兴趣的:(测试面试题)