族谱网 头条 人物百科

软件测试

2020-10-16
出处:族谱网
作者:阿族小谱
浏览:660
转发:0
评论:0
测试的进程Alpha测试Alpha测试通常是阶段性的开发完成后所开始进行,一直持续到进入Beta测试阶段前的阶段。Alpha测试是一种验证测试,在模拟的环境中以模拟的数据来运行。在这个阶段中,通常是在开发单位由开发人员与测试的测试人员,以模拟或实际操作性的方式进行验证测试。Beta测试在系统测试中通常先进行Alpha测试以验证信息系统匹配用户以及设计需求所期望的功能。当Alpha阶段完成后,开发过程进入到Beta阶段,由公众参与的测试的阶段。Beta测试可称为确认测试,在一个真实的环境中以实际的数据来运行测试,以确认性能,系统运行有效率,系统撤消与备份作业正常,通过测试让信息系统日后可以更趋完善。封测与公测封闭测试(ClosedBeta,常简作封测或CB)是软件或服务等产品在开发完成后、将公开上市前的测试过程。相对于公开测试,封闭测试的主要用途是测试软件的功能和检查程序错误等等,因此通常只...

测试的进程

Alpha测试

Alpha测试通常是阶段性的开发完成后所开始进行,一直持续到进入Beta测试阶段前的阶段。Alpha测试是一种验证测试,在模拟的环境中以模拟的数据来运行。

在这个阶段中,通常是在开发单位由开发人员与测试的测试人员,以模拟或实际操作性的方式进行验证测试。

Beta测试

在系统测试中通常先进行Alpha测试以验证信息系统匹配用户以及设计需求所期望的功能。当Alpha阶段完成后,开发过程进入到Beta阶段,由公众参与的测试的阶段。Beta测试可称为确认测试,在一个真实的环境中以实际的数据来运行测试,以确认性能,系统运行有效率,系统撤消与备份作业正常,通过测试让信息系统日后可以更趋完善。

封测与公测

封闭测试(Closed Beta,常简作 封测 或 CB )是软件或服务等产品在开发完成后、将公开上市前的测试过程。相对于公开测试,封闭测试的主要用途是测试软件的功能和检查程序错误等等,因此通常只提供给少数人进行测试。有些公司会要求参与测试者签署保密协议,以避免测试的产品提前外流。MMORPG的封测结束之后,游戏公司常会将角色数据删除,但也有少数不删的。

公开测试(Open Beta,常简作 公测 或 OB ),一般常指软件或服务等产品在正式上市前开放给不特定人试用,虽然原意是希望试用者能够提报bug,但并不是把试用者当做真正的验证人员。由于通常为免费性质,故常常能够吸引到大批的试用者参与,可视为另一种营销策略。另一方面也节省下测试人员的成本,和验证稳定度(对于多人使用的带宽及机器是否能负载,又称压力测试)的时间。

Gamma测试

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)敏感度高的操作几乎不可能在代码覆盖率测试环境下侦知;相反的这类的瑕疵只会带来更多的测试码开销。

自动化的测试

测试自动化是使用软件工具和既定程序,对软件所进行的测试活动。

参考文献

 

郑人杰,《计算机软件测试技术》,清华大学出版社

参见

程序错误

黑盒测试

白盒测试

软件测试模型

软件质量

软件验证及确认

 


免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。

——— 没有了 ———
编辑:阿族小谱
发表评论
写好了,提交
{{item.label}}
{{commentTotal}}条评论
{{item.userName}}
发布时间:{{item.time}}
{{item.content}}
回复
举报
点击加载更多
打赏作者
“感谢您的打赏,我会更努力的创作”
— 请选择您要打赏的金额 —
{{item.label}}
{{item.label}}
打赏成功!
“感谢您的打赏,我会更努力的创作”
返回

更多文章

更多精彩文章
打赏
私信

推荐阅读

