笔试题
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%的程序模块中。
网友评论