标题:探讨软件测试中的五大关键性能度量,全面解析软件测试方法的多样类型

软件检验的途径总共有多少种

1、依据是否关注内部构造来区分

(1)透明盒检验:亦称结构检验或逻辑导向检验,是一种依据程序内部逻辑结构和编码结构,设计检验数据并完成检验的一种检验方法。

(2)暗盒检验:亦称数据导向检验,将检验对象视作不可见的暗盒,在完全不考虑程序内部结构和处理过程的情况下,检验者仅依据程序功能的需求规范考虑,确定检验用例和推断检验结果的正确性,它是站在使用软件或程序的角度,从输入数据与输出数据的对应关系出发进行的检验。

(3)半透明盒检验:是一种综合检验法,它将“暗盒”检验与“透明盒”检验结合在一起,是基于程序运行时的外部表现又结合内部逻辑结构来设计用例,执行程序并采集路径执行信息和外部用户接口结果的检验技术。

2、依据是否执行代码来区分

(1)静态检验:指不运行被检验程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检验程序的正确性。

(2)动态检验:是指通过运行被检验程序,检验运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能指标。

3、依据开发过程级别来区分

(1)单元检验:又称模块检验,是针对软件设计的最小单位----程序模块或功能模块,进行正确性检验的检验工作。其目的在于检验程序各模块是否存在各种差错,是否能正确地实现了其功能,满足其性能和接口要求。

(2)集成检验:又叫组装检验或联合,是单元检验的多级扩展,是在单元检验的基础上进行的一种有序检验。旨在检验软件单元之间的接口关系,以期望通过检验发现各软件单元接口之间存在的问题,最终把经过检验的单元组成符合设计要求的软件。

(3)系统检验:是为判断系统是否符合要求而对集成的软、硬件系统进行的检验活动、它是将已经集成好的软件系统,作为基于整个计算机系统的一个元素,与计算机硬件、外设、某些支持软件、人员、数据等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装检验和确认检验。

在系统检验中,对于具体的检验类型有:

(1)功能检验:对软件需求规格说明书中的功能需求逐项进行的检验,以验证功能是否满足要求。

(2)性能检验:对软件需求规格说明书的功能需求逐项进行的检验,以验证功能是否满足要求。

(3)接口检验:对软件需求规格说明中的接口需求逐项进行的检验。

(4)人机交互界面检验:对所有人机交互界面提供的操作和显示界面进行的检验,以检验是否满足用户的需求。

(5)强度检验:强制软件运行在异常乃至发生故障的情况下(设计的极限状态到超出极限),检验软件可以运行到何种程度的检验。

(6)余量检验:对软件是否达到规格说明中要求的余量的检验。

(7)安全性检验:检验软件中已存在的安全性、安全保密性措施是否有效的检验,

(8)可靠性检验:在真实的或仿真的环境中,为做出软件可靠性估计而对软件进行的功能(其输入覆盖和环境覆盖一般大于普通的功能检验)

(9)恢复性检验:对有恢复或重置功能的软件的每一类导致恢复或重置的情况,逐一进行的检验。

(10)边界检验:对软件处在边界或端点情况下运行状态的检验。

(11)数据处理检验:对完成专门数据处理功能所进行的检验。

(12)安装性检验:对安装过程是否符合安装规程的检验,以发现安装过程中的错误。

(13)容量检验:检验软件的能力最高能达到什么程度的检验。

(14)互操作性检验:为验证不同软件之间的互操作能力而进行的检验。

(15)敏感性检验:为发现在有效输入类中可能引起某种不稳定性或不正常处理的某些数据的组合而进行的检验。

(16)标准符合性检验:验证软件与相关国家标准或规范(如军用标准、国家标准、行业标准及国际标准)一致性的检验。

(17)兼容性检验:验证软件在规定条件下与若干个实体共同使用或实现数据格式转换时能满足有关要求能力的检验。

(18)中文本地化检验:验证软件在不降低原有能力的条件下,处理中文能力的检验。

4、依据执行过程是否需要人工干预来区分

(1)人工检验:就是检验人员按照事先为覆盖被检验软件需求而编写的检验用例,根据检验大纲中所描述的检验步骤和方法,人工地一个一个地输入执行,包括与被检验软件进行交互(如输入检验数据、记录检验结果等),然后观察检验结果,看被检验程序是否存在问题,或在执行过程中是否会有一场发生,属于比较原始但是必须执行的一个步骤。

