软件测试

✍ dations ◷ 2024-11-06 00:23:42 #软件测试
软件测试(英语:software testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。据此,您可能会想,软件测试永远不可能完整的确立任意电脑软件的正确性。然而,在可计算理论(计算机科学的一个支派)一个简单的数学证明推断出下列结果:不可能完全解决所谓“死机”,指任意计算机程序是否会进入死循环,或者罢工并产生输出问题。换句话说,软件测试是一种实际输出与预期输出间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。软件测试有许多方法,但对复杂的产品运行有效测试不仅仅是研究过程,更是创造并严格遵守某些呆板步骤的大事。测试的其中一个定义:为了评估而质疑产品的过程;这里的“质疑”是测试员试着对产品做的事,而产品以测试者脚本行为反应作为回答。虽然大部分测试的智力过程不外乎回顾、检查,然而“测试”这个词意味着产品动态分析──让产品流畅运行。程序质量可能,而且通常会,随系统不同而有差异;不过某些公认特性是共通的:可靠性、稳定性、轻便性、易于维护、以及实用性。请引用至ISO标准ISO 9126有更详尽的说明。Alpha测试通常是阶段性的开发完成后所开始进行,一直持续到进入Beta测试阶段前的阶段。Alpha测试是一种验证测试,在模拟的环境中以模拟的数据来运行。在这个阶段中,通常是在开发单位由开发人员与测试的测试人员,以模拟或实际操作性的方式进行验证测试。在系统测试中通常先进行Alpha测试以验证信息系统符合用户以及设计需求所期望的功能。当Alpha阶段完成后,开发过程进入到Beta阶段,由公众参与的测试的阶段。Beta测试可称为确认测试,在一个真实的环境中以实际的数据来运行测试,以确认性能,系统运行有效率,系统撤销与备份作业正常,透过测试让信息系统日后可以更趋完善。封闭测试(Closed Beta,常简作封测或CB)是软件或服务等产品在开发完成后、将公开上市前的测试过程。相对于公开测试,封闭测试的主要用途是测试软件的功能和检查程序错误等等,因此通常只提供给少数人进行测试。有些公司会要求参与测试者签署保密协议,以避免测试的产品提前外流。MMORPG的封测结束之后,游戏公司常会将角色数据删除,但也有少数不删的。公开测试(Open Beta,常简作公测或OB),一般常指软件或服务等产品在正式上市前开放给不特定人试用,虽然原意是希望试用者能够提报bug,但并不是把试用者当做真正的验证人员。由于通常为免费性质,故常常能够吸引到大批的试用者参与,可视为另一种营销策略。另一方面也节省下测试人员的成本,和验证稳定度(对于多人使用的带宽及机器是否能负载,又称压力测试)的时间。Gamma测试是一个很少被提及的非正式测试阶段,该测试阶段对应的是对“存在缺陷”产品的测试。考虑到任何产品都可以被称为“存在缺陷”的产品(测试只能发现产品中存在的问题,不能说明产品不存在问题),因此这个概念存在一定的不确定性。 对Alpha和Beta测试常见的一个误解是“Beta测试=黑盒测试”。实际上,Alpha和Beta测试对应在软件产品发布之前的Alpha和Beta阶段,而白盒、黑盒和灰盒测试技术是从技术和方法层面对测试的描述,不应该将这两部分概念混淆。软件测试一般分为黑盒测试和白盒测试。黑盒测试(black-box testing),也称黑箱测试,是软件测试方法,测试应用程序的功能,而不是其内部结构或运作。测试者不需具备应用程序的代码、内部结构和编程语言的专门知识。测试者只需知道什么是系统应该做的事,即当键入一个特定的输入,可得到一定的输出。测试案例是依应用系统应该做的功能,照规范、规格或要求等设计。测试者选择有效输入和无效输入来验证是否正确的输出。此测试方法可适合大部分的软件测试,例如集成测试(integration testing)以及系统测试(system testing)。白盒测试(white-box testing,又称透明盒测试glass box testing、结构测试structural testing等)是一个测试软件的方法,测试应用程序的内部结构或运作,而不是测试应用程序的功能(即黑盒测试)。在白盒测试时,以编程语言的角度来设计测试案例。测试者输入数据验证数据流在程序中的流动路径,并确定适当的输出,类似测试电路中的节点。白箱测试可以应用于单元测试(unit testing)、集成测试(integration testing)和系统的软件测试流程,可测试在集成过程中每一单元之间的路径,或者主系统跟子系统中的测试。尽管这种测试的方法可以发现许多的错误或问题,它可能无法检测未使用部分的规范。压力测试常常和性能测试相混淆。它们主要不同点是,压力测试要求进行超过规定性能指标的测试。例如一个网站设计容量是100个人同时点击,压力测试就要是采用120个同时点击的条件测试。压力测试的通常判断准则:单元测试是对软件组成单元进行测试,其目的是检验软件基本组成单位的正确性,测试的对象是软件设计的最小单位:函数。集成测试也称综合测试、组装测试、联合测试,将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。其主要目的是检查软件单位之间的接口是否正确,集成测试的对象是已经经过单元测试的模块。系统测试主要包括功能测试、界面测试、可靠性测试、易用性测试、性能测试。 功能测试主要针对包括功能可用性、功能实现程度(功能流程&业务流程、数据处理&业务数据处理)方面测试。回归测试指在软件维护阶段,为了检测代码修改而引入的错误所进行的测试活动。回归测试是软件维护阶段的重要工作,有研究表明,回归测试带来的耗费占软件生命周期的1/3总费用以上。与普通的测试不同,在回归测试过程开始的时候,测试者有一个完整的测试用例集可供使用,因此,如何根据代码的修改情况对已有测试用例集进行有效的复用是回归测试研究的重要方向,此外,回归测试的研究方向还涉及自动化工具,面向对象回归测试,测试用例优先级,回归测试用例补充生成等。代码覆盖率原本是种白箱测试活动。目标软件通过特殊选项或者函数馆编译并且/或者在特殊环境(程序里每个函数都被映射回源代码里函数起点)下运行。这个过程允许开发员与品管员查看系统中在正常情况下极少或从未被读写的部分(例如:异常处理之类)并且帮助测试员确认最重要的情况(函数点)都被测过了。测试员可查看代码覆盖率测试结果来设计测试个案、相对应的输入或者设置组以增加重要函数的代码覆盖率。两种测试员常用的代码覆盖率形式:语句覆盖率(或称行覆盖率)以及路径覆盖率(或称边覆盖率)。行覆盖率回报到测试完成时,运行过哪些行,或者存储器大小。边覆盖率回报到测试完成时,哪些分支,或者程序决定点被运行过。正如覆盖率的“率”字所言,这两个都以百分比为单位。通常代码覆盖率的工具与函数馆要求的性能、存储器、或者其他资源开销不为正常的软件营运接受。因此它们通常只存在实验室里。又,你可能会想到软件里的许多类无法一一通过这些代码覆盖率测试,虽然代码覆盖程度可通过分析但不是直接测试。有些瑕疵也会受这些工具的影响。个别来说某些竞态条件(race condition)或者类似的对即时(real time)敏感度高的操作几乎不可能在代码覆盖率测试环境下侦知;相反的这类的瑕疵只会带来更多的测试码开销。测试自动化是使用软件工具和既定程序,对软件所进行的测试活动。

相关

  • 关节僵硬关节僵硬(英语:joint stiffness)可能是关节活动时产生疼痛的症状、或运动时活动范围变小的症状或关节活动范围减小的医学征象(或简称“体征”)。
  • 盖亚假说盖亚假说(英语:Gaia hypothesis)是由詹姆斯·洛夫洛克(James Lovelock)在1972年提出的一个假说。“地球整个表面,包括所有生命(生物圈),构成一个自我调节的整体,这就是我所说的盖亚。
  • 年鉴年鉴是系统汇辑一年内的重要资料,逐年编纂连续出版的资料性工具书。有人认为年鉴属于期刊性质的年刊。资料相对完整,内容具有权威性和时间性,具有资政、鉴戒和史料作用。中文的
  • 性嗜好性嗜好,或称性偏好、性癖好,是指个人对性对象、性行为的偏好。它是个体化的,以各人的内心喜好为标准 ,其因人而异且千差万别。特定的对象对个体产生强烈的性吸引,个体对特定的性
  • 航太航空航天工程学(aerospace engineering)是航空工程学与航天工程学的总称,涉及航空飞行器与航天飞行器有关的工程领域。它包含固体力学、流体力学(特别是空气动力学)、航天动力学
  • 俄罗斯行政区划俄罗斯行政区划可以作以下几种分类:俄罗斯本身是一个联邦国家,共由85个不同大小的联邦主体(俄语:субъекты)组成。这些联邦主体虽然大小不一,但都有着相同的联邦权利,同样有
  • 宾夕法尼亚宾夕法尼亚州是美国的州份之一,正式名称为“宾夕法尼亚联邦”(英语:Commonwealth of Pennsylvania),俗称“拱心石州”(英语:Keystone State),中文简称宾州。这个州的名称起源于英国移
  • 街口支付街口电子支付股份有限公司,简称街口电子支付,为街口金融科技股份有限公司的全资子公司,是中华民国电子支付系统业者之一,旗下有街口支付支付系统。于2015年由胡亦嘉所创立,2018年
  • 骄傲游行骄傲游行,或称同志游行(英语:Gay Pride),是城市的LGBT族群(包括男同性恋,女同性恋,双性恋、跨性别、双性人、酷儿、无性恋等)为了支持LGBT权利所举行的游行庆典。骄傲游行的地点及日
  • Nikon尼康株式会社(英文:Nikon,日语:株式会社ニコン)简称尼康(英文:Nikon),是一家日本大型光学仪器制造商,也是三菱集团的关系企业之一。“Nikon”此企业名称,为原始之商号“日本光学工业”(N