某家测开面经

一.linux命令:

linux下查看目录文件方法:ls

cat命令: 由第一行开始显示内容,并将所有内容输出

more    根据窗口大小,一页一页的现实文件内容

head    只显示头几行

tail    只显示最后几行

pipe管道机制

二.测试方向:

如何测试电梯?

功能测试,最基本的上下功能,开关功能,还有里面的各个按键。

1、电梯内分楼层键是否正常

2、电梯内开关门键是否正常

3、电梯内的报警键是否正常使用

4、电梯外的上下键是否正常

5、同时关注显示屏,电梯内外的显示屏显示的电梯层数、运行方向是否正常

6、有障碍物时,电梯门的感应系统是否有效

功能测试—逻辑业务/功能交互

1、功能与功能模块间的集成,可根据电梯当前状态是上行、下行还是停止来设计测试点,以保证覆盖率

电梯当前状态是上行时,有人在X楼按下上升/下降键,电梯是否会停止

电梯当前状态是下行时,有人在X楼按下上升/下降键,电梯是否会停止

在搭载满员的情况下,如有人在X楼按下上升/下降键,电梯是否会停止

2、功能设备与设备间的集成,关注功能接口,比如:

电梯和大楼层,电梯和摄像头,电梯与空调,电梯和对讲机(报警装置),电梯与显示屏,电梯与其他电梯的协作能力

例如:一栋楼有2部电梯,一部停在2楼,一部停在4楼,有人1楼按电梯,是否2楼的电梯下降到1楼开

3.性能测试(很多人忽略的),比如电梯的调度算法,用户的等待时间,平均等待时间,上下的速度,耗电量等等。

1、测试电梯负载单人时的运行情况(基准测试)

2、多人时的运行情况(负载测试)

3、一定人数下较长时间的运作(稳定性测试)

4、更长时间运作时的运行情况(疲劳测试)

5、不断增加人数导致电梯报警(拐点压力测试)

4.压力测试,比如承重量(你实际承受力是20,那么当进入19个人的时候就应该报警,或者是实际上用户有可能一股脑的全部冲进电梯,所以在静止的时候电梯需要考虑到这种情况),突然断电,门打不开等等。

5.可用性测试,按钮是否方便,按键的感觉是否好,视觉效果,现在很多人诟病的事情是,开和关两个按钮的图示很不友好,在紧急的时候很容易搞错。

1、楼层按键高度(小孩和一些身高矮的用户会按键不方便)

2、电梯是否有地毯、夏天是否有空调、通风条件、照明条件、手机信号是否通畅

3、电梯是否有扶手,是否有专针对残疾人的扶手等等

6.兼容性测试,比如每个国家的电压不一样,是否考虑到这个情况。

1、电梯的整体和其他设备的兼容性,与大楼的兼容,与海地隧道的兼容等等

2、不同类型的电压是否兼容

本地化/国际化测试,曾经看到一部电梯的使用手册翻译成英文,翻译得很差。

7.可维护性测试,电梯如果坏了怎么去维修。

8.界面测试

1、查看电梯的外观,按钮的图标显示,电梯内部张贴的说明(比如报警装置的说明、称重量等)

易用性测试

9.安全性测试

1、下坠时是否有制动装置

2、暴力破坏电梯时是否报警,超重是否报警

3、停电情况下电梯是否有应急电源装置

三、需求评审需要注意什么?

评审前期:

1.在评审需求之前,产品需发出要评审的文档,测试人员先对熟读需求文档,了解每个功能点是干什么的。

2.测试人员在熟悉文档的过程中,需求文字的描述是否准确、 需求的描述是否完整。先把自己的疑问记录下来,注意需求文档中主要功能、功能的专业术语,页面的交互方式、交互方式是否写的清楚。

3.站在用户的角色,要对用户的要求进行详尽的分析后对需求进行的评审。对系统的业务一定要熟悉,从用户的角度考虑问题,这样设计是否合理,能否达到用户的要求,满足需要。

