当前位置:网站首页>【软件测试】03 -- 软件测试概述
【软件测试】03 -- 软件测试概述
2022-07-05 06:39:00 【衍生星球】
软件测试概述
1.软件测试的目的
结合软件开发、软件测试与客户需求可以将软件测试的目的归结为以下几点。
(1)对于软件开发来说,软件测试通过找到的问题缺陷帮助开发人员找到开发过程中存在的问题,包括软件开发的模式、工具、技术等方面存在的问题与不足,预防下次缺陷的产生。
(2)对于软件测试来说,使用最少的人力、物力、时间等找到软件中隐藏的缺陷,保证软件的质量,也为以后软件测试积累丰富的经验。
(3)对于客户需求来说,软件测试能够检验软件是否符合客户需求,对软件质量进行评估和度量,为客户评审软件提供有力的依据。
2.软件测试的分类
(1)按照测试阶段分类
按照测试阶段可以将软件测试分为单元测试、冒烟测试、集成测试、系统测试与验收测试。这种分类方式与软件开发过程相契合,是为了检验软件开发各个阶段是否符合要求。
a.单元测试
单元测试是软件开发的第一步测试,目的是为了验证软件单元是否符合软件需求与设计。单元测试大多是开发人员进行的自测。
b.冒烟测试
冒烟测试最初是从电路板测试得来的,当电路板做好以后,首先会加电测试,如果电路板没有冒烟再进行其他测试,否则就必须重新设计后再次测试。后来这种测试理念被引入到软件测试中。在软件测试中,冒烟测试是指软件构建版本建立后,对系统的基本功能进行简单的测试,这种测试重点验证的是程序的主要功能,而不会对具体功能进行深入测试。如果测试未通过,需要返回给开发人员进行修正;如果测试通过则再进行其他测试。因此,冒烟测试是对新构建版本软件进行的最基本测试。
c.集成测试
集成测试是冒烟测试之后进行的测试,它是将已经测试过的软件单元组合在一起测试它们之间的接口,用于验证软件是否满足设计需求。
d.系统测试
系统测试是将经过测试的软件在实际环境中运行,并与其他系统的成分(如数据库、硬件和操作人员等)组合在一起进行的测试。
e.验收测试
验收测试主要是对软件产品说明进行验证,逐行逐字地按照说明书的描述对软件产品进行测试,确保其符合客户的各项要求。
(2)按照测试技术分类
按照使用的测试技术可以将软件测试分为黑盒测试与白盒测试。
a.黑盒测试
黑盒测试就是把软件(程序)当作一个有输入与输出的黑匣子,它把程序当作一个输入域到输出域的映射,只要输入的数据能输出预期的结果即可,不必关心程序内部是怎么样实现的,如图1所示。
b.白盒测试
白盒测试又叫透明盒测试,它是指测试人员了解软件程序的逻辑结构、路径与运行过程,在测试时,按照程序的执行路径得出结果。白盒测试就是把软件(程序)当作一个透明的盒子,测试人员清楚地知道从输入到输出的每一步过程,如图2所示。
相对于黑盒测试来说,白盒测试对测试人员的要求会更高一点,它要求测试人员具有一定的编程能力,而且要熟悉各种脚本语言。但是在软件公司里,黑盒测试与白盒测试并不是界限分明的,在测试一款软件时往往是黑盒测试与白盒测试相结合对软件进行完整全面的测试。
(3)按照软件质量特性分类
按照软件质量特性可以将软件测试分为功能测试与性能测试。
a.功能测试
功能测试就是测试软件的功能是否满足客户的需求,包括准确性、易用性、适合性、互操作性等。
b.性能测试
性能测试就是测试软件的性能是否满足客户的需求,性能测试包括负载测试、压力测试、兼容性测试、可移植性测试和健壮性测试等。
(4)按照自动化程度分类
按照自动化程度可以将软件测试分为手工测试与自动化测试。
a.手工测试
手工测试是测试人员一条一条地执行代码完成测试工作。手工测试比较耗时费力,而且测试人员如果是在疲惫状态下,则很难保证测试的效果。
b.自动化测试
自动化测试是借助脚本、自动化测试工具等完成相应的测试工作,它也需要人工的参与,但是它可以将要执行的测试代码或流程写成脚本,执行脚本完成整个测试工作。
(5)按照测试类型分类
软件测试类型有多种,包括界面类测试、功能测试、性能测试、安全性测试、文档测试等,其中功能测试与性能测试前面已经介绍,下面主要介绍其他几种测试。
a.界面类测试
界面类测试是验证软件界面是否符合客户需求,包括界面布局是否美观、按钮是否齐全等。
b.安全性测试
安全性测试是测试软件在没有授权的内部或外部用户的攻击或恶意破坏时如何进行处理,是否能保证软件与数据的安全。
c.文档测试
文档测试以需求分析、软件设计、用户手册、安装手册为主,主要验证文档说明与实际软件之间是否存在差异。
(6)其他分类
还有一些软件测试无法具体归到哪一类,但在测试行业中也会经常进行这些测试,如α测试、β测试、回归测试等,具体介绍如下。
a.α测试
α测试是指对软件最初版本进行测试。软件最初版本一般不对外发布,在上线之前,由开发人员和测试人员或者用户协助进行测试。测试人员记录使用过程中出现的错误与问题,整个测试过程是可控的。
b.β测试
β测试是指对上线之后的软件版本进行测试,此时软件已上线发布,但发布的版本中可能会存在较轻微的Bug,由用户在使用过程中发现错误与问题并进行记录,然后反馈给开发人员进行修复。
小提示:根据软件开发版本周期划分软件测试
根据软件开发版本周期进行划分,可以将软件测试分为预览版本Preview测试、内部测试版本Alpha测试、公测版本Beta测试、候选版本Release测试。在这些测试完成之后产品就可以正式发布上线。
c.回归测试
当测试人员发现缺陷以后,会将缺陷提交给开发人员,开发人员对程序进行修改,修改之后,测试人员会对修改后的程序重新进行测试,确认原有的缺陷已经消除并且没有引入新的缺陷,这个重新测试的过程就叫作回归测试。回归测试是软件测试工作中非常重要的一部分,软件开发的各个阶段都会进行多次回归测试。
d.随机测试
随机测试是没有测试用例、检查列表、脚本或指令的测试,它主要是根据测试人员的经验对软件进行功能和性能抽查。随机测试是根据测试用例说明书执行测试用例的重要补充手段,是保证测试覆盖完整性的有效方式和过程。
边栏推荐
- Game theory acwing 892 Steps Nim game
- 达梦数据库全部
- What is linting
- SolidWorks template and design library are convenient for designers to call
- SOC_SD_DATA_FSM
- Chinese remainder theorem acwing 204 Strange way of expressing integers
- 微信小程序路由再次跳转不触发onload
- [QT] QT multithreading development qthread
- Mutual transformation between two-dimensional array and sparse array (sparse matrix)
- Design specification for mobile folding screen
猜你喜欢
Orin installs CUDA environment
Vscode configures the typera editor for MD
Spinningup drawing curve
SRE核心体系了解
Ret2xx---- common CTF template proposition in PWN
Build a microservice cluster environment locally and learn to deploy automatically
达梦数据库全部
Configuration method and configuration file of SolidWorks GB profile library
Vant weave swipecell sets multiple buttons
Rehabilitation type force deduction brush question notes D1
随机推荐
SRE核心体系了解
Some classic recursion problems
. Net core stepping on the pit practice
Game theory acwing 894 Split Nim game
2. Addition and management of Oracle data files
All English in the code
testing framework
Vant weapp swippecell set multiple buttons
How to answer when you encounter a jet on CSDN?
How to correctly ask questions in CSDN Q & A
微信小程序路由再次跳轉不觸發onload
A brief introduction to heading/pitch/roll and omega/phi/kappa
CGroup CPU group source code analysis
Get class files and attributes by reflection
Game theory acwing 891 Nim games
Build a microservice cluster environment locally and learn to deploy automatically
Chinese remainder theorem acwing 204 Strange way of expressing integers
2022 winter vacation training game 5
About vscode, "code unreachable" will be displayed when calling sendline series functions with pwntools“
Vant weave swipecell sets multiple buttons