软件测试学习笔记

Posted 左直拳

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试学习笔记相关的知识,希望对你有一定的参考价值。

一、软件测试方法

1、静态测试

1)桌前检查
程序员检查自己编写的程序。

2)代码审查
由若干程序员和测试人员组成一个会审小组,通过阅读、讨论和争议,对程序进行静态分析的过程。

3)代码走查
与代码审查基本相同,但不是简单地读程序和对照错误检查单进行检查,而是让与会者充当计算机,将程序跑一遍。

4)静态分析
对程序代码进行静态分析,包括控制流分析、数据流分析、接口分析和表达式分析。

2、动态测试

1)白盒测试
又称为结构测试,主要用于软件单元测试阶段。主要思想是,将程序看作透明的白盒,测试人员完全程序的结构和处理算法,按照程序内部逻辑结构设计测试用例,检测程序执行路径是否达到预定要求。

2)黑盒测试
又称为功能测试。主要用于集成测试、确认测试和系统测试阶段。

黑盒测试将软件看作不透明的黑盒,完全不考虑或不了解程序的内部结构和处理算法,只检查软件功能是否满足需求软件规格说明书的要求和正常运行等。

3)灰盒测试
是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。 灰盒测试不像白盒那样详细、完整,但又比黑盒测试更关注程序的内部逻辑,常常是通过一些表征性的现象、事件、标志来判断内部的运行状态。

二、软件测试类型

1、单元测试
也称为模块测试,测试对象是程序模块、构件或类。单元测试的技术依据是软件详细设计说明书。

2、集成测试
集成测试目的是检查模块之间,以及模块和已集成的软件之间的接口关系,并验证已集成的软件是否符合设计要求。集成测试的技术依据是软件概要设计文档。

1)集成测试策略

(1)基于分解的集成策略

非渐增式
大突击测试或一次性集成测试,即先测试所有的模块,然后一次性把所有模块集成到一起,将程序作为一个整体来测试。

非渐增式集成测试容易一下子面对太多错误而无法定位错误和做出诊断,只适合于维护型项目(因为之前的产品已经很稳定)或规模很小的项目。

渐增式
每次选一个未测试的模块,和已经测试好的模块组合在一起进行测试。容易定位和改正错误。又分为自顶向下集成、自底向上集成和二者混合的三明治集成。

3、系统测试
系统测试的对象是完整的、集成的计算机系统,系统测试的目的是在真实的系统工作环境下,验证完整的软件配置项能否和系统正确连接,并满足系统设计文档和软件开发合同的要求。

系统测试的技术依据是用户需求和开发合同。

系统测试包括功能测试、性能测试、安全性测试、健壮性测试、界面测试、安装和反安装测试等。其中最重要的是功能测试和性能测试。

1)性能测试
性能测试主要包括压力测试、负载测试、并发测试和可靠性测试。

(1)负载测试
测试当负载逐渐增加时,系统各项性能指标的变化情况。

(2)压力测试
通过确定一个系统的瓶颈或不能接收的性能点,来获得系统能提供的最大服务级别。

(3)强度测试
在系统资源特别低的情况下考察系统运行情况。

(4)并发测试
也称为容量测试,主要用来确定系统可处理的同时在线的最大用户数。

(5)可靠性测试
通过测试系统可靠性的各种指标,如MTTF和可用性等,来验证系统的可靠性。

以前曾做过相关笔记,不过跟这里有点出入。之前笔记中,负载测试和压力测试和性能测试并列:
负载测试压力测试强度测试稳定性测试

4、其他测试类型

1)配置项测试
测试对象是软件配置项,目的是检验软件配置项与软件需求规格说明书的一致性。
技术依据是软件需求规格说明书。

2)确认测试
用于验证软件的功能、性能和其他特性是否与用户需求一致。根据用户参与程度,可分为4类:
(1)内部确认测试
(2)Alpha测试
(3)Beta测试
(4)验收测试

3)回归测试
测试软件变更后,变更部分的正确性和对变更需求的符合性,以及原有正确功能等的不损害性。

三、面向对象系统的测试

OO系统的测试目标与传统信息系统的测试目标是一致的,但OO系统的测试策略与传统的结构化系统的测试策略有很大的不同,这种不同主要体现在两个方面,分别是测试的焦点从模块移向了类,以及测试的视角扩大到了分析和设计模型。

从测试内容看,OO系统的测试也分为单元测试、集成测试和系统测试;从测试活动看,分为OOA测试、OOD测试和OOP测试。

四、测试用例


五、测试自动化

自动化测试通常需要构建存放程序软件包和测试软件包的文件服务器、存储测试用例和测试结果的数据库服务器、执行测试的运行环境、控制服务器、WEB服务器和客户端程序。

自动化测试的主要实现方法包括代码的静态和动态分析、测试过程的捕获与回放、测试脚本技术、虚拟用户技术和测试管理技术等。

自动化测试的特点:
1、提高测试执行的速度
2、提高工作效率
3、保证测试结果的准确性
4、可连续运行测试脚本
5、可模拟现实环境下受约束的情况,完成人工测试所不能完成的工作。比如模拟数以千计的客户端同时访问。
6、虽然有诸多优点,但不能代替人工测试。其发现缺陷能力不及人工测试;比较依赖被测试产品的质量;有效性不高;可能会制约软件开发;测试工具本身不具备想象力等。

六、软件测试的组织、过程和管理

单元测试、集成测试、系统测试、验收测试的组织方不相同,或开发方,或需方,或第三方等。

测试过程分为4项活动:
1)测试策划
2)测试设计
3)测试执行
4)测试总结

以上是关于软件测试学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

慕课网-软件测试基础-学习笔记

Part5:学习笔记之接口测试

假期读书笔记1

两个EXCEL表格,怎么让数据配对,以型号作为关联

课后作业-阅读任务-阅读笔记-3

LR学习笔记1-性能测试常见用语