软件测试之测试术语

来源:互联网 发布:淘宝怎么卖东西 编辑:程序博客网 时间:2024/05/21 11:03

软件测试
软件测试,指通过某种手段来运行或测试某个系统的过程。其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。软件测试是为了发现错误而执行程序的过程。

测试用例
指的是在测试执行之前设计的一套详细的测试方案,包括测试环境、测试步骤、测试数据和预期结果。
用一个等式来简单表示:测试用例=输入+输出+测试环境。其中,“输入”包括测试数据和操作步骤;“输出”指的是期望结果;测试环境指的是系统环境设置。

根据测试方法可划分为:黑盒测试、白盒测试、灰盒测试。

黑盒测试
黑盒测试,指的是把被测的软件看作是一个黑盒子,不去关心盒子里面的结构是什么样,只关心输入数据和输出结果。
它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。

白盒测试
白盒测试,指的是把盒子盖子打开,去研究里面的源代码和程序结果。
它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。

灰盒测试
灰盒测试介于黑盒测试与白盒测试之间。
可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒的方法。

根据测试流程/开发阶段可划分为:单元测试、集成测试、系统测试、验收测试。

单元测试
单元测试是对软件中的基本组成单位进行的测试。目的是检验软件基本组成单位的正确性。

集成测试
集成测试是在软件系统集成过程中所进行的测试。目的是检查软件单位之间的接口是否正确。

系统测试
系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等是否满足其规约所指定的要求。

验收测试
验收测试是部署软件之前的最后一个测试操作。目的是确保软件准备就绪,向软件购买者展示该软件系统满足其用户的需求。

根据测试的侧重可划分为:功能测试、性能测试。

功能测试
检查实际的功能是否符合需求。

性能测试
通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

性能测试是相对功能测试来说的。它们之间最本质的区别就是:对系统的处理能力是否够成压力。如果一个用户的一个操作(比如超大数据量的查询)对系统够成了压力,也可以视其为性能测试。
软件的性能包括很多方面,主要有时间性能和空间性能两种。
时间性能:主要是指软件的一个具体的响应时间。比如一个登录所需要的时间,一个交易所需要的时间等。
空间性能:主要指软件运行时所消耗的系统资源,比如硬件资源,CPU、内存,网络带宽消耗等。

根据测试是否使用自动化工具划分:手工测试与自动化测试 。

手工测试
人工一个一个的去执行测试用例,通过键盘鼠标等输入一些参数,查看返回结果是否符合预期结果。在目前的测试领域,手工测试仍然是无法替代的一种测试方法。

自动化测试
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。自动化测试是对手工测试的一种补充,因为很多数据的正确性、GUI、业务逻辑等都离不开测试人员的人工判断。

自动化测试又可分为功能自动化测试与性能自动化测试。
功能自动化测试,指通过相关的测试技术,用一段程序来测试一个软件的功能,这样就可以重复执行程序来进行重复的测试。如果一个软件一小部分发生改变,我们只要修改一部分代码,就可以重复的对整个软件进行功能测试。这样就大大的提高了测试效率。
性能自动化测试,除了早期阶段,现在的性能测试工作都是通过性能测试工具辅助完成的。能过工具可以模拟成千上万的用户向系统发送请求,用来验证系统的处理能力。

其他测试术语,

冒烟测试
这一术语源自硬件行业。任何新电路板焊好后,先通电检查,如果存在设计缺陷,电路板可能会短路冒烟。在软件中,冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。冒烟测试的执行者是版本编译人员。

回归测试
回归测试是指修改了旧代码后,重新测试以确认修改后没有引入新的错误或导致其他代码产生错误。

随机测试
指测试中的所有输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。随机测试可以发现一些隐蔽的错误,但是也有很多缺点,比如测试不系统,无法统计代码覆盖率和需求覆盖率,发现的问题难以重现。

A/B测试
简单来说,A/B测试指为同一个目标制定两个方案(比如两个页面),让一部分用户使用A方案,另一部分用户使用B方案,记录下用户的使用情况,看哪个方案更符合设计。
A/B测试的核心就是:确定两个元素或版本(A和B)哪个版本更好,你需要同时实验两个版本。最后,选择最好的版本使用。
可借助A/B测试来优化产品、提高转化率。

原创粉丝点击