• 软件测试面试常问问题及解答


    一、工作流程?测试计划、测试用例、测试报告都包含什么内容?

    工作流程如下:

    测试计划:

    1).应该做什么(了解需求)
    2).怎么去做(测试方案,测试方法,测试工具,测试人员,测试环境)
    3).什么时候做(测试进度安排
    4).风险控制(标准的定义:包括BUG等级的定义,软件测试通过标准的定义等)

    测试用例:

    项目名称 功能模块名 功能特性 测试目的 预置条件 参考信息 版本号 编制时间 测试编号 测试用例名称 重要级别 测试类型 操作步骤 作者 备注

    测试报告:

    测试概要(测试方法、范围、测试环境、工具)
    测试结果与缺陷分析(功能、性能)
    测试结论与建议(项目概况、测试时间 测试情况、结论性能汇总)
    附录(缺陷统计)

    二、测试用例设计思路

    功能方面考虑:根据业务流程、功能逻辑使用等价类划分、边界值、错误推测等测试方法设计

    系统方面考虑:兼容性测试(浏览器、操作系统、手机机型)、应用环境(网络)、性能测试(数量的考虑)、时序

    安全性方面:SQL注入、特殊字符

    三、工作中遇到过什么问题 是怎么解决的

     因人而异,最好让面试官体会到你能积极主动的沟通解决问题

    四、web测试与APP测试有什么相同之处和不同之处

     1、相同点
    不管是传统行业的web测试,还是新兴的手机app测试,都离不开测试的基础知识,即是不管怎么变,测试的原理依然会融入在这两者当中。
    1)设计测试用例时,依然都是依据边界值分析法、等价类划分等;
    2)多数采用黑盒的测试方法,来验证业务功能是否得到正确的应用;
    3)需要检查界面的布局、风格和按钮等是否简洁美观、是否统一等;
    4)测试页面载入和翻页的速度、登录时长、内存是否溢出等;
    5)测试应用系统的稳定性等。
    2、不同点
    相对于web测试,手机软件测试,除了要考虑基本的功能测试、性能等,还要考虑手机本身固有的属性特征。所以对比web测试和手机测试,手机测试过程中还需要注意如下几个方面特性:
    1)手机作为通信工具,来电、去电、接收短信等操作都会对app应用程序产生影响,所以app测试第一个要考虑的属性特征是:中断测试。
    中断测试有人为中断、新任务中断以及意外中断等几种情况,主要从以下几个方面进行验证:
    a.来电中断:呼叫挂断、被呼叫挂断、通话挂断、通话被挂断
    b.短信中断:接收短信、查看短信
    c.其他中断:蓝牙、闹钟、插拔数据线、手机锁定、手机断电、手机问题(系统死机、重启)
    2)手机用户对app产品的安装卸载操作:从上一个版本/上两个版本直接升级到最新版本。
    全新安装新版本
    新版本覆盖旧版本安装
    卸载旧版本,安装新版本
    卸载新版本,安装新版本

    3)版本的升级测试

    4)手机不同机型和不同系统的适配:可以用monkey

    5)APP打开速度的测试:让开发写个测试脚本在客户端,监控一下服务器响应后回到客户端显示的时间

    6)APP安装速度的测试

    7)手机网络测试:2G/3G/4G/wifi 等网络下APP的运行情况

    8)APP占用的手机cpu、内存及电池温度、耗电量、流量的测试:Emmage

    使用步骤:

    • 很简单,就是安装Emmage了
    • 运行Emmage,设置采样的时间间隔,例子是10S采集一次的,当然你也可以选择1S。
    • 选择要测试的移动应用。
    • 开始测试。
    • 开始测试之前,其实会准备好一系列要跑的想法,一般我是按照Tab来分,性能测试呢主要目地是检测常用的一些功能在手机端的性能表现,当然也可以真对某个功能反复的测试,原理是相通的,所以。。。
    • 开始测试之后,就会启动我们要测试的应用。
    • 按照料想的方式进行操作应用,并记录大概的时间点。
    • 操作应用完成之后,结束测试,
    • Emmagee就自动生成了报表,取出来可以进行下一步的分析。

    9)web自动化测试使用的工具较常用的是QTP,而android手机自动化测试工具比较常用的是monkey、monkeyrunner。

    五、报bug都包含哪些内容

    1)bug的简单描述

    2)操作步骤、期望结果、实际结果、特殊数据/特定环境、错误截图/错误日志

    六、性能测试是如何做的  监控哪些指标

     见性能测试思路及性能测试课堂笔记

    七、LR常用函数

    一、关联函数:

      web_reg_save_param("关联名称","LB=左边界","RB=右边界","Ord=1",

                         "Search=NoResource",LAST);

    二、检查点函数:

      web_reg_find("Fail=NotFound","Search=Body","SaveCount=regcheck(统计参数名)",

                   "Text=需查找的文本",LAST);

    三、添加集合点:

      lr_rendezvous("集合点名称");

    注意:集合点应放在事务外,否则将影响事务处理时间的统计;

      集合点策略在controller场景中进行设置。

    四、LR脚本其他常见函数格式:

      1、web_link("网站或链接名称","Text=需要单击的链接名","Ord=2(存在多个同名链接时需要指定位置)",LAST);

      2、web_url("网站或链接名称","URL=网站或链接地址",……,LAST);

      3、web_submit_form("login.pl",

                      "Snapshot=t3.inf",

                      ITEMDATA,

                      "Name=username","Value=admin",ENDITEM,……LAST);

      该函数会自动检测在当前页面上是否存在form,然后将后面的ITEMDATA数据进行传递;

      4、web_submit_data("login.pl",

                      "Action=网站URL",

                      "Method=POST",

                      ITEMDATA,……,LAST);

    八、环境的搭建 部署

     Linux操作环境的常用命令:

    安装命令:rpm yum tar

    其它命令:mkdir 创建 cp 复制  mv 移动 cat 打开文本 rm 删除  killall 杀进程 chmod 改变文件的权限 chown 改变文件所有者

    九、SQL语句  至少连表查询

    例句:

    1.图书(图书号、图书名、作者编号、出版社、出版日期),作者(作者姓名、作者编号、年龄、性别),用一条SQL语句查询年龄小于平均年龄的作者姓名、图书名、出版社。

    select a.作者姓名,b.图书名,b.出版社 from 作者 a join 图书 b on a.作者编号=b.作者编号 where a.年龄<(select AVG(年龄) from 作者)

    2.升序降序查询:ORDER by 字段名 DESC(降序)/ASC(升序)

    3.删除:DELETE

    4.更新:Update

    5.从第五行开始查,查5行:select * from 表 LIMIT 4,5;

    6.分组:group by

    十、Monkey命令 :(详见Money知识篇)

    adb shell monkey-p 包的签名 -v -v (日志) --ignore crashes/timeout  (异常处理)--pct-touch (动作百分比)

    十一、Linux下数据库的使用

    数据库操作命令:

    连接数据库:MySQL-h-u 用户名-p 密码 

    修改密码:mysqladmin -u用户名 -p旧密码 password 新密码

    常用:Use、 Create 、Show databases、 Show tables、 Drop 、Delete、 Insert 

    十二、接口测试是怎么做的

     接口验证和数据库验证 :验证接口的连通性及输入参数后的返回结果是否正确;链接数据库(先驱动数据库、在连接、查询、关闭数据库)查询是否插入相应的数据

    十三、Java冒泡程序(可参考)

    冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。

      冒泡排序算法的运作如下:

    1.  比较相邻的元素。如果第一个比第二个大,就交换他们两个。
    2.  对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
    3.  针对所有的元素重复以上的步骤,除了最后一个。
    4.  持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

    代码

     1 public class BubbleSort{
     2      public static void main(String[] args){
     3          int score[] = {67, 69, 75, 87, 89, 90, 99, 100};
     4          for (int i = 0; i < score.length -1; i++){    //最多做n-1趟排序
     5              for(int j = 0 ;j < score.length - i - 1; j++){    //对当前无序区间score[0......length-i-1]进行排序(j的范围很关键,这个范围是在逐步缩小的)
     6                  if(score[j] < score[j + 1]){    //把小的值交换到后面
     7                      int temp = score[j];
     8                      score[j] = score[j + 1];
     9                      score[j + 1] = temp;
    10                  }
    11              }            
    12              System.out.print("第" + (i + 1) + "次排序结果:");
    13              for(int a = 0; a < score.length; a++){
    14                  System.out.print(score[a] + "\t");
    15              }
    16              System.out.println("");
    17          }
    18              System.out.print("最终排序结果:");
    19              for(int a = 0; a < score.length; a++){
    20                  System.out.print(score[a] + "\t");
    21         }
    22      }
    23  }
  • 相关阅读:
    pthread_mutex_init函数与pthread_mutexattr_init函数
    DPDK收发包全景分析
    Linux Bond的原理及其不足
    Cisco VPP启动流程
    组网基础之深入解析二层组播
    vpp命令总结
    全面挖掘Java Excel API 使用方法
    MySQL的varchar定义长度到底是字节还是字符
    MYSQL 用户管理
    MySql中的变量定义
  • 原文地址:https://www.cnblogs.com/minna/p/5267876.html
Copyright © 2020-2023  润新知