4.以测试员的角色,审查需求的可测性和易测性,即需求是否定义了清晰的测试标准和测试规范;还有点非常重要的是要进行需求评审前,测试人员应该尽可以详细的先了解项目的需求,并且收集尽可能多的与项目相关的专业知识。

需求评审会中工作:

1、会议要有专人组织并主持,对于会议的节奏进行控制。太快了达不到评审的目的,过于敷衍;太慢了,影响项目的进度。主持人需要根据实际情况进行管控。

2、按照标准流程进行。为了规范需求评审过程,在会议过程中要尽量按照一定的流程,按模块由前台到后台,在需求人员讲解后,评审人员进行提问的方式进行,尽量避免中间打断评审人员的讲解。

评审会后:

1、要对评审过程需要修改的内容进行跟踪。为了评审工作真正的落到实处,一定要对评审后进行跟踪,避免有头无尾,导致前期工作付诸东流。

四、好的测试用例你认为是什么?

 好用例的标准

/用例的覆盖程度

/用例的分类以及描述是否足够清晰,是否表明测试目的

/是否可以发现Bug

  设计测试用例的目的就是为了发现bug,如果bug都发现不了,怎么能称得上是一个好的测试用例呢?

/是否够高效

  一个好的测试用例应该不止测试一个测试点,从而减少需要的用例总量。但也不能包含太多不想关的测试点,否则你这个用例就没法测试了,并且给开发的debug造成困难。

/是否够经济,是否达到工作量最小化

  这个测试用例执行起来是否容易,分析和debug是否要花太多代价,都是值得考虑的,毕竟咱也要站在组织的角度来看待测试这个事,公司是为了盈利而做这些事,而不是为了做测试而测试。

/是否有足够的扩展性,是否易于维护

  主要是考察测试用例在维护时是否要花费很大的代价。

五、接口测试经常遇到的bug和问题,如下:

(1)传入参数处理不当,导致程序crash;

(2)类型溢出,导致数据读出和写入不一致;

(3)因对象权限未进行校验,可以访问其他用户敏感信息;

(4)状态处理不当,导致逻辑出现错乱;

(5)逻辑校验不完善,可利用漏洞获取非正当利益等。

六、衡量软件质量的标准:

正确性:实现的功能达到设计规范并满足用户需求的程度。

可靠性:在规定的时间和条件下,维持其性能水准的程度。

易用性:用户掌握软件操作所要付出的时间及努力程度。

效率:软件执行某项功能所需的计算机资源和时间的有效程度。

可维护性:当环境改变或者软件发生错误时,执行修改或者修复所作的努力地程度。

可移植性:从一个系统/环境移到另一个系统/环境的容易程度。

负面反馈/所有反馈

客户报告的Bug/所有发现的Bug

修复Bug成本/开发总成本

需求变化量/需求总量

1、功能性的质量指标

  功能的正确性:系统功能和用户的实际需求、已定义的产品规范一致。

  功能的准确性:系统产生的结果在精度允许的误差范围内。

  功能的完整性:所有功能及其定义清楚、可用。

2、可用性的质量指标

  可操作性:容易使用和操作,包括理解用户界面、适应一些特殊用户的可选项等。

  通用性:数据显示、网络通信接口和用户界面等都遵守已有的软件标准。

  一致性:在软件开发整个生命周期内建立和使用相同的标准,保证全局变量、数据类型、出错处理的命名和使用一致。

3、可靠性的质量指标

  自我恢复能力:当系统的某个功能失效发生时,系统在当前环境下能实现故障自动转移,重新自动配置、继续执行的能力,软件系统具有自我检测、容错、备份等机制,尽量做到独立于硬件的编码、硬件设备之间的通信协议一致等。

  健壮性:各种恶劣环境(大数据量、大用户量)下系统能正常工作。

  分布性:软件系统的某些子功能或子系统被定位于不同的处理主机、存储设备。

4、性能的质量指标

  有效性:系统在通信、处理、存储等方面占有很少资源或者对所使用的资源进行了优化。

  完整性:系统具有良好的安全管理,能防止不安全存取系统、防止数据丢失病毒入侵等。

  易存取性:对系统的存取权限设置清楚,存取操作方便,存取操作有记录。

