各种测试方法,黑盒测试、白盒测试,静态测试,动态测试


1.测试方法
软件测试方法的分类有很多种,以测试过程中程序执行状态为依据可分为静态测试 (Static
Testing,ST) 和动态测试 (Dynamic Testing,DT); 以具体实现算法细节和系统内部结构的相
关情况为根据可分黑盒测试、白盒测试和灰盒测试3类;从程序执行的方式来分类,可分为人
工测试 (Manual Testing,MT) 和自动化测试 (Automatic Testing,AT)。
(1)静态测试。静态测试是被测程序不运行,只依靠分析或检查源程序的语句、结构、过
程等来检查程序是否有错误。即通过对软件的需求规格说明书、设计说明书以及源程序做结构
分析和流程图分析,从而来找出错误。例如不匹配的参数,未定义的变量等。
(2)动态测试。动态测试与静态测试相对应,是通过运行被测试程序,对得到的运行结果
与预期的结果进行比较分析,同时分析运行效率和健壮性能等。这种方法可简单分为3个步骤:
构造测试实例、执行程序以及分析结果。
(3)黑盒测试。黑盒测试将被测程序看成是一个黑盒,工作人员在不考虑任何程序内部结
构和特性的条件下,根据需求规格说明书设计测试实例,并检查程序的功能是否能够按照规范
说明准确无误的运行。其主要是对软件界面和软件功能进行测试。对于黑盒测试行为必须加以
量化才能够有效的保证软件的质量。
(4)白盒测试。白盒测试主要是借助程序内部的逻辑和相关信息,通过检测内部动作是否
按照设计规格说明书的设定进行,检查每一条通路能否正常工作。白盒测试是从程序结构方面
出发对测试用例进行设计。主要用于检查各个逻辑结构是否合理,对应的模块独立路径是否正
常以及内部结构是否有效。常用的白盒测试法有控制流分析、数据流分析、路径分析、程序变
异等。根据测试用例的覆盖程度,分为语句覆盖、判定覆盖、分支覆盖和路径覆盖等。
(5)灰盒测试。灰盒测试介于黑盒与白盒测试之间。灰盒测试除了重视输出相对于输入的
正确性,也看重其内部的程序逻辑。但是,它不可能像白盒测试那样详细和完整。它只是简单
地靠一些象征性的现象或标志来判断其内部的运行情况,因此在内部结果出现错误,但输出结
果正确的情况下可以采取灰盒测试方法。因为在此情况下灰盒比白盒高效,比黑盒适用性广的
优势就凸显出来了。
(6)自动化测试。自动化测试就是软件测试的自动化,即在预先设定的条件下自动运行被
测程序,并分析运行结果。总的来说,这种测试方法就是将以人驱动的测试行为转化为机器执
行的一种过程。