· 垂线测试
相关条目水平线测试函数图像
· 肌肉测试
WhatIsMuscleTesting?Muscletestingisapracticethatisusedtotapintothesubconsciousmindinordertoanswerquestionsaboutphysical,mental,andemotionalwell-being.It’sanoninvasivemethodthatcanbeusedtodeterminetheunderlyingcausesofailmentsandafflictionsanindividualmightbesufferingfrom,identifyingeverythingfromnutritionalneedstoTrappedEmotions.HowMuscleTestingWorksOurbodiesliveandfunctiononprinciplesofbiomagneti...
· 素性测试
素数素数是除了自身和1以外,没有其它素数因子的自然数。自从欧几里得证明了有无穷个素数以后,人们就企图寻找一个可以构造所有素数的公式,寻找判定一个自然数是不是素数的方法。因为素数的地位非常重要。素数判定的历史鉴别一个自然数是素数还是合数,这个问题在中世纪就引起人们注意,当时人们试图寻找质数公式,到了高斯时代,基本上确认了简单的质数公式是不存在的,因此,高斯认为对素性判定是一个相当困难的问题。从此以后,这个问题吸引了大批数学家。素性判断算法可分为两大类,确定性算法及随机算法。前者可给出确定的结果但通常较慢,后者则反之。详见以下列表。确定型算法试除法﹝埃拉托斯特尼筛法﹞/*埃拉托斯特尼篩法*/intis_prime(intx){inti;if(x<=1)/*1不是質數,且不考慮負整數與0,故輸入x<=1時輸出為假*/{return0;}for(i=2;i*i<=x;++i){if(x%i==0)...
· 图灵测试
历史机器是否有可能思考这个问题历史悠久,这是二元并存理念和唯物论思想之间的区别。笛卡尔在1637年《谈谈方法》中预言图灵测试。笛卡尔指出,机器能够与人类互动,但认为这样的机器不能作出适当的反应,但是任何人都可以。因此,笛卡尔借此区分机器与人类。笛卡尔没有考虑到机器语言能力未来能够被克服。狄德罗设定图灵测试标准:“如果他们发现一只鹦鹉可以回答一切问题,我会毫不犹豫宣布它存在智慧。”这并不意味着他同意这一点,但它已经是唯物主义者当时普遍的说法。根据二元论者心态,心灵是非物理物质(最起码具有非物理性),因此,不能以纯物理来解释。根据唯物主义,头脑可以用物理解释,这让那些人工智能可能性产生。1936年,哲学家阿尔弗雷德·艾耶尔思考心灵哲学问题:我们怎么知道其他人曾有同样的体验。在《语言,真理与逻辑》中,艾尔建议有意识的人类及无意识的机器之间的区别。1956年达特茅斯会议之前,英国研究者已经探索十几...
· 软件
编程语言以最低级的角度来看,可执行文件中包括了针对特定微处理器(一般会是CPU)的机器码,机器码包括了一连串二进制的数值,使处理器从目前的状态变换到下一个状态。例如指令可能会修改电脑内一特定位置中的数值,其效果是用户无法直接观测到的,指令也可能让屏幕上显示特定数据,这种状态变换是用户可以看到的。处理器会依照顺序处理收到的指令,不过处理器的处理也可能受到中断,或是因为流程控制指令而改变其要处理的指令。机器码是许多二进制的数值,不方便工程师阅读及开发程序,因此有汇编语言,将机器码转换为人可以看懂的助记符。不过现在多半的软件是用高级语言撰写,比较类似自然语言,对人类而言比机器码或汇编语言要简单,方便人类使用。高级语言一般会用直译或编译的方式,将软件的源代码转换为机器码。源代码是指以编程语言所撰写的一系列人类可阅读的电脑指令,以实现出软件的行为和功能。软件分类一個說明電腦中作業系統及應用軟體層次的...

关于我们

关注族谱网 微信公众号,每日及时查看相关推荐,订阅互动等。

APP下载

下载族谱APP 微信公众号,每日及时查看
扫一扫添加客服微信