zoukankan      html  css  js  c++  java
  • 面试问题整理

    最近面试,遇到了不少题目,为今后的再面试做准备,特收集记录于此

    一、关于管理方面的

    1、如何构建比较完整的测试体系框架,可以从哪些方面入手?

    思路:(测试技术体系建设  测试管理支撑)

    主要从团队组织、环境建设、标准制定、人员培养、配置管理工作流程

    a、软件测试管理体系建设可以从测试的总体规程、需求跟踪管理、软件缺陷跟踪管理、软件缺陷分析管理、软件质量度量管理、软件测试人员的职业体系规划、软件测试人员的绩效考核体系、软件测试相关的配置管理体系

    b、软件测试技术体系建设可以从输出技术技能图谱,针对技术人员的系统测试培训,测试技能体系的建立、试点、推广

    2、针对版本上线后,出现线上问题或漏测情况,如何规避?

     思路:

    a、故障可能在需求、技术设计、开发、漏测、上线不规范等过程产生,因而,故障的控制必须从各个阶段分别入手

    b、根据业务成熟度、团队成员特点有针对性应对(业务需求分析、变更管理引起.人员是否充足、是否进行冒烟测试、风险控制.)

    c、针对已有的故障,在复盘时找到最根本的原因

    参考

    3、作为管理者,怎样招一个合格的测试人员?

     思路;

    分析能力、专业技能、沟通表达、适应和学习能力、记忆力、自信心、耐心、怀疑精神、洞察力、有条理和注意细节

    4、如何管理团队?

    思路:可以从怎样管理人和事方面说明,当时面试的时候,面试官就说我的经验都是偏于管事多,管人方面需要加强

    1)关于事

    资源共享、同一个目标、

    2)关于人

     多沟通、尽早发现和解决问题,充分了解组员正在做什么和怎样做

    放权及授权、同等对待

    5、怎样留住人员?

    思路:

    a、制定明确的激励计划和透明的未来目标,用人制度

    b、适合的薪资制度

    c、多多和团队内成员进行沟通,建立一个融洽的团队环境

    d、加强项目管理,强化文档管理,培训机制

    f、建立分享机制,使员工之间建立学习的氛围

    6、测试质量体系规划和建设

    思路:(软件规模、进度、工作量、缺陷指标、质量指标分析)

    1)明确测试输入输出准则

    2)测试策略、用例质量、执行质量、缺陷质量、过程质量监控(风险评估、缺陷预防)

    二、关于技术方面的

    1、数据库方面

    1)如何使用sql生成1000万条数据?

    思路:

    a、生产环境拉取然后备份到测试环境(但也有问题,实际环境的数据由于各种原因不一定全部满足测试数据)

    b、写代码生成数据? 涉及如何写的问题

    数据库中新建函数---存储过程,输入批量增加数据的代码块

    2)如何挑选出重复的数据(比如姓名字段会出现重名的情况)

    思路:以姓名分组,然后使用函数统计出现重复的次数count

    3)给多个表,然后写出关联的SQL语句

    2、性能测试方面

    1)性能测试怎么做的? 如何保证并发数? 为什么会用分布式,在做分布式时如何分配每台电脑的用户数? 服务器性能怎么做?

    性能测试流程核心:搭建性能环境、设计用例、场景建模、准备测试数据、测试脚本开发(数据隔离,防止数据污染)、执行、问题分析与调优、维护

    怎么做:

    如果是测试响应时间,对一个接口进行压力测试,不断加压,直到响应时间达到或超过指标,观察当前其并发数和TPS,同样的并发数,多执行几次,得到一个平均值或稳定值(即TPS和TRT曲线相对稳定的值),并记录下来

    如果是测试接口的最大并发数,逐渐增加线程数,看聚合报告里吞吐量Throughput,每秒完成的请求数随着发送的Samples(发出请求数量)实时在变,当吞吐量不再往上增加时,这个时候的并发数即是最大并发数,增加线程数,tps不变,响应时间增加,报错增加,说明达到极限了

    如何保证并发数:同一时刻的并发是很难做到的。我们用来发起压力的测试工具本身要能做到同一时刻发起压力,如果设置线程数过多,负载机本身资源不足会有排队,请求建立和服务端的连接过程会排队,请求数据发送到服务的时候在网络队列上也会排队,请求数据达到服务端,在服务端也会进行排队,所以严格意义上的并发多少用户数等等是比较难做到的。但是,我们可以分层去看,像一般的webserver或容器服务都有监控数据,如nginx的Active connections,tomcat的currentThreadsBusy,这些参数表明服务本身目前正在处理的最大并发线程数(监控Web层(例如Nginx)的连接数和请求数,查看实际达到服务器端的并发数是否跟我们的设定值一致)

    为什么会用分布式:电脑连接数不够,为了解决单个物理服务器容量和性能瓶颈问题而采用的优化手段(分布式是从物理资源的角度去将不同的机器组成一个整体对外服务)

     分布式时如何分配每台电脑的用户数: 负载机的线程数与脚本设计的线程数一致,每台的负载机线程数是一样的,由调度机监控汇总测试结果

    服务器性能怎么做: 关注吞吐量、响应时间 、事务成功率、资源使用率

    N个人在客户端同时进行功能性操作的同时,在确保功能实现正确的前提下,考察服务端应用程序的各项性能指标,以及服务器硬件资源的使用情况

    2)假设系统A调用系统B,把B的接口都mock了,有啥好处和坏处?

    思路:

     好处:避免其它模块的出错引起的本模块错误,起到隔离作用、并行工作,进程互不影响、提前接入测试,保证测试效率,模拟数据,增加覆盖

    坏处:大量使用mock测试的场景失去了真实性,可能会导致在后续的系统性测试时才发现bug,使得缺陷发现的较晚,可能会造成后续修复成本更大;

    3)多个接口之间存在调用关系,在对接口压测时,系统崩了,怎么判断是哪个接口引起的问题

    思路:

    a、从最低层的接口先做性能测试,再看该接口调用上层的哪些业务接口

    b、虽然存在多层调用,分析当前压测的接口的业务是否涉及多个接口,如果不涉及就不用考虑是其它接口的问题,如果涉及就需要一层层的向上找,看到底是哪个接口引起的系统崩溃

    4)如何设计性能的测试用例

     确定性能目标;场景设计,场景设计一定从简单到复杂。(容量、安全、可靠、压力、响应时间、宽带、资源利用率、恢复能力、可扩展性)

    5)App性能关注点,哪些指标

    3、代码方面

    1)统计1-9999中数字3出现的次数

    思路:包含3的数字都统计一次,如333,则统计3次

    2)数组逆序输出

    3)计算1-100的和

    4、自动化方面

    1)ajax异步时,如何进行元素的定位?

    思路:当时不太理解前端的异步是什么,回答的时候说一般元素定位不到,需要加等待时间,然后说没遇到这种情况,然后面试官也没说什么....然后百度了下,似乎就是要设置等待时间

    这里应该可以答 三大延时等待处理(硬性等待 Thread sleep,隐式等待 Timeouts  显示等待 自定义)

    2)如何实现用例失败或异常时需要截图

    思路:

    a、定义一个截图的方法并保存File

    b、定义一个用例失败的监听类 ,继承testng框架的失败监听接口IHookable,该接口有一个方法run

    c、在testng.xml配置监听运行

    3)如何进行分布式执行webdriver用例

     思路:

    a、Selenium grid使用,同时启动一个hub和至少一个node来实现

    b、借助于Testng配置文件进行,即在Case中以变量形式替换真实地址

    5、测试方面

    1)如何测试一个下订单

    思路:

    一次下单的商品数量、订单的类型、同样的商品是否可重复下单、 是否可下多个订单

    2)如何测试灰度配置

    3)app和web测试的区别与关注点

     流程和技术测试方面是一致的

    app更关注流量、耗电、浏览器、手机品牌、安卓软件版本、分辨率的兼容,弱网,网络切换,交叉中断测试、下载安装升级测试

    4)https协议

    5)怎样进行接口测试

    思路:充分理解接口逻辑业务,配合接口参数组合,上下游服务的容错处理,如依赖的接口异常,本接口是否有很好的容错

    6)微信扫码登录设计测试用例

    6、其它方面

    1)自己的优缺点

  • 相关阅读:
    <C++ QT4 GUI 编程>第一章笔记
    生成snmp++动态库
    PHP 5.3 新特性
    编译安装-Subversion 1.8.5
    Xen入门系列四【Xen 管理实操】
    Xen入门系列三【Xen 管理工具 xm】
    COMET探索系列三【异步通知服务器关闭数据连接实现思路】
    PHP生成二维码【谷歌API+qrcode+圆角Logo】
    SSH免密码登陆详解
    COMET探索系列二【Ajax轮询复用模型】
  • 原文地址:https://www.cnblogs.com/wanshuang/p/12725637.html
Copyright © 2011-2022 走看看