目录
Myers将软件定义为:测试是为了发现错误而执行程序或系统的过程
静态白盒测试包括{1.代码检查,2.静态结构分析}这两种方法
动态白盒测试主要是{程序插桩,逻辑覆盖测试,基本路径测试,循环结构测试}
黑盒测试方法{等价类划分法,边界值分析法,判定表驱动法,因果图法,场景法,正交实验法,错误推测法}
前言
hello大家好,我是p_j_c_h,这是我第一次在csdn发文章,有不足之处还请指正。这快到期末考试了,老师就带着我们划重点,这篇文章是我根据老师画的重点来进行编写的。希望这篇文章能够帮助你。
软件测试是保障软件质量的关键手段
IEE给出的软件测试的标准定义:
使用人工或自动手段来运行或测某个系统的过程,其目的在于检验软件是否满足规定的需求或弄清预期结果和实际结果之间的差别。
Myers将软件定义为:测试是为了发现错误而执行程序或系统的过程
该定义明确说明了软件测试以检验软件是否满足需求为目标。预期结果和实际结果之间的差别,也就是软件错误,是测试过程的结果而不是目标,发现软件错误只是一种手段
软件测试的目的:
就是为了保证软件产品的最终的质量
软件测试在软件开发过程中对软件质量进行控制的重要手段之一
测试结果数据可以为软件产品的质量测量和评价提供依据
- 关于软件测试的目的,给出如下观点
- 1.软件测试是程序的执行过程,目的在于发现错误
- 2.好的测试用例很可能会发现至今尚未发现的错误
- 3.成功的测试是那些发现了至今尚未发现的错误
Pareto原则:
80%的软件缺陷起源于20%的模块
软件测试的过程:
这就构成了软件测试的生命周期
V/W 模型的优缺点
V模型:
- 1.清楚的描述了测试阶段和开发阶段之间的对相应关系(左侧是开发阶段,右侧是测试阶段)
- 2测试策略包含低层(保证源代码和设计的正确性)和高层测试(使系统满足用户需求)
- 自上而下的顺序导致了,测试工作要在编码之后进行,就导致错误不可以及时进行修改;实际工作中,经常变更需求,导致v模型步骤反复执行,返工量大,灵活度低。
- 它将测试看作编码之后的一个阶段,主要针对程序寻找错误的活动从而忽视了测试活动对需求分析和系统设计等前期开发活动的验证和确认功能
改良:
每个步骤都可以进行小的迭代
W模型:
- 有利于尽早的和全面的发现软件缺陷
- 无法支持迭代的软件开发过程,也难以适应需求变更调整
区别:
- 1.v模型开发和测试串行,w模型开发和测试并行
- 2.v模型针对程序寻找错误,w模型强调测试对象不仅仅是程序,还应包括软件需求和软件设计。
什么是测试用例?包含哪些内容
测试用例是测试执行之前已经设计好的一套详细的测试方案,也是测试执行是的最小实体。描述了测试一个特定软件产品的具体任务,体现了测试方案、方法、技术、和策略,包含测试目标、测试环境、输入数据、测试步骤、预期结果等内容。总的来讲,测试用例是为了某个特殊目标而编制的一组测试输入、执行条件以及预期结果,其目的是确定应用程序的某个特性是否能够正常工作,并且满足特定用户需求和软件设计结果。
白盒测试(看课本理解方法)
两次实训的内容
静态白盒测试包括{1.代码检查,2.静态结构分析}这两种方法
动态白盒测试主要是{程序插桩,逻辑覆盖测试,基本路径测试,循环结构测试}
黑盒测试(看课本理解方法)
黑盒测试方法{等价类划分法,边界值分析法,判定表驱动法,因果图法,场景法,正交实验法,错误推测法}
场景法基本概念:
- 场景法运用场景对系统功能点或业务流程进行描述,然后设计测试用例,从而提高对系统主要功能和业务流程的测试效果
基本流(正确流):
- 1.模拟用户正确的操作流程
- 2.目的:验证软件的业务流程和主要功能
备选流(错误流):
- 1.模拟用户错误的操作流程
- 2.目的:验证软件的错误处理能力
错误推断法概念:
错误推断法基于经验和直觉推测程序中可能出现的各种错误和容易发生错误的特殊情况,将其列举为清单,然后有针对性的设计测试用例。
单元测试
单元测试就是根据软件规格说明书、详细设计说明书、编码规范和源程序清单,对软件设计中的最小单元进行正确性检验的测试工作,主要测试软件单元在语法、格式、和逻辑上的错误。
驱动模块和桩模块试单元测试中的两个重要概念
驱动模块(驱动程序):是用于模拟被测模块的上级模块,能够调用被测模块。当被测模块是底层模块是,需要编写驱动模块
桩模块(存根程序):用于模拟程序结构中被测模块调用的下级模块。当被测模块是上层模块是,需要编写桩模块
什么是集成测试、系统测试,以及它们之间的区别
集成测试也被称为部件测试、组装测试、联合测试或子系统测试,主要测试组合在一起的软件单元能否正常工作,是单元测试和系统测试之间的过渡阶段
系统测试是将经过集成测试之后的软件系统和系统运行必备元素组合在一起,然后对用户实际运行环境下的完整计算机系统进行测试。
- 目的: 在于通过检验软件系统各项功能是否正确,以及检验软件系统在性能、安全性、可靠性等非功能特性上的表现是否满足要求,从而验证软件系统与系统的需求定义是否完全一致。
- 1.系统测试并不只局限于找出软件程序中的错误,而是为了发现软件软硬件整体系统与需求定义是否存在不符合或矛盾之处
- 2.如果没有一组书面的、可度量的系统目标,系统测试是无法进行的。
集成测试和系统测试的区别:
区别 | 集成测试 | 系统测试 |
---|---|---|
测试其实时间 | 集成测试在前 | 系统测在后 |
测试对象不同 | 模块组合 | 整个软件系统 |
主要任务不同 | 模块之间的接口进行测试 | 集成好的软件系统机型彻底测试 |
测试方法不同 | 黑盒测试为主,白盒测试为辅的灰盒测试 | 黑盒测试 |
测试依据不同 | 软件概要说明 | 软件需求规格说明 |
测试角度不同 | 开发人员角度 | 用户角度 |
测试用例的粒度不同 | 粒度较小 | 粒度较大 |
测试用例的数量不同 | 一般来说测试用例较多 | 一般来说测试用例较少 |
具体数量由特定的项目所规定的系统测试范围和测试深度所决定的
集成测试的策略与模式
**测增式:**自顶向下集成、自底向上集成、三明治集成
集成测试的两种模式:
- 1.非渐增式集成测试模式:首先对一个模块进行单元测试,然后根据程序设计机构,将所有模块一次性集成在一起进行集成测试
- 2.渐增式集成测试模式:采用逐步集成的方式,把单元测试和集成测试结合起来进行,将被测模块逐步与已经测试好的模块结合在一起进行测试。
什么是α测试什么是β测试?(都属于验收测试)
是由一个用户在开发环境下进行的测试,也可以是公司的内部的用户模拟实际操作环境下进行的测试。(主要对软件产品的功能、性能、可用性、和可靠性做出评价,特别是对软件界面和易用性进行测试)
注意:不能由开发人员和测试人员完成
由软件开发方组织各方面的典型用户在不同场所进行测试
注意:不能由开发人员和测试人员完成
什么是回归测试?
回归测试是指在对之前已经测试过的软件系统进行修改或扩充之后所进行的重新测试,是为了保证对软件所做的修改和扩充没有引起新的错误而进行的重复测试。(回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。)
策略的选择需要考虑软件开发成本、时间和质量的平衡,针对不同的软件项目、回归测试内容和测试阶段进行综合选择。
性能测试的指标与术语
- 1.CPU使用率
- 2.内存利用率
- 3.磁盘I/O
- 4.网络通信速率
- 1.响应时间
- 2.吞吐量
- 3.并发用户数
- 4.事物成功率
- 5.超时错误率
软件缺陷生命周期与处理流程
缺陷生命周期
缺陷处理流程
提交 --> 分配 --> 确认 --> 拒绝/延期 --> 处理 --> 复测 --> 关闭
接口测试十大组件(Jmeter)
- 1.测试计划:起点。所有组件的容器
- 2.线程组:代表一定数量的用户
- 3.取样器:向服务器发送请求的最小单元
- 4.逻辑控制器:结合取样器实现一些复杂的逻辑
- 5.前置处理器:在请求之前的工作
- 6.后置处理器:在请求之后的工作
- 7.断言:用于判断请求是否成功
- 8.定时器:负责在请求之间的延时间隔,
- 9.配置元件:配置信息
- 10.监听器:负责收集结果
测试计划 --> 线程组 --> 配置元件 --> 前置处理器 --> 定时器 --> 取样器 --> 后置处理器 --> 断言 --> 监听器
测试计划、线程组、取样器
总结
在下萌新一枚,第一次写文章有不足之处还望指正,我一定会努力创作更为优质的内容。在这里,p_j_c_h,祝大家期末必过。(这篇文章应该曝光不大,可能没有曝光,没事,那就当做写给自己看的期末复习文件)