2018-09-19 面试题回忆录

笔试题

1. 写一个函数,返回两个数字相加的值,入参为a,b

def addNum(a,b):
    if(a.isdigit()&b.isdigit()):
        return float(a)+float(b)

    扩展:判断是否为数字 isdigit()

2. 一个数加上100是个完全平方数,加上168是另一个完全平方数,求这个数。

import math

# 方法1: 
def isint(x):

    f = str(x).split('.')
    return (f[1]=='0')
        
def getNum(n):
    x1 = math.sqrt(n+100)
    x2 = math.sqrt(n+168)
    return (isint(x1)) & (isint(x2))

for i in range(0,1000):
    if getNum(i):   
        print i

# 方法2:
def issqrt(n):
    x = int(math.sqrt(n+100))
    y = int(math.sqrt(n+168))
    return (x*x==(n+100)) & (y*y==(n+168))

for i in range(1,1000):
    if issqrt(i):   
        print i
    扩展1:math.sqrt(x)返回x的算术平方根,值为float。
    扩展2:完全平方数开根号后为整数,非完全平方数开根号后为小数。

3. range 和 xrange 的 区别

    相同:两个都是用在循环中
    区别:range返回的是一个列表;xrange返回的是一个生成器
    性能:xrange做循环的性能比range好,尤其是返回很大的时候,尽量用xrange,除非你是要返回一个列表。

4. python标准数据类型有哪些

    Numbers(数字)int,long,float,complex
    String(字符串)
    List(列表)
    Tuple(元组)
    Dictory(字典)

5. 怎么理解迭代器

6. 测试代码是怎么管理的?

  • 复习重点:如何用版本管理工具管理测试代码
  • 了解适合测试的版本管理工具svn、git

7. 先自我介绍一下?

8. unittest框架,数据驱动怎么做? 跳过某个测试用例怎么做?

9. 自动化架构?设计?

10. 印象深刻2次痛苦的沟通经历,是怎么沟通的?结果失败/成功?

11. python web框架flask

12. 用过哪些抓包工具?fiddler

13. 用python 装饰器 封装连接数据库?

14. python 发送带请求头headers的 http 请求,返回值为json

15. 最近半年用到的python第三方库

16. 语句覆盖?判定覆盖?条件覆盖?

白盒测试是基于覆盖的测试,尽可能覆盖程序的结构特性和逻辑路径。具体的方法有 逻辑覆盖、循环覆盖、基本路径覆盖等。逻辑覆盖又分为 语句覆盖、判定覆盖、条件覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖等。白盒测试主要用于单元测试。
    语句覆盖:设计若干测试用例,运行被测程序,使程序中的每个可执行语句至少被执行一次。
        优缺点:能够使得所有的执行语句都能被测试,但是不能准确地判断运算中的逻辑关系错误。
    判定覆盖:设计若干用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断真假值均曾被满足。
        优缺点:会忽略条件中取“或(OR)”的情况。
    条件覆盖:设计若干测试用例,执行被测程序以后,要使每个判断中每个条件的可能取值至少满足一次。
        有缺点:所有条件覆盖都满足了,也不能保证所有判定(分支)覆盖被测试,这样有可能会遗漏程序落哦即错误。
    判定-条件覆盖:是判定和条件覆盖设计方法的交集,即设计足够的测试用例,使得判断条件中的所有条件可能取值至少被执行一次,同时,所有判断的可能结果至少执行一次。
        优缺点:既没有覆盖到所有路径,也没有覆盖到所有的条件组合。这样容易忽视代码中出现的错误。
    条件组合覆盖:设计足够的测试用例,使得判断中每个条件的所有可能至少出现一次,并且每个判断本身的判定结果也至少执行一次。
        优缺点:不能保证所有路径被执行。
    路径覆盖:设计所有的测试用例,来覆盖程序中的所有可能的执行路径。
        优缺点:不能覆盖所有的条件组合。
总结:任何一种方法都不能完全覆盖所有测试用例。在实际的测试用例设计过程中,可以根据需要将不同的设计方法组合起来,交叉使用,以达到最高的覆盖率。

17. 正交试验法(,等价类划分、场景设计、因果图)

概念:从大量的数据测试例中挑选适量的、有代表性的条件组合,从而合理地安排测试的一种科学实验设计方法。
应用场景:在一个界面中有多个控件,每个控件有多个取值,控件之间可以相互组合,不可能(也没有必要)为每一种组合编写一条用例,如何使用最少最优的组合进行测试。——正交排列法
用例设计步骤:1.确定影响被测对象的条件,即因子数;2.确定每个因素的可能取值,即水平数;3.选取合适的正交表;4.将因子、状态映射到正交表中;5.在增加一些没有生成的但可疑的测试用例。
正交表分析法:参考https://blog.csdn.net/lilinfang90/article/details/17524701
常用的9个正交表:

