(1)人工检测:是指不依靠计算机而是靠人工审查程序或评审软件,包括代码检查、静态结构分析和代码质量度量等;
(2)计算机辅助静态分析:利用静态分析工具对被测试程序进行特性分析,从程序中提取一些信息,以便检查程序逻辑的各种缺陷和可疑的程序构造。
静态测试包括代码检查、静态结构分析、代码质量度量等。它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行。
扩展资料:
代码检查包括代码走查、桌面检查、代码审查等,主要检查代码和设计的一致性,代码对标准的遵循、可读性,代码的逻辑表达的正确性,代码结构的合理性等方面;可以发现违背程序编写标准的问题,程序中不安全、不明确和模糊的部分,找出程序中不可移植部分、违背程序编程风格的问题,包括变量检查、命名和类型审查、程序逻辑审查、程序语法检查和程序结构检查等内容。
在实际使用中,代码检查比动态测试更有效率,能快速找到缺陷,发现30%~70%的逻辑设计和编码缺陷;代码检查看到的是问题本身而非征兆。但是代码检查非常耗费时间,而且代码检查需要知识和经验的积累。
代码检查应在编译和动态测试之前进行,在检查前,应准备好需求描述文档、程序设计文档、程序的源代码清单、代码编码标准和代码缺陷检查表等。静态测试具有的发现缺陷早、降低返工成本、覆盖重点和发现缺陷的概率高的优点以及耗时长、不能测试依赖和技术能力要求高的缺点。
1、恢复测试
恢复测试主要检查系统的容错能力。当系统出错时,能否在指定时间间隔内修正错误并重新启动系统。恢复测试首先要采用各种办法强迫系统失败,然后验证系统是否能尽快恢复。对于自动恢复需验证重新初始化(reinitialization)、检查点(checkpointing mechanisms)、数据恢复(data recovery)和重新启动 (restart)等机制的正确性;对于人工干预的恢复系统,还需估测平均修复时间,确定其是否在可接受的范围内。
2、安全测试
安全测试检查系统对非法侵入的防范能力。安全测试期间,测试人员假扮非法入侵者,采用各种办法试图突破防线。例如,①想方设法截取或破译口令;②专门定做软件破坏系统的保护机制;③故意导致系统失败,企图趁恢复之机非法进入;④试图通过浏览非保密数据,推导所需信息,等等。理论上讲,只要有足够的时间和资源,没有不可进入的系统。因此系统安全设计的准则是,使非法侵入的代价超过被保护信息的价值。此时非法侵入者已无利可图。
3、强度测试
强度测试检查程序对异常情况的抵抗能力。强度测试总是迫使系统在异常的资源配置下运行。例如,①当中断的正常频率为每秒一至两个时,运行每秒产生十个中断的测试用例;②定量地增长数据输入率,检查输入子功能的反映能力;③运行需要最大存储空间(或其他资源)的测试用例;④运行可能导致虚存 *** 作系统崩溃或磁盘数据剧烈抖动的测试用例,等等。
4、 性能测试
对于那些实时和嵌入式系统,软件部分即使满足功能要求,也未必能够满足性能要求,虽然从单元测试起,每一测试步骤都包含性能测试,但只有当系统真正集成之后,在真实环境中才能全面、可靠地测试运行性能系统性能测试是为了完成这一任务。性能测试有时与强度测试相结合,经常需要其他软硬件的配套支持。
1、按是否查看程序内部结构分为:
(1)黑盒测试(black-box
testing):只关心输入和输出的结果
(2)白盒测试(white-box
testing):去研究里面的源代码和程序结构
2、按是否运行程序分为:
(1)静态测试(static
testing):是指不实际运行被测软件,而只是静态地检查程序代码、界面或文档可能存在的错误的过程。
静态测试包括:
对于代码测试,主要是测试代码是否符合相应的标准和规范。
对于界面测试,主要测试软件的实际界面与需求中的说明是否相符。
对于文档测试,主要测试用户手册和需求说明是否真正符合用户的实际需求。
(5)动态测试(dynamic
testing),是指实际运行被测程序,输入相应的测试数据,检查输出结果和预期结果是否相符的过程
3、按阶段划分:
(1)单元测试(unit
testing),是指对软件中的最小可测试单元进行检查和验证。
桩模块(stud)是指模拟被测模块所调用的模块,驱动模块(driver)是指模拟被测模块的上级模块,驱动模块用来接收测试数据,启动被测模块并输出结果。
(2)集成测试(integration
testing),是单元测试的下一阶段,是指将通过测试的单元模块组装成系统或子系统,再进行测试,重点测试不同模块的接口部门。
集成测试就是用来检查各个单元模块结合到一起能否协同配合,正常运行。
(3)系统测试(system
testing),指的是将整个软件系统看做一个整体进行测试,包括对功能、性能,以及软件所运行的软硬件环境进行测试。
系统测试的主要依据是《系统需求规格说明书》文档。
(4)验收测试(acceptance
testing),指的是在系统测试的后期,以用户测试为主,或有测试人员等质量保障人员共同参与的测试,它也是软件正式交给用户使用的最后一道工序。
验收测试又分为a测试和beta测试,其中a测试指的是由用户、
测试人员、开发人员等共同参与的内部测试,而beta测试指的是内测后的公测,即完全交给最终用户测试。
4、黑盒测试分为功能测试和性能测试:
1)功能测试(function
testing),是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求。
包括逻辑功能测试(logic
function
testing)
界面测试(UI
testing)UI=User
Interface
易用性测试(usability
testing):是指从软件使用的合理性和方便性等角度对软件系统进行检查,来发现软件中不方便用户使用的地方。
兼容性测试(compatibility
testing):包括硬件兼容性测试和软件兼容性测试
2)性能测试(performance
testing)
软件的性能主要有时间性能和空间性能两种
时间性能:主要指软件的一个具体事务的响应时间(respond
time)。
空间性能:主要指软件运行时所消耗的系统资源。
软件性能测试分为:
一般性能测试:指的是让被测系统在正常的软硬件环境下运行,不向其施加任何压力的性能测试。
稳定性测试也叫可靠性测试(reliability
testing):是指连续运行被测系统检查系统运行时的稳定程度。
负载测试(load
testing):是指让被测系统在其能忍受的压力的极限范围之内连续运行,来测试系统的稳定性。
压力测试(stress
testing):是指持续不断的给被测系统增加压力,直到将被测系统压垮为止,用来测试系统所能承受的最大压力。(Validate
the
system
or
software
can
allowed
the
biggest
stress)
5、其他测试类型:
回归测试(regression
testing)是指对软件的新的版本测试时,重复执行上一个版本测试时的用例。(When
a
new
build
or
release
is
deployed,
repeat
all
the
test
cases
which
has
executed
in
the
last
build
or
release)
冒烟测试(smoke
testing),是指在对一个新版本进行大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。(validate
the
major
function
is
deployed
or
not
in
software
of
system
when
a
new
build
or
release
is
implement)
随机测试(random
testing),是指测试中所有的输入数据都是随机生成的,其目的是模拟用户的真实 *** 作,并发现一些边缘性的错误。(means
or
all
the
test
data
is
random,
to
validate
the
some
edge
bugs)
控制测试包括两个方面:一是控制设计测试,即对被审计单位的内部控制政策和程序的设计是否适当所进行的审计程序。目的是确定被审计单位的内部控制是否能够防止和发现特定财务报表认定的重大错报或漏报。
二是控制执行测试,即被审计单位的内部控制政策和程序是否发挥应有的作用。如果被审计单位的控制政策和程序未能发挥其应有的作用,即使设计得再完整,也不能减少财务报表中出现重大错报或漏报的风险。
实质性程序采用细节测试,对各类交易、账户余额、列报的具体细节进行测试,目的在于直接识别财务报表认定是否存在错报。
扩展资料
实质性程序的时间选择与控制性试验的时间选择既有相同之处,也有不同之处。共同点是,这两类程序都面临对中期审计证据和以往审计获得的审计证据的审议。两者的区别在于:
1、在控制测试过程中,有一种更为“正常”的方式在中期实施控制测试,并获取有关中期控制 *** 作有效性的审计证据;而且,由于实质性程序的目的是更直接地发现重大错报,因此需要考虑到实质性程序在过渡期间的成本,利益平衡;
2、在本次控制测试中,以往审计获得的关于控制 *** 作有效性的审计证据受到很大限制;以往审计通过实质性程序获得的审计证据,本标准采取了更加谨慎的态度和更加严格的限制。
参考资料来源:百度百科-控制测试
参考资料来源:百度百科-实质性程序
以上就是关于软件工程 静态测试的主要方法有哪些全部的内容,包括:软件工程 静态测试的主要方法有哪些、测试方法有哪些,各有什么优缺点、软件测试的方法有哪几种等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)