5、可维护性的质量指标

  模块化:指讲一个复杂的软件系统分解为分别命名并具备最小耦合性、很强凝聚性、结构化的组件。

  灵活性:容易为系统增加一个新功能或者新的数据而不需要进行大量的代码修改或者设计修改。

  可测试性:测试软件组件或者集成产品时查找缺陷的简易程度。

  可追溯性:对一个特殊需求容易找出相应的代码,反之,也可以根据代码找出特定的需求。

  兼容性:软件、硬件、通信系统之间协调及兼容其他系统的能力。

  可解释性:相关文档齐全、符合标准、逻辑清晰、描述准确、用词恰当,容易理解和定位。

6、可移植性质量指标

  适应性:系统不依赖于环境,即系统不做修改或作很少的修改即可运行在其他环境下。

  易安装性:与在指定的环境下安装软件所需努力有关的软件属性。如在线更新、安装包自动生成等。

  可重用性:一个软件组件除了在最初开发的系统之外应用于其他系统的能力。

  互操作性:软件系统与其他系统交换数据和服务的难易程度。

  可替换性:与软件在该环境中用来替代指定的其他软件的机会和努力有关的软件属性。

七、数据库:

sql里排序用order by asc或者desc 

条数用limit 5,前5条数据

limit 5,-1:6到最后一条数据

limit 5,10:6到15条数据

sql查平均成绩:select avg() 或者select sum()/count(*)需要的话加group by

八、网络:

DNS解析

查询缓存、域名解析、三次握手、网络协议、新鲜度检查、HTTP协议、GET请求、

九、输入网址后大概经历这些步骤:

一、 域名解析 

域名解析即为根据域名找到IP地址的过程。 

域名结构为:域名是在Internet上用于解决IP地址的一种方法。一个完整的域名由2个或2个以上的部分组成,各部分之间用英文的句号“.”来分隔,最后一个“.”的右边部分称为顶级域名(TLD,也称为一级域名),最后一个“.”的左边部分称为二级域名(SLD),二级域名的左边部分称为三级域名,以此类推,每一级的域名控制它下一级域名的分配。 

一个域名可以对应多个IP,但是每次解析时,只能解析成一个IP 

一个IP可以对应多个域名 

域名一般富有实际意义,便于记忆

寻找域名对应IP地址的过程为: 

1.查找浏览器缓存 

2.查找系统缓存 

- windows系统为从C:\Windows\System32\drivers\etc\hosts文件中查找 

- linux系统为从/etc/hosts文件中查找 

3.查找路由器缓存和ISP的DNS服务器缓存 

4.如果以上方式均找不到,则从顶级域名开始查找’

二、 建立TCP连接 

建立:三次握手 

释放连接:四次握手

三、 发送GET请求 

浏览器发送get请求到服务器,服务器根据请求返回内容给浏览器。

四、返回页面 

浏览器显示页面中所有文本

十、Java方向:

HashMap和HashTable的主要6个区别:

1.HashMap是非线程同步的,HashTable是线程同步的。

2.HashMap允许null作为键或者值,HashTable不允许

3.HashTable中有个一个contains方法,HashMap去掉了此方法

4.效率上来讲,HashMap因为是非线程安全的,因此效率比HashTable高

5.hashTable继承Dictionary,而HashMap继承Abstract

6.hashTable的put方法实现了同步,而hashMap没有

十一、死锁产生的必要条件

互斥条件:进程所占有。此时若有其他进程请求该资源,则请求进程只能等待。

不剥夺条件:进程所获得的资源在未使用完毕之前,不能被其他进程强行夺走,即只能由获得该资源的进程自己来释放(只能是主动释放)。

请求和保持条件:进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源 已被其他进程占有,此时请求进程被阻塞,但对自己已获得的资源保持不放。

循环等待条件:存在一种进程资源的循环等待链,链中每一个进程已获得的资源同时被 链中下一个进程所请求。

面向对象三个特征:

封装、继承、多态。

Java语言特点:

简单

面向对象

分布式

可移植

安全

猜你喜欢

转载自blog.csdn.net/baidu_34794435/article/details/81669486