(1)L4(2^3)
序号    1    2    3           
1    1    1    1
2    1    2    2
3    2    1    2
4    2    2    1


(2)L8(2^7)
序号    1    2    3    4    5    6    7                   
1    1    1    1    1    1    1    1
2    1    1    1    2    2    2    2
3    1    2    2    1    1    2    2
4    1    2    2    2    2    1    1
5    2    1    2    1    2    1    2
6    2    1    2    2    1    2    1
7    2    2    1    1    2    2    1
8    2    2    1    2    1    1    2


(3)L12(2^11)

序号    1    2    3    4    5    6    7    8    9     10    11       
1    1    1    1     1    1    1    1    1    1    1    1
2    1    1    1    1    1    2    2    2    2    2    2
3    1    1    2    2    2    1    1    1    2    2    2
4    1    2    1    2    2    1    2    2    1    1    2
5    1    2    2    1    2    2    1    2    1    2    1
6    1    2    2    2    1    2    2    1    2    1    1
7    2    1    2    2    1    1    2    2    1    2    1
8    2    1    2    1    2    2    2    1    1    1    2
9    2    1    1    2    2    2    1    2    2    1    1
10    2    2    2    1    1    1    1    2    2    1    2
11    2    2    1    2    1    2    1    1    1    2    2
12    2    2    1    1    2    1    2    1    2    2    1


(4)L9(3^4)

序号    1    2    3    4               
1    1    1    1    1
2    1    2    2    2
3    1    3    3    3
4    2    1    2    3
5    2    2    3    1
6    2    3    1    2
7    3    1    3    2
8    3    2    1    3
9    3    3    2    1


(5)L16(4^5)

序号    1    2    3    4    5           
1    1    1    1    1    1
2    1    2    2    2    2
3    1    3    3    3    3
4    1    4    4    4    4
5    2    1    2    3    4
6    2    2    1    4    3
7    2    3    4    1    2
8    2    4    3    2    1
9    3    1    3    4    2
10    3    2    4    3    1
11    3    3    1    2    4
12    3    4    2    1    3
13    4    1    4    2    3
14    4    2    3    1    4
15    4    3    2    4    1
16    4    4    1    3    2


(6)L25(5^6)

序号    1    2    3    4    5    6       
1    1    1    1    1    1    1
2    1    2    2    2    2    2
3    1    3    3    3    3    3
4    1    4    4    4    4    4
5    1    5    5    5    5    5
6    2    1    2    3    4    5
7    2    2    3    4    5    1
8    2    3    4    5    1    2
9    2    4    5    1    2    3
10    2    5    1    2    3    4
11    3    1    3    5    2    4
12    3    2    4    1    3    5
13    3    3    5    2    4    1
14    3    4    1    3    5    2
15    3    5    2    4    1    3
16    4    1    4    2    5    3
17    4    2    5    3    1    4
18    4    3    1    4    2    5
19    4    4    2    5    3    1
20    4    5    3    1    4    2
21    5    1    5    4    3    2
22    5    2    1    5    4    3
23    5    3    2    1    5    4
24    5    4    3    2    1    5
25    5    5    4    3    2    1


(7)L8(4^1×2^4)

序号    1    2    3    4    5           
1    1    1    1    1    1
2    1    2    2    2    2
3    2    1    1    2    2
4    2    2    2    1    1
5    3    1    2    1    2
6    3    2    1    2    1
7    4    1    2    2    1
8    4    2    1    1    2


(8)L12(3^1×2^4)

序号    1    2    3    4    5
1    1    1    1    1    1
2    1    1    1    2    2
3    1    2    2    1    2
4    1    2    2    2    1
5    2    1    2    1    1
6    2    1    2    2    2
7    2    2    1    2    2
8    2    2    1    2    2
9    3    1    2    1    2
10    3    1    1    2    1
11    3    2    1    1    2
12    3    2    2    2    1


(9)L16(4^4×2^3)

序号    1    2    3    4    5    6    7
1    1    1    1    1    1    1    1
2    1    2    2    2    1    2    2
3    1    3    3    3    2    1    2
4    1    4    4    4    2    2    1
5    2    1    2    3    2    2    1
6    2    2    1    4    2    1    2
7    2    3    4    1    1    2    2
8    2    4    3    2    1    1    1
9    3    1    3    4    1    2    2
10    3    2    4    3    1    1    1
11    3    3    1    2    2    2    1
12    3    4    2    1    2    1    2
13    4    1    4    2    2    1    2
14    4    2    3    1    2    2    1
15    4    3    2    4    1    1    1
16    4    4    1    3    1    2    2
 

