2021-04-06笔试

1.用图画出产品研发周期中软件测试的不同阶段,并加以适当描述

单元测试、集成测试、系统测试、验收测试

单元测试:系统最小可测试的单元

集成测试:将各个单元连接起来,穿插接口数据是否受到影响

系统测试:
范围包括--功能测试,ui测试,性能测试,兼容性测试,用户体验测试,安装测试,文档测试,稳定性测试

验收测试:在UAT测试之前,指定测试方案,选用基线测试,即最高级别的测试。在UAT测试环境上进行测试,如果通过了,则说明验收测试通过

2.请画出所在公司/上一家公司的 项目流程

用户需求--需求分析--概要分析--详细分析--软件编码--单元测试--集成测试--系统测试--验收测试

v模型

3.请简述bug的生命周期

新建--确认--解决--重新验证--关闭--重新激活

一个bug由测试人员发现并创建,指派给对应的开发人员,开发人员拿到bug之后,确认bug,表示bug分配下来了。开发人员解决之后,点击解决bug,并发给测试进行回归测试。测试人员会对bug进行回归测试,没有问题bug就会被关闭。出现问题的话,bug会被重新激活。还要说明的是,bug是会“起死回生”的,旧版本的bug在新版本上可能会出现,那时我们要将bug激活

4.阐述公司所用的bug管理工具,阐述大致流程

禅道

在一整套的测试中,我把它分为5个部分:
1,建立测试任务:为一个项目中某块建立一个任务;
2,建立测试用例:一个任务可能要多个测试用例
3,管理测试任务:这里主要就是把测试用例关联到测试任务上,然后为每个测试任务分配人员,就是具体制定由谁来完成测试对某个用例的测试。
4,执行用例,提交bug:这里就是实战的测试阶段,然后提交结果。
5,验证bug和关闭bug:当测试通过后,就可以关闭bug了

5.测试接口应该从哪几方面考虑

通过工具模拟客户端向服务端发送请求并接受服务器返回的数据来对接口的功能,逻辑业务,异常,安全进行测试

功能测试:测试这个接口的功能是否实现,并且测试这个接口是否按照接口文档来进行开发的(比如说接口文档规定了一些关键字,而开大的时候把关键字改成了其他的关键字,因为在整个项目周期,并不只有一个开发而是有多个,所以可能因为在开发过程中因为关键字不一样导致某些开发的功能异常,还有自动化脚本也会发生异常)

逻辑业务,主要指的是一些逻辑业务依赖关系(比如支付宝提交订单的时候要保证你是在登录的情况下,如果你没有登录而提交成功了,这就是异常,可以修改请求的cookie来测试)

异常测试:参数异常:关键字参数(应用其他的关键字替换进行测试)、参数为空、参数多少(通过添加参数增添个数),参数错误。数据异常:关键字数据(填入的数据用其他的数据语言的数据替用)、数据长度、数据为空、数据错误。
  
  由于我们项目前后端调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送与接收。工具有很多如:postman、jmeter、soupUI、java+httpclient、robotframework+httplibrary等。
  –也可以用 接口自动化来实现,就是用代码实现,框架和UI自动化差不多,发送请求用断言来判断。

6.请写出接口测试用例的框架

主流的接口测试框架对比

7.java对三个随机数排序


import java.util.Arrays;
 
 
public class T1 {
 
 
public static void main(String[] args) {
 
int max = 100;
 
int[] nums = new int[3];
 
for (int i = 0; i < 3 i++) {
 
int num = (int) (Math.random() * (max + 1));
 
nums[i] = num;
 
}
 
for (int a : nums) {
 
System.out.print(a + ",");
 
}
 
System.out.println();
 
 
for (int i = 1; i < nums.length; i++) {
 
for (int j = 0; j < i - 1; j++) {
 
if (nums[j] > nums[i]) {
 
int temp = nums[j];
 
nums[j] = nums[i];
 
nums[i] = temp;
 
 
}
 
}
 
 
}
 
System.out.println(Arrays.toString(nums));

}
 
}

8.String a;if(a.equals("0")){return true;};

什么也不返回

9.字符串下标越界

10.delete、drop、truncate区别

delete,drop,truncate 都有删除表的作用,区别在于:
1、delete 和 truncate 仅仅删除表数据,drop 连表数据和表结构一起删除,打个比方,delete 是单杀,truncate 是团灭,drop 是把电脑摔了。
2、delete 是 DML 语句,操作完以后如果没有不想提交事务还可以回滚,truncate 和 drop 是 DDL 语句,操作完马上生效,不能回滚,打个比方,delete 是发微信说分手,后悔还可以撤回,truncate 和 drop 是直接扇耳光说滚,不能反悔。
3、执行的速度上,drop>truncate>delete,打个比方,drop 是神舟火箭,truncate 是和谐号动车,delete 是自行车。

11.sql语句


select a.s_id,avg(b.s_score) as avg_score
from student a join score b
on a.s_id=b.s_id
group by 
    a.s_id
    a.s_name
having
 avg_score>60

12.详细写出搜索功能的测试用例

用例.png

13.用jmeter对接口A进行性能测试,A接口依赖于登陆接口,请写出思路

14.如何查找名为“A.LOG”的日志,且输出到控制台,服务器系统为linux

15.未来五年的规划

https://www.cnblogs.com/findyou/p/6481903.html

[1~2年],测试技能:熟悉整个测试过程及产品业务领域,学习和掌握自动测试工具,学习测试自动化编程技术;开发和执行测试脚本,承担系统测试实施任务;学习编程语言、操作系统、网络与数据库方面的技能。
[3~4年],测试过程:深入了解测试过程,掌握测试过程设计及改进,参与软件工作产品的同行评审;进一步了解产品业务领域,改进测试自动化编程技术,能指导初级测试工程师;加强编程语言、操作系统、网络与数据库方面的技能。
[4~5年],测试组织工作:管理1~3名测试工程师,担任任务估算、管理及进度控制;进一步培养在软件项目管理及支持工具方面的技能。
[5~6年],技术管理:管理4~8名测试工程师,提高任务估算、管理及进度控制能力,完成测试规划冰制定测试计划;研究测试的技术手段,保持使用项目指导及支持工具的技能;用大量的时间为其他测试工程师提供技术及过程方面的指导;开始与客户打交道并做演示推介。
[6~12年],测试管理:管理8名以上测试工程师,负责一个或多个项目的测试工作,与客户打交道并做演示推介;保持使用项目管理及支持工具的技能。

14 Linux命令:修改文件权限命令chmod、chgrp、chown详解

你可能感兴趣的:(2021-04-06笔试)