1. 测试流程
1) 需求分析以及需求评审:需求分析和评审是否会影响到其他功能,功能上是否可以实现
2) 编写测试计划:根据需求评估出测试所需时间和测试人员
3) 编写测试用例以及用例评审:根据需求编写测试用例并进行用例评审
4) 执行测试:根据测试进行测试,以及在测试中发现的BUG跟踪和复测
5) 编写测试报告:测试结束后,编写测试报告,其中包含测试耗时、执行多少case、多少成功、多少失败、多少BUG
2. 要从那些方面设计测试用例
黑盒测试:边界值分析法、等价类划分法、错误猜测法、因果图方法、正交表分析法、场景分析法、状态图法、大纲法
1) 边界值分析法
划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不 同的情况:有效等价类和无效等价类
2) 等价类划分法
边界值分析方法是对等价类划分方法的补充。测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测 试用例,可以查出更多的错误.
使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据, 而不是选取等价类中的典型值或任意值作为测试数据.
3) 错误猜测法
基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方 法. 错误推测方法的基本思想:
列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误.以前产品测试中曾经发现的错误等, 这些就是经验的总结. 还有, 输入数据和输出数据为 0 的情况. 输入表格为空格或输入表格只有一行.
这些都是容易发生错误的情况. 可选择这些情况下 的例子作为测试用例.
4) 因果图方法
前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件 之间的联系, 相互组合等.考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要 检查输入条件的组合不是一件容易的事情,即使把所有输入条件划分成等价类,他们之间的 组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型). 因果图方法最终生成 的就是判定表.
它适合于检查程序输入条件的各种组合情况
5) 正交表分析法
有时候,可能因为大量的参数的组合而引起测试用例数量上的激增,同时,这些测试用例并没有明显的优先级上的差距,而测试人员又无法完成这么多数量的测试,就可以通过正交表来进行缩减一些用例,从而达到尽量少的用例覆盖尽量大的范围的可能性。
6) 场景分析法
大纲法是一种着眼于需求的方法,为了列出各种测试条件,就将需求转换为大纲的形式。大纲表示为树状结构,在根和每个叶子结点之间存在唯一的路径。大纲中的每条路径定义了一个特定的输入条件集合,用于定义测试用例。树中叶子的数目或大纲中的路径给出了测试所 有功能所需测试用例的大致数量。
7) 状态图法
大纲法是一种着眼于需求的方法,为了列出各种测试条件,就将需求转换为大纲的形式。大纲表示为树状结构,在根和每个叶子结点之间存在唯一的路径。大纲中的每条路径定义了一个特定的输入条件集合,用于定义测试用例。树中叶子的数目或大纲中的路径给出了测试所 有功能所需测试用例的大致数量。
8) 大纲法
大纲法是一种着眼于需求的方法,为了列出各种测试条件,就将需求转换为大纲的形式。大纲表示为树状结构,在根和每个叶子结点之间存在唯一的路径。大纲中的每条路径定义了一个特定的输入条件集合,用于定义测试用例。树中叶子的数目或大纲中的路径给出了测试所 有功能所需测试用例的大致数量。
白盒测试:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖
1. 语句覆盖:每条语句至少执行一次。
2. 判定覆盖:每个判定的每个分支至少执行一次。
3. 条件覆盖:每个判定的每个条件应取到各种可能的值。
4. 判定/条件覆盖:同时满足判定覆盖条件覆盖。
5. 条件组合覆盖:每个判定中各条件的每一种组合至少出现一次。
6. 路径覆盖:使程序中每一条可能的路径至少执行一次。
3.冒烟测试用例
冒烟测试用例的设计是非常重要的,主要的策略是对于整体流程的全覆盖,并且主要由正常情况来组成;
对于一些有特殊要求和特殊功能的模块,需要进行一些异常情况的覆盖
4.软件、测试以及BUG生命周期
软件生命周期
计划-》需求分析-》设计-》程序编写-》测试-》运行/维护
测试生命周期
测试计划-》需求分析-》编写测试用例-》测试执行-》提交BUG-》回归测试
BUG生命周期
发现bug-》提交bug-》指派bug-》研发确认bug-》bug修复-》验证bug-》验证是否通过-》关闭bug
5. 白盒测试和黑盒测试的区别
白盒测试
可以检测代码中每条分支和路径;揭示隐藏在代码中的的错误;对代码的测试比较彻底;最优化
缺点也很明显昂贵,没有办法检测到代码中遗漏的路径和敏感性错误;不验证规格的正确性
黑盒测试:
黑盒测试又叫功能测试,黑盒测试中只关注被测软件的功能实现,而不是内部逻辑,测试中被测对象的内部结构,运行情况对测试人员是不可见的,测试人员主要是根据其规格,验证其与规格的一致性。最常见的测试有功能测试、负载测试、安全测试、容量测试、恢复性测试、标杆测试、稳定性测试、可靠性测试等
6. 接口测试和MQ测试有什么区别
接口:
输入请求数据、接口地址、请求方式进行发送数据,进行逻辑处理然后返回响应数据
mq:
mq消息主要分为生产者、消费者、消息,发送消息消息是根据topic发送
发送方式也不同,接口是通过测试工具来发送的,mq是通过mq控制台来发送消息的
7. 接口的请求方式以及区别是什么
请求方式:
get:直接从服务端拉取数据
post:先发送请求再拉数据(注册、更新、改)
put:修改的数据
delete:用户删除数据
get和post的区别:
get是从服务器上拉取数据,post是往服务器上发送数据,二者在报文格式上也不相同
get一般是通过URL传递参数,Post一般通过BODY传递参数
get和post在安全性上的差别不大,get由于通常会在URL中包含参数,部分场景下安全性稍弱
8. HTTP和HTTPS的区别
https协议需要用到CA申请证书,一般免费证书比较少,因而需要一定费用
http是超文本传输协议,信息是明文传输;https则是具有安全性的ssl/tls加密传输协议
http和https使用的是完全不同的连接方式,用的端口也不一样,前者是40,后者是443
http的连接很简单是无状态的;https是有SSL/TLS+http协议构建的可进行加密传输、身份认证的网络协议,比http更安全
9. MySQL和Oracle的区别
面试题一: MySQL和Oracle区别有什么 - 掘金 (juejin.cn)
10. Linux常用命令
11. 测试模型
V模型
W模型