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 - 不支持的操作异常