1.测试基础
1.1常见的软件测试模型有哪几种 V模型,W模型,H模型,X模型
1.2简述软件测试V模型的流程 需求分析——概要设计——详细设计——编码——单元测试——集成测试——系统测试——验收测试
1.3软件测试V模型的优点、缺点。 优点: A. 既有底层测试(编码测试)又有高层测试(系统测试)。 B.清楚的标识出软件开发的阶段。 C.采用自顶向下的方式将开发过程分成不同阶段,每个阶段分工明确,便 于控制开发过程。所有阶段结束,开发就结束。
缺点:A.由于自身的顺序性,导致前期的一些bug到后期才被发现,或者不被发现。 B.在需求阶段很难把用户的需求完全明确,因此在需求更改时将会导致阶段反复,工作量大,灵活性低。
1.4H模型诞生的背景 虽然软件开发中需求分析、概要设计、编码等活动是被分阶段执行的,但是实践中,他们不完全是串行的,他们更多时候是交叉进行的,或迭代执行的。所以专家将测试活动完全独立出来,形成一个完全独立的流程。
1.5H模型示意图及说明
1.6软件测试的分类 1.6.1按测试阶段划分: 单元测试;集成测试;系统测试 1.6.2按是否覆盖源代码: 白盒测试;黑盒测试 黑盒测试:功能测试,性能测试 1.6.3按是否运行: 静态测试;动态测试 1.6.4按是否自动化: 人工测试;自动测试 1.6.5其他: 回归;冒烟;随机;验收测试 验收测试:α测试,β测试,γ测试
1.7黑盒测试及常用的黑盒测试方法 黑盒测试:数据驱动测试,把测试对象当成看不见内部的黑盒子,不考虑程序内部结构,注重测试软件的功能需求,只关心软件的输入和输出数据。
黑盒测试方法: 边界值分析方法;等价类划分方法;正交表;因果图&判定表方法;场景法;流程设计法。
1.8白盒测试和黑盒测试的概念及区别 白盒测试:把程序看成透明的盒子,研究里面的源代码和程序结构。 黑盒测试:数据驱动测试,把测试对象当成看不见内部的黑盒子,不考虑程序内部结构,注重测试软件的功能需求,只关心软件的输入和输出数据。 区别:前者关注程序内部,后者不关注程序内部。
1.9静态测试 不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误过程。
1.10回归测试 是指修改了代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。(bug修复后的测试,防止引入新bug)
1.11冒烟测试 在新版本出来的时候,将软件的全部功能过一遍,如果功能都能正常运行,则通过了冒烟测试,可以进一步进行测试。
1.12理解软件测试原则 (1)测试用例中一个必需部分是对预期输出或结果进行定义,这样才能辨别是否是有效的测试。 (2)程序员应当避免测试自己编写的程序。 (3)编写软件的组织不应当测试自己编写的软件(会潜意识里避免发现错误)。 (4)应当彻底检查每个测试的执行结果。 (5)测试用例要考虑到有效的输入情况和无效的输入情况。 (6)检查程序要检查是否“未做其该做的”,以及“做了不应该做的”。 (7)测试用例用后不可丢弃,除非软件本身就是一次性软件。 (8)程序某部分发生的错误越多,意味着这部分隐藏的错误页越多。 (9)计划测试工作时不应默许假定不会发生错误。 (10)软件测试是一项极富创造性、极富智力挑战性的工作。
1.13理解“成功”的测试的含义 “不成功的”表示事情不遂人意或令人失望。仅指未能适当地对程序进行检查,在大多数情况下,未能找出错误的测试被认为是“不成功的”。 如果测试某段程序时发现了错误,并且错误可修复,那么就将这次合理设计并得到有效执行的测试称作是“成功的”。如果本次测试可以最终确定再无其他可查出的错误,同样也被称作是“成功的”。
2.缺陷管理
2.1软件缺陷的定义 软件缺陷是指存在于软件(程序、数据、文档)中的那些不符合用户需求的问题。
2.2软件缺陷的状态 提交(Submitted) 打开(open) 拒绝(rejected) 修复(resolved) 关闭(closed) 推迟(later)
2.3软件缺陷的管理的一般流程(每个阶段的缺陷状态)
3.功能测试 3.1等价类分类法的依据 是否是有效等价类。
3.2掌握等价类分类法设计测试用例
3.3边界值测试法的理论依据是什么 大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。
3.4根据边界值方法设计测试用例
3.5判定表的组成 条件桩:问题的所有条件; 动作桩:问题的所有输出; 条件项:针对条件桩的取值; 动作项:条件项的各种取值情况下的输出结果。
3.6掌握判定表法设计测试用例
3.7场景法的概念、基本流和备选流的概念 场景法:模拟用户操作软件时的场景,主要用于测试系统的业务流程。 基本流:模拟正确的操作流程。 备选流:模拟错误的操作流程。
3.8给定正交表,设计测试用例。
4.性能测试
4.1常用的性能测试工具有哪些 LoadRunner:自动负载测试工具 JMter:性能测试、功能测试、自动化测试 Apache ab:压力测试
4.2理解并发用户数的概念 同一时刻与服务器进行数据交互的所有用户数。 同一时刻对服务器产生压力的虚拟用户数。
4.3并发用户数和系统注册用户数、系统在线用户的区别 并发用户数:同一时刻与服务器进行数据交互的所有用户数。 系统注册用户数:在系统注册过的所有用户数。 系统在线用户数:已登录系统的用户数。
区别:并发用户是在同一时刻对服务器进行施压;
4.4理解“响应时间”,能够分析什么是响应时间。 系统从发出请求开始到对客户端接收到数据的时间。
4.5吞吐量的概念 在单位时间内处理请求的数量。(单位时间内服务器处理的字节数)
4.6TPS和QPS概念及区别 一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。 TPS:transaction per second,服务器每秒处理的事务数。 QPS:queries per second,每秒查询率,服务器每秒能够响应的查询(请求)次数。
4.7点击率 每秒用户向服务器提交的http数量。
4.8压力测试和负载测试的含义 压力测试:指系统已达到一种饱和状态,此时系统的业务处理处理能力,系统是否 会出错。目的是找到系统在哪里失效以及如何失效的地方。
负载测试:通过对被测试系统不断的加压,直到超过预定的指标或部分资源已达到 了一种饱和的状态不能再加压为止。
4.9理解“集合点”的应用场景 一定数量的虚拟用户同时向测试系统发出请求,虚拟用户未达到指定的数量时就处于等待状态,直到达到指定数量的用户数。
4.10一个简单的Web页面测试,需要JMeter的组件分别是什么。 测试计划 线程组:线程组定义了一个虚拟用户池 取样器:向服务器发送请求; 监听器:收集测试结果信息。
5.综合
5.1HTTP协议中Cookie的交互流程 客户端向服务器发送一个请求; 服务器生成cookie记住是向谁发送;服务器在响应中添加cookie后返回给客户端; 客户端再向服务器发送请求时,会携带cookie; 服务器返回响应。
请求报文:没有cookie信息的状态; 响应报文:服务器端生成cookie信息; 请求报文:自动发送保存着的cookie信息。
5.2MySQL性能优化的步骤 开启慢查询日志,记录运行时间超过long_query_time值的SQL语句,和未使用索引的查询; 慢sql分析,explain select语句,查看查询优化器如何决定执行查询的; Show profile查询sql语句在服务器中的执行细节和生命周期; Sql数据库服务器参数调优。
5.3POST和GET请求的区别 get请求从服务器获取数据,Post请求是向服务器发送数据; Get请求把获取的数据连接在url后面,整个过程是用户可见的,是不安全的。 post请求把请求的数据放在请求体中;