• 面试问到的问题2021年


    1、测试用例设计

        一、划分等价类
        (1)有效等价类,有意义的输入数据构成的集合,检验程序是否实现规格说明预先规定的功能和性能。
        用例尽可能多的覆盖尚未被覆盖的有效等价类。直到所有的有效等价类都被测试用例覆盖。
        (2)无效等价类,不合理、无意义的输入数据构成的集合,检验程序的容错能力。
        用例覆盖一个且仅一个尚未被覆盖的无效等价类。直到所有的无效等价类都被测试用例所覆盖。
        二、边界值 
        三、判定表
            1、确定规则数,条件数为n,规则个数= 2^n
            2、列出所有条件桩和动作桩
            3、填入条件、动作对应的结果
            4、简化判定表,合并相似规则
        四、业务流程(正常流程、异常流程)
        五、正交表(根据水平、因子选取正交表)

    2、unittest的工作原理

    Test case:一个完整的测试单元,体现在Setup(测试环境的准备)、run(测试执行)、teardown(测试环境的还原)。
    Test suite(集合或套件):多个测试用例的集合,测试套件或测试计划
    Test Loader:用来加载 testcase 到 testsuite 中的。
    Test runner:执行测试用例,测试结果会保存到TextTestResult实例中。
    Test fixture:一个测试用例环境的搭建和销毁,主要是setUp() 和 setDown()方法。

    3、装饰器的原理

    Python中的变量名和对象是分离的,变量名可以指向任意一个对象。
    从本质上,装饰器起到的就是这样一个重新指向变量名的作用,让同一个变量名指向一个新返回的可调用对象,从而达到修改可调用对象的目的

    4、值传递、引用传递

    # 值传递(不可变对象作为函数参数,相当于C语言的值传递)
    def zhi(c):
        print("调用中", id(c))  # 2072954816   一开始传递进来的是对不可变数据类型a(数字类型)的引用
        c += 2  # 数字改变后有一个新的指针指向3所在内存空间,但原来指向2的指针a(内存地址空间依旧存在)未改变
        print("被修改后", id(c))  # 2072954848   故c的内存地址改变
        return c
    
    
    # 引用传递(列表是可变数据类型,作为参数传递实则是传递对列表的引用,修改更新列表值后依旧引用不变)
    def yinyong(l):
        print("调用中", id(l))  # 21694696
        l[1] = 30
        print("被修改后", id(l))  # 21694696
        return l
    
    
    if __name__ == "__main__":
        a = 2
        print('调用前', id(a))  # 2072954816
        n = zhi(a)
        print(n, id(n))  # 4   2072954848
        print(a, id(a))  # 2   2072954816
    
        list1 = ["loleina", 25, 'female']
        print('调用前', id(list1))  # 21694696
        list2 = yinyong(list1)
    
        print(list1, id(list1))  # ['loleina', 30, 'female']  21694696
        print(list2, id(list2))  # ['loleina', 30, 'female']  21694696

    5、性能测试

    6、linux常用命令

     之前的文章 https://www.cnblogs.com/yinwenbin/p/11874351.html

     昨天有问到的:

    1、查看服务netstat命令,常用: netstat  -natp

    2、查看进程ps命令,常用:ps  -ef 或者  ps aux

    7、HTTP与HTTPS有什么区别?

    HTTP协议传输的数据都是未加密的,也就是明文的。HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全

    8、cookies和session的区别
    1、cookie数据保存在客户端,session数据保存在服务器端
    2、session过期时间取决于服务期的设定;cookie过期时间可以在cookie生成的时候设置进去;
    3、cookie和session都是用来跟踪浏览器用户身份的会话方式。

    9、印象深刻的bug

    10、缓存

    web缓存也叫作代理服务器。(过期机制)
                     它是一种在不向原始服务器发送请求的情形下满足HTTP请求的技术。
                     当对象在web缓存中的时候,请求被满足;
                     否则将会请求原始服务器,然后缓存到服务器,接着满足请求;

    静态缓存:是在新内容发布的同时就立刻生成相应内容的静态页面;
    动态缓存:是在新内容发布以后,并不预先生成相应的静态页面,直到对相应内容发出请求时,
                      如果前台缓存服务器找不到相应缓存,就向后台内容管理服务器发出请求,
                      后台系统会生成相应内容的静态页面,用户第一次访问页面时可能会慢一点,但是以后就是直接访问缓存了

    测试进阶轨迹
  • 相关阅读:
    [LeetCode] Implement Queue using Stacks
    [LintCode] 带重复元素的排列
    [LintCode] 全排列
    [LeetCode] Substring with Concatenation of All Words
    linux下安装eclipse并使用xstart远程使用(centos7)
    linux下安装jsp开发运行环境(centos7)
    linux下扩展root分区
    linux下安装telnet(centos7)
    linux下搭建java开发环境
    linux通过脚本获取内存信息
  • 原文地址:https://www.cnblogs.com/yinwenbin/p/14540650.html
Copyright © 2020-2023  润新知