我的位置:首页 > 软件管理>软件测试

软件测试基础-软件测试分类

时间:2019-05-12 09:43:54 来源:互联网 作者: 神秘的大神 字体:

 

毕业季,校招了很多新人,要对新人进行培训。所以整理一下测试的基础文档,作为备份,适合纯小白,如您不是就可以不继续看了~~

 

1、软件测试定义:

软件测试是为了证明程序有错,通过运行程序发现其中存在的问题。程序有错不仅仅包括程序运行时的bug,还包括是否满足用户的需求,是否符合常规使用习惯,效率等等。

 

2、软件测试分类:

 2.1按是否测试代码分:

(1)白盒测试:注重于内部结构,又称为结构测试或逻辑驱动测试。需要读写代码,根据程序内部逻辑结构和编码结构设计,准备相应测试数据进行测试。

(2)黑盒测试:不注重内部结构,又称为功能测试和数据驱动测试。根据需求规范,设计测试用例,输入、输出正确即可。

(3)灰盒测试:介于白盒与黑盒之间,多用于集成测试阶段,不仅关注输出、输入的正确性,也关注程序的内部逻辑。

 2.2按是否执行程序分:

(1)静态测试:不运行被测程序,只是静态地检查程序代码、界面或文档中可能存在的错误。主要包括各阶段的评审、代码检查、程序分析、界面和文档检查等等。

(2)动态测试:实际运行被测程序检查、分析程序的执行状态和程序逻辑,比较实际运行结果和预期结果的差异。

 2.3按测试阶段分:

(1)单元测试:是指对软件中的最小可测试单元进行检查和验证,主要是测试模块在语法、格式和逻辑上的错误。

(2)集成测试:按设计要求把通过单元测试的各个模块组装在一起,对系统的接口及集成后的功能进行正确性检测,主要是检查模块间的接口关系,发现与接口相关的各种错误。

(3)系统测试:将集成好的软件系统置于实际运行环境中进行测试,主要根据需求分析时确定的标准,检验功能、行为、性能和系统协调性等是否符合要求。

(4)验收测试:软件实际部署前的最后一次测试,也称验收测试,主要验证软件功能的正确性和需求的符合性。

 2.4按是否手工分:

(1)手工测试:人工编写测试用例,执行测试,观察输入输出,找出软件错误。

(2)自动化测试:是手工测试的一种补充,主要是通过代码和工具执行测试,一般常用于验证测试。

 2.5其它测试类型:

(1)性能测试:通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。主要是找到正常提供服务的拐点,优化性能瓶颈,指导服务器部署等。

(2)接口测试:测试系统组件间接口,主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。主要是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

(3)安全测试:验证软件符合安全需求定义和产品质量标准。主要是通过手工或工具检测漏洞,检查代码是否符合安全规范(例如:用户信息不能明文存储)。

(4)数据测试:对软件运行的各种数据进行测试,主要是数据结构、数据存储/并发/缓存/备份、预处理、实时性等。

(5)评测:指对软件性能、用途、使用价值等进行的评价和测试。主要对软件本身、软件数据资源、竞品等进行评测。

(6)统计:针对软件中埋点的点位进行测试,抓取埋点数据进行分析,反向影响软件需求。

(7)容灾:当各种灾难发生时,在保证生产系统的数据尽量少丢失的情况下,保持生产系统的业务不间断的运行。主要是数据库挂掉,机房被攻击等。

(8)兼容性:检查软件之间能否正确地进行交互和共享信息。主要有向前/向后兼容,版本兼容,系统兼容,数据兼容等等。

(9)安装/卸载:确保软件在正常情况和异常情况下均能正常安装和运行。主要有覆盖安装、磁盘不足等等。

(10)本地化:测试特定目标区域设置的软件本地化质量。测试的内容主要包括软件本地化后的界面布局和软件翻译的语言质量,包含软件、文档和联机帮助等部分。

(11)冒烟测试:也可以叫准入测试,开发完成一个新版本,对该版本最基本的功能进行测试,保证基本的功能和流程能走通。如果不通过,则打回开发那边重新开发;如果通过测试,才会进行下一步的测试(功能测试,集成测试、系统测试等等)。

 

以上基本囊括了平时测试工作中的所有类型,后续会逐步更新各种测试的具体方式方法。

感谢大家阅读~~

 

雁初飞-20180830