个人面经整理海尔测试

单元测试:
完成最小软件设计单元模块的验证工作,确定模块被正确编码,通常情况下是白盒的。需要对代码风格和规则、程序设计结构、业务逻辑等进行静态测试
集成测试:
通过测试发现与模块接口有关的问题,采用增量集成
自顶向下集成:首先集成主模块,按照层次结构向下集成。
自底向上集成:从院子模块开始构造和测试

系统测试:
基于整体系统需求说明书的黑盒类测试,验证是否满足了需求规格的定义,找出不相符或矛盾的地方。测试的对象包括测试系统的软件、软件所依赖的硬件、外设、某些数据、支持软件及其接口,需要将系统中的软件和各种资源结合起来,在实际运行环境下进行测试。

回归测试:
发生修改之后重新测试先前的测试用例,保证修改的正确性。软件产生新版本就会进行回归测试,目的在于验证以前已经出现过和修复好的缺陷不再重新出现。对已经修正的缺陷围绕原来出现的步骤重新测试。

验收测试:根据测试计划和结果对系统进行测试和接收,确定产品能否满足合同或者用户所规定的的需求的测试,验收测试包括Alpha测试和Beta测试
Alpha测试是用户在开发者场所进行的,是受控的环境
Bata测试是开发者不在现场,用户将遇到的问题报告提交给开发者,开发者进行最后的修改,最终发布软件。

测试知识:
软件测试基础理论:黑盒测试、白盒测试
编程语言基础:C/C++、java、python
自动化测试工具:selenium、appium、rototium
计算机基础知识:数据库、Linux、计算机网络
测试框架:Junit
能力:业务分析能力、缺陷洞察能力、团队协作能力、专业技术能力、逻辑思考能力、问题解决能力、沟通表达能力、宏观把控能力

黑盒测试:
已知产品功能,检测每个功能是否能够正常使用。他不考虑内部结构,只针对界面和功能进行测试。
常见的有:等价类划分,边界值分析,因果图法,场景法,正交试验设计法,判定表驱动,错误推断法,功能图法
白盒测试:
结构测试或逻辑测试。检查程序内部的逻辑结构,对所有的逻辑路径进行测试。
常见的有:静态测试(不运行程序的测试),动态测试(需要执行代码)。白盒测试包括语句覆盖、条件覆盖、判定覆盖、判定/条件覆盖,

手工测试优缺点:
测试人员有经验和对错误的猜测能力
有审美和心理体验
有逻辑判断和是非判断能力
重复的手工测试代价昂贵容易出错
依赖于测试人员的能力

自动化测试的优缺点:
对程序的回归测试方便
可以在较少的时间内运行更多的测试
可以执行手工测试困难的测试,比如模拟大量用户的测试(压力测试,并发测试)
测试具有一致性和可重复性
增加软件的信任度

测试流程:
需求分析----概要设计—详细设计-----单元测试—集成测试—系统测试—验收测试

测试的具体工作:
搭建测试环境
撰写测试用例
执行测试用例
写测试计划和测试报告
提交bug表单
追踪bug修改情况
执行自动化测试,脚本、执行、分析、报告
进行性能测试、压力测试。

Bug的测评
优先级和严重程度

软件质量的六个特征
功能特征
可靠特征
易用特征
效率特征
可维护特征
可移植特征

设计测试用例的方法:
等价类划分:将系统的输入域划分为若干部分,每个部分选取少量代表性数据进行测试(有效等价类和无效等价类)
边界值分析:很多错误都出现在边界值上
正交试验法:大量试验点中选取适量的有代表性的点,
状态迁移法:用足够的用例达到对系统状态的覆盖
判定表法:分析多种输入条件下系统执行不同动作的工具,可以把复杂的逻辑关系和多种条件的组合情况表达得明确又具体
因果图法:描述系统输入输出之间的因果关系、约束关系。
错误猜测法:针对系统对于错误操作的处理法猜测,设计测试用例
异常分析法:针对系统可能存在的异常操作进行故障分析

(白盒需要保证:所有模块中的独立路径至少被测试一次,所有逻辑值需要测试真和假两种情况,检查程序内部的数据结构,在上下边界和可操作范围内运行所有循环)
静态测试
动态测试
语句覆盖、判定覆盖、条件覆盖、路径覆盖

App的性能指标:
内存
Cpu
流量
电量
启动速度
滑动速度、页面切换速度
与服务器交互的网络速度

