软件测试笔记(一)理论篇

软件测试笔记(一)理论篇web

有句话是这么说的:能动手就别哔哔,尤为是在工做节奏堪比跑马的今天,你们都推崇实干精神,能解决问题就好,去他的理论。可是无能否认的是,良好的理论素养不管是解决工做中遇到的问题,仍是将来的职业发展,都帮助甚大。本文整理汇总了软件测试行业中常见的一些测试理论,供你们参考。编程

一、软件测试按照测试分类有:黑盒测试和白盒测试。网络

黑盒测试编程语言

图片描述

黑盒测试也称功能测试,它是经过测试来检测每一个功能是否都能正常使用。在测试中,把程序看做一个不能打开的黑盒子,在彻底不考虑程序内部结构和内部特性的状况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。很明显,若是外部特性自己设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。
新人入行基本上都是采用黑盒测试的方法来入门的。函数

白盒测试
图片描述工具

白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运做的。"白盒"法全面了解程序内部逻辑结构、对全部逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。性能

我们以空调为例来看什么是黑盒测试,什么是白盒测试:
当一台新的空调组装完成,质监部门须要对这台空调的各个功能进行测试,好比开关机是否正常,制冷制热功能是否正常,定时功能是否正常,等等,并将测试的结果一一记录下来,若是有问题,及时反馈给设计部来解决,这就是黑盒测试的范畴。
对于空调的设计师们,他们的测试可能就会更复杂一些,除了对空调的各项功能进行测试以外,还要从空调的内在原理来分析,他们甚至会跟踪空调的内部实现代码,分析空调的各项数据状态来看是否正常运行,而不仅是从表面功能来看,这就是白盒测试的范畴。单元测试

二、按照测试的阶段能够分为:单元测试、集成测试、确认测试和系统测试及验收测试测试

单元测试
图片描述spa

单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,通常来讲,要根据实际状况去断定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中能够指一个窗口或一个菜单等。总的来讲,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程当中要进行的最低级别的测试活动,软件的独立单元将在与程序的其余部分相隔离的状况下进行测试。
在一种传统的结构化编程语言中,好比C,要进行测试的单元通常是函数或子过程。在像C++这样的面向对象的语言中, 要进行测试的基本单元是类。对Ada语言来讲,开发人员能够选择是在独立的过程和函数,仍是在Ada包的级别上进行单元测试。单元测试的原则一样被扩展到第四代语言(4GL)的开发中,在这里基本单元被典型地划分为一个菜单或显示界面。
常常与单元测试联系起来的另一些开发活动包括代码走读(Code review),静态分析(Static analysis)和动态分析(Dynamic analysis)。静态分析就是对软件的源代码进行研读,查找错误或收集一些度量数据,并不须要对代码进行编译和执行。动态分析就是经过观察软件运行时的动做,来提供执行跟踪,时间分析,以及测试覆盖度方面的信息。

集成测试

图片描述

集成测试,也叫组装测试或联合测试。在单元测试的基础上,将全部模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。
实践代表,一些模块虽然可以单独地工做,但并不能保证链接起来也能正常的工做。一些局部反映不出来的问题,在全局上极可能暴露出来。

确认测试
确认测试的目的是向将来的用户代表系统可以像预约要求那样工做。经集成测试后,已经按照设计把全部的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是确认测试的任务,即软件的功能和性能如同用户所合理期待的那样。

系统测试

图片描述

系统测试,英文是System Testing。是将已经确认的软件、计算机硬件、外设、网络等其余元素结合在一块儿,进行信息系统的各类组装测试和确认测试,系统测试是针对整个产品系统进行的测试,目的是验证系统是否知足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案。系统测试发现问题以后要通过调试找出错误缘由和位置,而后进行改正。是基于系统总体需求说明书的黑盒类测试,应覆盖系统全部联合的部件。对象不只仅包括需测试的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等。

验收测试

图片描述

验收测试是部署软件以前的最后一个测试操做。在软件产品完成了单元测试、集成测试和系统测试以后,产品发布以前所进行的软件测试活动。它是技术测试的最后一个阶段,也称为交付测试。验收测试的目的是确保软件准备就绪,而且可让最终用户将其用于执行软件的既定功能和任务。
验收测试是向将来的用户代表系统可以像预约要求那样工做。经集成测试后,已经按照设计把全部的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是验收测试的任务,即软件的功能和性能如同用户所合理期待的那样。
验收测试,系统开发生命周期方法论的一个阶段,这时相关的用户和独立测试人员根据测试计划和结果对系统进行测试和接收。它让系统用户决定是否接收系统。它是一项肯定产品是否可以知足合同或用户所规定需求的测试。这是管理性和防护性控制。
在工程及其余相关领域中,验收测试是指确认一系统是否符合设计规格或契约之需求内容的测试,可能会包括化学测试、物理测试或是性能测试。在系统工程中验收测试可能包括在系统(例如一套软件系统、许多机械零件或是一批化学制品)交付前的黑箱测试。软件开发者常会将系统开发者进行的验收测试和客户在接受产品前进行的验收测试分开。后者通常会称为使用者验收测试、终端客户测试、实机(验收)测试、现场(验收)测试。在进行主要测试程序以前,经常使用冒烟测试做为一个此阶段的验收测试。

三、其余的测试理论还有:自动化测试、回归测试、冒烟测试、性能测试

自动化测试
图片描述

通常是指软件测试的自动化,软件测试就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。一般,在设计了测试用例并经过评审以后,由测试人员根据测试用例中描述的规程一步步执行测试,获得实际结果与指望结果的比较。在此过程当中,为了节省人力、时间或硬件资源,提升测试效率,便引入了自动化测试的概念。
自动化测试分为web自动化测试、接口自动化测试、APP自动化测试。

回归测试
图片描述

回归测试是指修改了旧代码后,从新进行测试以确认修改没有引入新的错误或致使其余代码产生错误。自动回归测试将大幅下降系统测试、维护升级等阶段的成本。回归测试做为软件生命周期的一个组成部分,在整个软件测试过程当中占有很大的工做量比重,软件开发的各个阶段都会进行屡次回归测试。在渐进和快速迭代开发中,新版本的连续发布使回归测试进行的更加频繁,而在极端编程方法中,更是要求天天都进行若干次回归测试。所以,经过选择正确的回归测试策略来改进回归测试的效率和有效性是颇有意义的。

冒烟测试
图片描述

这一术语源自硬件行业。对一个硬件或硬件组件进行更改或修复后,直接给设备加电。若是没有冒烟,则该组件就经过了测试。在软件中,“冒烟测试”这一术语描述的是在将代码更改嵌入到产品的源树中以前对这些更改进行验证的过程。在检查了代码后,冒烟测试是肯定和修复软件缺陷的最经济有效的方法。冒烟测试设计用于确认代码中的更改会按预期运行,且不会破坏整个版本的稳定性。

性能测试
图片描述

性能测试是经过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,二者能够结合进行。经过负载测试,肯定在各类工做负载下系统的性能,目标是测试当负载逐渐增长时,系统各项性能指标的变化状况。压力测试是经过肯定一个系统的瓶颈或者不能接受的性能点,来得到系统能提供的最大服务级别的测试。

相关文章
相关标签/搜索