(2)自动化检验:实际上是将大量的重复性的检验工作交给计算机去完成,通常是使用自动化检验工具来模拟手动检验步骤,执行用某种程序设计语言编写的过程(全自动检验就是指在自动检验过程中,不需要人工干预,由程序自动完成检验的全过程;半自动检验就是指在自动检验过程中,需要手动输入检验用例或选择检验路径,再由自动检验程序按照人工指定的要求完成自动检验)

5、依据检验实施组织来区分

(1)开发检验:开发人员进行的检验

(2)用户检验:用户方进行的检验

(3)第三方检验:有别于开发人员或用户进行的检验,由专业的第三方承担的检验,目的是为了保证检验工作的客观性

6、依据检验所处的环境来区分

(1)阿尔法检验:是由一个用户在开发环境下进行的检验,也可以是公司内部的用户在模拟实际操作环境下进行的检验

(1)阿尔法测试:系由一名用户在开发情境中执行的检验,亦或是公司内部用户在仿真真实操作情境下所进行的检验。

(2)贝塔测试:系指用户公司组织各类典型终端用户在日常活动中实际运用贝塔版本,并需用户反馈。

扩展资料

软件测试的范畴:

1 收集需求、功能设计、内部设计说明书及其他必要的文档。

2 收集预算和进度要求。

3 明确与项目相关的人员及其职责、报告要求、所需的标准和流程(如发行流程、变更流程等)。

4 明确应用软件的高风险区域,设定优先级、明确测试涉及的范围和限制。

5 明确测试的步骤和方法——部件、集成、功能、系统、负载、可用性等各类型测试。

6 明确对测试环境的要求(硬件、软件、通信等)。

7 明确所需的测试工具(testware),包括记录/回放工具、覆盖分析、测试跟踪、问题/错误跟踪等。

8 明确对测试输入数据的要求。

9 分配任务和任务负责人,以及所需的劳动力。

10 设定大致的时间表、期限和里程碑。

11 明确输入环境的类别、边界值分析、错误类别。

12 准备测试计划文件并对计划进行必要的回顾。

13 准备白盒测试案例。

14 对测试案例进行必要的回顾/调查/计划。

15 准备测试环境和测试工具,获取必需的用户手册/参考文件/结构指南/安装指南,建立测试跟踪过程,建立日志和档案、建立或获取测试输入数据。

16 获取并安装软件版本。

17 进行测试。

18 评估和报告结果。

19 跟踪问题/错误,并解决它。

20 如有必要,重新进行测试。

21 在整个生命周期内维护和修改测试计划、测试案例、测试环境、和测试工具。

参考资料:百度百科-软件测试

软件测试工程师所需具备的技能

首先需学习较为流行的开发语言,如:python,这是为了自动化测试的学习奠定基础,然而软件测试工程师只需能用python进行简单的开发即可,无需像软件开发工程师一样把python学得特别精通。

其次需学习LoadRunner、JMeter、Selenium、Appium、Postman、Fiddler等测试工具。第三需学习目前主流的数据库系统MySQL,熟悉数据库的基本结构和原理,熟练掌握数据库的常用操作技术。最后软件测试中有五大测试方法,分别为:功能测试、web自动化测试、移动自动化测试、接口测试、性能测试,这五种测试方法软件测试工程师都需要掌握。

不仅如此,行业技能也是软件测试工程师必须掌握的一点。

行业主要指测试人员所在企业涉及的行业领域,例如众多IT企业从事石油、电信、银行、电子政务、电子商务等行业领域的产品开发。行业知识即业务知识,是测试人员做好测试工作的又一个前提条件,只有深入地了解了产品的业务流程,才能判断出开发人员实现的产品功能是否正确。

很多时候,软件运行起来没有异常,但是功能不一定正确。只有掌握了相关的行业知识,才能判断出用户的业务需求是否得到了实现。行业知识与工作经验有一定关系,通过时间即可以完成积累。

以上所转载内容均来自于网络,不为其真实性负责,只为传播网络信息为目的,非商业用途,如有异议请及时联系btr2020@163.com,本人将予以删除。
THE END
分享
二维码
< <上一篇
下一篇>>