爱奇艺面试题(一)

2022-02-23 17:27发布

1.移动端测试跟 web端测试有什么区别?

答:WEB测试和App测试从流程上来说,没有区别。都需要经历测试计划方案,用例设计,测试执行,缺陷管理,测试报告等相关活动。从技术上来说,WEB测试和APP测试其测试类型也基本相似,都需要进行功能测试、性能测试、安全性测试、GUI测试等测试类型。 

他们的主要区别在于具体测试的细节和方法有区别,比如:性能测试,在WEB测试只需要测试响应时间这个要素,在App测试中还需要考虑流量测试和耗电量测试。 

兼容性测试:在WEB端是兼容浏览器,在App端兼容的是手机设备。而且相对应的兼容性测试工具也不相同,WEB因为是测试兼容浏览器,所以需要使用不同的浏览器进行兼容性测试(常见的是兼容IE6IE8chromefirefox)如果是手机端,那么就需要兼容不同品牌,不同分辨率,不同android版本甚至不同操作系统的兼容。(常见的兼容方式是兼容市场占用率前N位的手机即可),有时候也可以使用到兼容性测试工具,但WEB兼容性工具多用IETester等工具,而App兼容性测试会使用Testin这样的商业工具也可以做测试。 

安装测试:WEB测试基本上没有客户端层面的安装测试,但是App测试是存在客户端层面的安装测试,那么就具备相关的测试点。 

还有,App测试基于手机设备,还有一些手机设备的专项测试。如交叉事件测试,操作类型测试,网络测试(弱网测试,网络切换) 

交叉事件测试:就是在操作某个软件的时候,来电话、来短信,电量不足提示等外部事件。 

操作类型测试:如横屏测试,手势测试 

网络测试:包含弱网和网络切换测试。需要测试弱网所造成的用户体验,重点要考虑回退和刷新是否会造成二次提交。弱网络的模拟,据说可以用360wifi实现设置。 

从系统架构的层面,WEB测试只要更新了服务器端,客户端就会同步会更新。而且客户端是可以保证每一个用户的客户端完全一致的。但是APP端是不能够保证完全一致的,除非用户更新客户端。如果是APP下修改了服务器端,意味着客户端用户所使用的核心版本都需要进行回归测试一遍。 

还有升级测试:升级测试的提醒机制,升级取消是否会影响原有功能的使用,升级后用户数据是否被清除了。


2.设计测试用例有哪些方法 ?

答:等价类,边界值,大纲法,场景法,正交法,错误猜测法等


3.给出 登录功能的测试用例。登录功能有两个输入框:用户名,密码,一个“登录”按钮。

答:此题的考察目的: 面试者是否熟悉各种测试方法,是否有丰富的Web测试经验, 是否了解Web开发,以及设计Test case的能力。这个题目还是相当有难度的, 一般的人很难把这个题目回答好。 

首先,你要了解用户的需求,比如这个登录界面应该是弹出窗口式的,还是直接在网页里面。对用户名的长度,和密码的强度(就是是不是必须多少位,大小写,特殊字符混搭)等。还有比如用户对界面的美观是不是有特殊的要求?(即是否要进行UI测试)。剩下的就是设计用例了 ,等价类,边界值等等。

请你记住一点,任何测试,不管测什么都是从了解需求开始的。 

功能测试(Function test)

     0. 什么都不输入,点击提交按钮,看提示信息。

        1.输入正确的用户名和密码,点击提交按钮,验证是否能正确登录。

    2.输入错误的用户名或者密码, 验证登录会失败,并且提示相应的错误信息。

        3.登录成功后能否能否跳转到正确的页面

        4.用户名和密码,如果太短或者太长,应该怎么处理

        5.用户名和密码,中有特殊字符(比如空格),和其他非英文的情况

        6.记住用户名的功能

        7.登陆失败后,不能记录密码的功能

        8.用户名和密码前后有空格的处理

        9.密码是否加密显示(星号圆点等)

       10.牵扯到验证码的,还要考虑文字是否扭曲过度导致辨认难度大,考虑颜色(色盲使用者),刷新或换一个按钮是否好用

       11.登录页面中的注册、忘记密码,登出用另一帐号登陆等链接是否正确

       12.输入密码的时候,大写键盘开启的时候要有提示信息。

界面测试(UI Test)

   1.布局是否合理,2testbox 和一个按钮是否对齐

   2.testbox和按钮的长度,高度是否复合要求

   3. 界面的设计风格是否与UI的设计风格统一

   4. 界面中的文字简洁易懂,没有错别字。

 性能测试(performance test)

   1.打开登录页面,需要几秒

   2.输入正确的用户名和密码后,登录成功跳转到新页面,不超过5

 安全性测试(Security test)

   1.登录成功后生成的Cookie,是否是httponly (否则容易被脚本盗取)

   2.用户名和密码是否通过加密的方式,发送给Web服务器

   3.用户名和密码的验证,应该是用服务器端验证, 而不能单单是在客户端用javascript验证

   4.用户名和密码的输入框,应该屏蔽SQL 注入攻击

   5.用户名和密码的的输入框,应该禁止输入脚本 (防止XSS攻击)

   6.错误登陆的次数限制(防止暴力破解)

   7. 考虑是否支持多用户在同一机器上登录;

   8. 考虑一用户在多台机器上登录


4. Linux命令:查看开启的tomact进程

答:打开终端

  cd /java/tomcat

  #执行

  bin/startup.sh #启动tomcat

  bin/shutdown.sh #停止tomcat

  tail -f logs/catalina.out #tomcat的控制台输出;

  #看是否已经有tomcat在运行了

  ps -ef |grep tomcat

  #如果有,用kill;

  kill -9 pid #pid 为相应的进程号

  例如 pe -ef |grep tomcat 输出如下

  sun 5144 1 0 10:21 pts/1 00:00:06 /java/jdk/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/java/tomcat/common/endorsed -classpath :/java/tomc          at/bin/bootstrap.jar:/java/tomcat/bin/commons-logging-api.jar -Dcatalina.base=/java/tomcat -Dcatalina.home=/java/tomcat -Djava.io.tmpdir=/java/tomcat/temp org.apache.catalina.startup.Bootstrap          start

  则 5144 就为进程号 pid = 5144

  kill -9 5144 就可以彻底杀死tomcat


5. Mysql 考察

设有表EMP (ENO, ENAME, SALARY, DNO) ,其中各属性的含义一次为职工号,姓名,工资和所在部门号,以及表DEPT (DNO, DNAME, MANGER),其中各属性含义依次为部门号,部门名称,部门经理的职工号。

1)试用SQL语句完成以下查询:列出个部门中工资不低于600元的职工的平均工资。

(列出部门名称)。

2)请用SQL语句将“销售部”的哪些工资数额低于600的职工工资上调10%。

答:

1.select b.dname,a.pjgz from ( select dno,avg(salary) pjgz from emp where salary>=600 group by dno) a inner join dept as b on a.dno=b.dno

2.update emp set salary=salary*(1+0.1) where salary<600 and dno in select dno from dept where dname='销售部')