18. 实现数据库表的 左连接,SQL的几种正确写法?left join,join,where,union。

19. 用例怎么管理的?

通过testlink管理。

测试管理工具

  • 无论是收集需求,设计测试用例,测试执行报告,通知其他团队成员关于测试进度等,都需要一个测试管理工具。 记录这些细节的小错误可能会导致项目的灾难性影响和失败。 因此,为了管理所有这些细节,一些测试管理工具可以非常方便和有用。

1 qTest

  • qTest测试管理是敏捷测试团队使用的No 1的测试管理工具。 qTest提供易于学习,易于使用,可扩展的测试管理解决方案,使测试人员能够集中,组织和加快测试管理。 qTest使QA过程的每一步更简单,更有效,包括:
    。管理要求 - 需求与相关缺陷之间的完全可追溯性
    。测试用例库 - 轻松导入,创建,管理和组织测试用例
    。执行测试 - 管理测试周期,创建并执行测试运行
    。跟踪缺陷 - 创建自定义查询来定位缺陷并将结果导出到Excel中
    。具有高级查询功能的实时交互式开箱即用或可定制的报表
    。一流的,实时的JIRA集成在需求和缺陷级别
  • qTest拥有超过10,000个用户,在20多个国家拥有400个客户,是目前市场上最好的测试管理解决方案之一。

11 TestRail

  • TestRail与名为Gemini的票据管理工具集成;它是最好的测试用例管理工具之一。通过许多其他问题跟踪工具,它为测试用例的创建和执行支持提供了一些外部链接。它附带一个基于HTTP的API与自动测试结果集成。它轻松管理您的功能,探索性和自动化测试。它是一个独特而强大的UI脚本,可帮助您定制应用程序和UI的许多方面。
  • TestRail的主要特点
    。现代测试管理
    。跟踪测试结果
    。报告和指标
    。无缝整合
    。项目灵活的自定义字段

20. postman 多个body,怎么参数化?

21. 风险的理解?风险分析的常用方法?

  • 风险的定义:不确定性对目标的影响。影响是指偏离预期,可以是正面的和/或负面的,目标可以是不同方面(如财务、健康与安全、环境等),可以体现在不同的层次(如战略、组织范围、项目、产品和过程)。不确定性起源于人类的无知,我们缺乏足够的信息去推测事件的发生及其后果。
  • 风险的含义:
    1)风险是客观存在的;
    2)风险和不确定性、随机性紧密相连,但不等同;
    3)风险强调的是损害的潜在可能性,而不是事实上的损害;
    4)风险不能消除至尽,包括人为因素带来的风险,也一样不能消除至尽;
    5)衡量风险的两个基本要素就是事件及其后果;
    6)对信息安全而言,导致风险的事件是威胁利用了资产(或系统)的脆弱点。
  • 信息安全是围绕风险展开。
  • 常用的风险分析方法:
    。 专家评价法
    。层次分析法
    。概率分布分析法

22. 项目管理

23. 基于风险的测试

  • 基于风险的测试是指评估优先级,先做高优先级的测试,如果时间和精力不够,低优先级的测试可以暂时先不做。
  • 基于风险的测试,也就是根据事情的轻重缓急来决定测试工作的重点。
  • 影响测试优先级的因素重要是:
    。该功能出问题对用户的影响有多大?对用户的影响越大,其优先级越高。
    。出问题的概率有多大?概率越大,优先级越高。(这种概率受国内模块的复 杂性,代码质量的影响。复杂性越高货代码质量越低,问题发生的概率就越大。)
  • 基于风险的测试过程归纳如下:
    。列出软件的所有功能和特性
    。确定每个功能出错的可能性
    。如果某个功能出错或欠缺某个特征,需要评估对用户使用软件产品的影响程度。
    。根据上面两个步骤计算风险度
    。根据可能出错的迹象,来修改风险度
    。决定测试的范围,编写测试方案

24. 模糊测试方法

  • Fuzz testing,构造大量的随机数据作为系统的输入,从而检验系统在各种数据情况下是否会出现问题。
  • 应用场景:安全性测试,服务器的容错性测试
  • 配置模糊测试参数或框架,包含 已知有效数据、故意错误数据和随机数据的组合,以达到更好的测试效果。

25. ALAC测试和随机测试

  • 二·八原则
  • 用户80%的时间在使用系统20%的功能;20%的时间在使用系统80%的功能。
  • 测试发现的错误80%集中在20%的程序模块中;20%的错误集中在80%的程序模块中。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271