您好,欢迎来到尔游网。
搜索
您的当前位置:首页「软件测试工程师」每天一点面试题009

「软件测试工程师」每天一点面试题009

来源:尔游网

一、测试基础面试题

二、语言类面试题(python)

问:解释一下__call__的用法
答:
  python 中有一个有趣的语法,只要是定义类型的时候,实现__call__函数,这个类型就成为了可以调用的,换句话说,我们可以吧这个来信的对象当作函数来直接使用,相当于重载了括号运算符:
示例:

class Person(object):
    def __init__(self,name,gender):
        self.name = name
        self.gender = gender
    def __call__(self,friend):
        print('my name is %s'%self.name)
        print('my friend is %s' %friend)

    def test(self,friend2):
        print('my name is %s'%self.name)
        print('my friend2 is %s' %friend2)

#对于类person实例可以直接调用:
p = Person('bob','name')
p('tim')
p.test('jack')

#输出结果
my name is bob
my friend is tim
my name is bob
my friend2 is jack

三、操作系统类面试题(linux)

四、计算机网络类面试题(TCP/IP,HTTP,ARP)

问:说一下 tcp 流量控制(tcp 滑动窗口机制)
答:
  滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口;同时,接收方也维持了一个允许接收的帧的序号,称为接收窗口。发送窗口和接收窗口的序号的上下界不一定要一样,甚至大小也可以不同。不同的滑动窗口协议窗口大小一般不同。发送方窗口内的序列号代表了那些已经被发送,但是还没有被确认的帧,或者是那些可以被发送的帧。

五、数据库类面试题(sql,mysql)

DDL 语句是用来定义数据库对象,主要对数据库和表,列进行操作,常用的操作:

问:DDL 语言对数据库的操作语句有哪些_
答:
1、创建/查看数据库:
查看数据库:
mysql> show databases;
查看数据库具体的定义信息:
mysql>SHOW CREATE DATABASE dbtest2
创建数据库(数据库名不能重复):
mysql> CREATE DATABASE dbtest;
创建数据库检查是否存在,若存在就不会再创建,只会提示(好处在于不会报错,可以继续执行后续 sql 语句):
mysql> CREATE DATABASE IF NOT EXISTS dbtest;
创建数据库,并指定字符编码(mysql8.0 默认情况下是 utf-8):
mysql> CREATE DATABASE dbtest2 CHARACTER SET gbk
2、修改数据库:
修改字符集:
mysql> ALTER DATABASE dbtest1 DEFAULT CHARACTER SET gdk
3、删除数据库:
mysql> DROP DATABASE dbtest1;
4、查看正在使用的数据库
mysql> SELECT DATABASE();
5、使用数据库
mysql> USE dbtest2;

问:DDL 语言对表的操作语句有哪些_
答:
1、创建/查看表:
创建表:
mysql> CREATE TABLE student(number INT,name VARCHAR(10),age INT,birthday DATA,sex CHAR(1));
需要注意:varchar 和 char 中没有默认值,所以在创建时需要指定大小。Int 有默认值 10
查看所有表:
mysql>showTABLES;
查看具体表项:
mysql>DESC student;
查看建立表现的语句:
mysql>show create table student;
快速创建一个表结构跟当前表一致:
mysql>CREATE TABLE student1 like student
2、删除表:
mysql> DROP TABLE student1
判断删除的表是否存在,进行删除:
mysql> DROP TABLE IF EXISTS student1;
3、修改表结构:
为当前表添加一个字段
mysql> ALTER TABLE student1 ADD remark varchar(20) ;
修改列类型:
mysql> ALTER TABLE student1 MODIFY remark varchar(100);
改变列名:
mysql>ALTER TABLE student1 change remark intro varchar(30)
4、删除列(注意还是 ALTER 开头)
mysql>ALTER TABLE student1 DROP intro;
5、修改表名:
mysql>RENAME TABLE student1 to student2;
6、修改字符集:
mysql>ALTER TABLE student2 character set gbk;

六、自动化接口测试(Jmeter)

问:如何写测试用例,举一个平时测试中的测试用例设计过程
答:
  ABCDE

七、code(算法)

问:leecode 1 easy
答:

'''
输入一组数组nums和目标值target,如果数组中有两个数相加等于目标值,输出这两个数的位置
示例:输入nums=[2,4,7,10],target=14,返回[13]因为nums[1]+nums[3]=14
'''
class Nums_mark():
    def N_mark(self,nums,target):
        self.nums = nums
        self.target = target
        x = len(self.nums)
        for i in range(x-1):
            for j in range(i,x):
                if int(self.nums[i])+int(self.nums[j]) == int(self.target):
                    return (i,j)

if __name__ == '__main__':
    nums = list(input('请输入一组数组:'))
    target = input('请输入目标参数:')

    numsmark = Nums_mark()
    mark = numsmark.N_mark(nums,target)
    print(mark)

程序题解法多种,如果程序有问题可以留言帮我提升一下(比如还有什么 hash 算法,这个我知道,但是能写出来的还在这种最笨的方法)

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- axer.cn 版权所有 湘ICP备2023022495号-12

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务