2.测试阶段
从阶段上划分,软件测试可以分为单元测试、集成测试和系统测试,系统测试中又包含了
多种不同的测试种类,例如功能测试、性能测试、验收测试、压力测试等。
1.单元测试
主要是对该软件的模块进行测试,通过测试以发现该模块的功能不符合/不满足期望的情
况和编码错误。
由于模块的规模不大,功能单一,结构较简单,且测试人员可通过阅读源程序清楚知道其
逻辑结构,首先应通过静态测试方法,比如静态分析、代码审查等,对该模块的源程序进行分
析,按照模块的程序设计的控制流程图,以满足软件覆盖率要求的逻辑测试要求。另外,也可
采用黑盒测试方法提出一组基本的测试用例,再用白盒测试方法进行验证。若用黑盒测试方法
所产生的测试用例满足不了软件的覆盖要求,可采用白盒法增补出新的测试用例,以满足所需
的覆盖标准。其所需的覆盖标准应视模块的实际具体情况而定。对一些质量要求和可靠性要求
较高的模块,一般要满足所需条件的组合覆盖或者路径覆盖标准。
2.集成测试
集成测试通常要对已经严格按照程序设计要求和标准组装起来的模块同时进行测试,明确
该程序结构组装的正确性,发现和接口有关的问题。在这一阶段,一般采用白盒测试和黑盒测
试结合的方法进行测试,验证这一阶段设计的合理性以及需求功能的实现性。
3.系统测试
一般情况下,系统测试采用黑盒测试,以此来检查该系统是否符合软件需求。本阶段的主
要测试内容包括功能测试、性能测试、健壮性测试、安装或反安装测试、用户界面测试、压力
测试、可靠性及安全性测试等。为了有效保证这一阶段测试的客观性,必须由独立的测试小组
来进行相关的系统测试。另外,系统测试过程较为复杂,由于在系统测试阶段不断变更需求造
成功能的删除或增加,从而使程序不断出现相应的更改,而程序在更改后可能会出现新的问题,
或者原本没有问题的功能由于更改导致出现问题。所以,测试人员必须进行多轮回归测试。系
统测试的结束标志是测试工作已满足测试目标所规定的需求覆盖率,并且测试所发现的缺陷都
第5章 软件工程基础知识 207
已全部归零。
4.性能测试
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项
性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,
确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化
情况。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大
服务级别的测试。
5.验收测试
验收测试是最后一个阶段的测试,是软件产品投入正式交付前的测试工作。和系统测试相
比,验收测试是要满足用户需求或者与用户签订的合同(包括技术协议、技术协调单以及各个
阶段用户参与的评审意见等)的各项要求,此外系统测试是软件开发过程中一项工作,而验收
测试是由用户对要交付软件开展的一种测试工作。验收测试的主要目标是为用户展示所开发出
来的软件符合预定的要求和有关标准,并验证软件实际工作的有效性和可靠性,确保用户能用
该软件顺利完成既定的任务和功能。
通过了验收测试,该产品就可进行发布。但是,在实际交付给用户之后,开发人员是无法
预测该软件用户在实际运用过程中是如何使用该程序的,所以从用户的角度出发,测试人员还
应进行Alpha测试或Beta测试。 Alpha 测试是在软件开发环境下由用户进行的测试,或者模拟
实际操作环境进而进行的测试。 Alpha 测试主要是对软件产品的功能、局域化、界面、可使用性
以及性能等等方面进行评价。而Beta测试是在实际环境中由多个用户对其进行测试,并将在测
试过程中发现的错误有效反馈给软件开发者。
6.其他测试
除了上述各种常规的测试种类之外,近年来由于Web应用和 App 应用的大规模兴起,也出
现了一些新型的测试种类,例如 A B 测试、 Web测试中的链接测试、表单测试等。
(1)AB测试是为Web或 App界面或流程制作两个 (A/B) 或多个 (A/B/n) 版本,在同一
时间维度,分别让组成成分相同(相似)的访客群组(目标人群)随机的访问这些版本,收集
各群组的用户体验数据和业务数据,最后分析、评估出最好版本,正式采用。
(2)Web测试是软件测试的一部分,是针对Web 应用的一类测试。由于 Web应用与用户直
接相关,又通常需要承受长时间的大量操作,因此Web 项目的功能和性能都必须经过可靠的验
证。通过测试可以尽可能地多发现浏览器端和服务器端程序中的错误并及时加以修正,以保证
应用的质量。由于Web具有分布、异构、并发和平台无关的特性,因而它的测试要比普通程序
复杂得多,包含的测试种类也非常多。
(3)链接测试。链接是Web应用系统的一个主要特征,它是在页面之间切换和指导用户去
一些未知地址页面的主要手段。链接测试可分为3个方面。首先,测试所有链接是否按指示的
那样确实链接到了该链接的页面;其次,测试所链接的页面是否存在;最后,保证 Web应用系
统上没有孤立的页面。
(4)表单测试。当用户通过表单提交信息的时候,都希望表单能正常工作。如果使用表单
来进行在线注册,要确保提交按钮能正常工作,当注册完成后应返回注册成功的消息。如果使
用表单收集配送信息,应确保程序能够正确处理这些数据,最后能让用户收到信息。要测试这
些程序,需要验证服务器是否能正确保存这些数据,而且后台运行的程序能否正确解释和使用
这些信息。当用户使用表单进行用户注册、登录、信息提交等操作时,必须测试提交操作的完
整性,从而校验提交给服务器的信息的正确性。如果使用默认值,还要检验默认值的正确性。
如果表单只能接受指定的某些值,则也要进行测试。


教程也没说动态测试与白盒测试的关系.
(AI)
动态测试和白盒测试是软件测试中常用的两种测试方法,它们之间有一定的关系,但又有着各自独特的特点。

动态测试是指运行软件程序并观察其在不同输入下的行为,以验证其正确性和健壮性的测试方法。它主要关注软件程序的功能是否符合预期,以及是否存在各种错误和缺陷。动态测试通常通过黑盒测试和灰盒测试来进行,即只关注软件的接口和功能,而不考虑软件的内部实现。

白盒测试是指基于软件程序的内部结构和代码来设计测试用例并进行测试的方法。它主要关注软件程序的内部逻辑是否正确,以及代码是否符合规范和设计要求。白盒测试通常通过代码覆盖率和路径覆盖率等指标来评估测试的完整性和质量。

动态测试和白盒测试之间的关系是相互补充的。动态测试主要验证软件程序的功能是否正确,而白盒测试主要验证软件程序的内部逻辑是否正确。通过结合动态测试和白盒测试,可以全面地检查软件程序的功能和代码质量,提高软件的质量和可靠性。

总的来说,动态测试和白盒测试是软件测试中不可或缺的两种测试方法,它们可以相互结合,提高软件测试的效果和效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值