Java和C++的区别:

  1. Java是解释型语言,所谓的解释型语言,就是源码会先经过一次编译,成为中间码,中间码再被解释器解释成机器码。对于Java而言,中间码就是字节码(.class),而解释器在JVM中内置了。
  2. C++是编译型语言,所谓编译型语言,就是源码一次编译,直接在编译的过程中链接了,形成了机器码。
  3. C++比Java执行速度快,但是Java可以利用JVM跨平台。
  4. Java是纯面向对象的语言,所有代码(包括函数、变量)都必须在类中定义。而C++中还有面向过程的东西,比如是全局变量和全局函数。
  5. C++中有指针,Java中没有,但是有引用。
  6. C++支持多继承,Java中类都是单继承的。但是继承都有传递性,同时Java中的接口是多继承,类对接口的实现也是多实现。
  7. C++中,开发需要自己去管理内存,但是Java中JVM有自己的GC机制,虽然有自己的GC机制,但是也会出现OOM和内存泄漏的问题。C++中有析构函数,Java中Object的finalize方法。
  8. C++运算符可以重载,但是Java中不可以。同时C++中支持强制自动转型,Java中不行,会出现ClassCastException(类型不匹配)。

Bug的周期:
New新的:
测试人员需要和项目负责人沟通,如果确实是一个bug就需要记录下来,设置状态为new。

Assigned已指派的:
Bug确定为new之后,反馈给开发人员,开发组负责人将这个bug指派给一个开发人员处理,状态设置为assigned

Open打开的
开发人员开始处理bug,状态变为open,表示开发人员正在处理这个bug

Fixed已修复的
开发人员认为已经解决bug之后就把bug状态设置为fixed,已修复的,然后开发负责人把bug返还给测试组

Pending reset待测试的
将bug返还给测试组之后,bug状态设置为pending reset

Reset再测试
测试组负责人将bug指定给某位测试人员进行测试,将bug的状态设置为reset

Closed已关闭的
如果测试人员经过测试认为bug已经解决,就将bug状态设置为closed

Reopen再次打开的
如果再次测试发现bug仍然存在,将bug再次传递给开发组,设置为reopen

Pending reject拒绝中
如果开发认为这不是bug就设置为拒绝中

Rejected被拒绝的
测试组接到被拒绝的bug后,如果经过产品说明书发现这确实不能算作bug,就将bug状态设置为被拒绝的。

Postponed延期的
Bug需要搁置一段时间,设置为延期的

断网排查:

  1. 重启网络
  2. Ping 127.0.0.1,判断网络协议是否正常
  3. Ping本机ip,判断网卡驱动程序是否正常
  4. Ping网关,判断网关设备是否正常(检查网络参数)

Web测试和app测试的不同
Web项目是基于b/s架构的,基于浏览器
App项目是c/s架构的,必须安装客户端
Web主要关心响应时间,app还关心流量、电量、cpu、内存等
App测试还要考虑安装、卸载、更新等功能
App还要测试网络和适配性等

判断bug属于前端还是后端
chrom浏览器为例
打开开发者工具,在浏览器菜单栏选择工具-开发者工具,快捷键是F12
根据响应值(response)。响应中没有数据则是后端没有返回。
响应中有数据,但是前端显示错误了,判断是前端的问题。

服务器上找日志文件 tail -f显示文件,前端去复现bug,如果有exception就是后台报错,如果返回码为500+就是服务器的问题,后台问题

如果是样式的问题一般是前端的问题
如果不是样式的问题看F12,网络请求返回的数据是不是预期数据,如果数据没错是前端的问题,如果数据有错或者获取不到数据,先看参数,如果参数有问题是前端的错,如果参数没有问题是后端的错。

常用http状态码
100 客户端继续发送请求
200 请求成功
201 请求完成
301 永久重定向
302 临时重定向
304请求资源未更新
404 资源不存在
500 服务器内部错误
501 服务器无法识别
502 错误网关
503 服务出错

系统管理岗:
1、负责维护系统、网络运行环境的稳定性和安全性;
2、负责产品迭代、系统部署所需软件资源的管理及调优;
3、排查生产系统的故障,能迅速准确定位原因并解决问题;
4、负责业务系统应急预案的处理,保持业务连续性;
5、负责监控系统的建设,包括基础设施资源、系统性能、日志、安全事件监控,以及所有数据指标的采集、汇总、分析。

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值