首页 > web教程 > 正文

软件测试方法是什么

2024-01-22 09:57:59web教程阅读

软件测试是使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。

Software 软件测试

从是否关心软件内部结构和具体实现的角度划分,测试方法主要有白盒测试和黑盒测试。白盒测试方法主要有代码检査法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、路径覆盖和程序变异。黑盒测试方法主要包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法、场景法等。

从是否执行程序的角度划分,测试方法又可分为静态测试和动态测试。静态测试包括代码检査、静态结构分析、代码质量度量等。动态测试由 3 部分组成:构造测试实例、执行程序和分析程序的输出结果。

概述

软件测试方法的目的包括:发现软件程序中的错误、对软件是否符合设计要求,以及是否符合合同中所要达到的技术要求,进行有关验证以及评估软件的质量。最终实现将高质量的软件系统交给用户的目的。而软件的基本测试方法主要有静态测试和动态测试、功能测试、性能测试、黑盒测试和白盒测试等等。

软件测试方法众多,比较常用到的测试方法有等价类划分、场景法,偶尔会使用到的测试方法有边界值和判定表,还有包括不经常使用到的正交排列法和测试大纲法。其中等价类划分、边界值分析、判定表等属于黑盒测试方法;只对功能是否可以满足规定要求进行检查,主要用于软件的确认测试阶段。白盒测试也叫做结构测试或逻辑驱动测试,是基于覆盖的全部代码和路径、条件的测试,通过测试检测产品内部性能,检验程序中的路径是否可以按照要求完成工作,但是并不对功能进行测试,主要用于软件的验证。

原则

1.尽早不断测试的原则

应当尽早不断地进行软件测试。据统计约 60%的错误来自设计以前,并且修正一个软件错误所需的费用将随着软件生存周期的进展而上升。错误发现得越早,修正它所需的费用就越少。

2.IPO 原则

测试用例由测试输入数据和与之对应的预期输出结果这两部分组成。

3.独立测试原则

(1)独立测试原则。这是指软件测试工作由在经济上和管理上独立于开发机构的组织进行。程序员应避免检査自己的程序,程序设计机构也不应测试自己开发的程序。软件开发者难以客观、有效地测试自己的软件,而找出那些因为对需求的误解而产生的错误就更加困难。

(2)合法和非合法原则。在设计时,测试用例应当包括合法的输入条件和不合法的输入条件。

(3)错误群集原则。软件错误呈现群集现象。经验表明,某程序段剩余的错误数目与该程序段中已发现的错误数目成正比,所以应该对错误群集的程序段进行重点测试。

(4)严格性原则。严格执行测试计划,排除测试的随意性。

(5)覆盖原则。应当对每一个测试结果做全面的检查。

(6)定义功能测试原则。检查程序是否做了要做的事仅是成功的一半,另一半是看程序是否做了不属于它做的事。

(7)回归测试原则。应妥善保留测试用例,不仅可以用于回归测试,也可以为以后的测试提供参考。

(8)错误不可避免原则。在测试时不能首先假设程序中没有错误。

分类

软件测试方法的分类有很多种,以测试过程中程序执行状态为依据可分为静态测试(Static Testing,ST)和动态测试(Dynamic Testing,DT);以具体实现算法细节和系统内部结构的相关情况为根据可分黑盒测试、白盒测试和灰盒测试三类;从程序执行的方式来分类,可分为人工测试(Manual Testing,MT)和自动化测试(Automatic Testing,AT)。

静态测试和动态测试

(1)静态测试。静态测试的含义是被测程序不运行,只依靠分析或检查源程序的语句、结构、过程等来检查程序是否有错误。即通过对软件的需求规格说明书、设计说明书以及源程序做结构分析和流程图分析,从而来找出错误。例如不匹配的参数,未定义的变量等。

(2)动态测试。动态测试与静态测试相对应,其是通过运行被测试程序,对得到的运行结果与预期的结果进行比较分析,同时分析运行效率和健壮性能等。这种方法可简单分为三个步骤:构造测试实例、执行程序以及分析结果。

猜你喜欢

  • 软件许可是什么意思

    软件许可是什么意思

    软件许可描述了与授权使用数字资料相关的合法权利。未遵守软件许可协议条款通常会产生与许可知识产权(IP)和受版权保护的材料相关的刑事指控。免费和开源许可证包括免费软件,不收取任何金钱使用费,但法律要求用户或许可证持有者遵守协议条款。

    2024-01-22
  •  
  • 软件工程师的分级

    软件工程师的分级

    软件工程师(Software Engineer)是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格。软件工程师是从事软件开发相关工作的人员的统称。对于软件工程师,不太重视学历,但并不是对学历没有要求,重点关注项目的经验和学习知识

    2024-01-22
  • 什么是软件工程师

    什么是软件工程师

    软件工程师(Software Engineer)是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格。软件工程师是从事软件开发相关工作的人员的统称。软件工程师是一个广义的概念,包括软件设计人员、软件架构人员、软件工程管理人员、

    2024-01-22
  •  
  • 软件工程是什么

    软件工程是什么

    软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件有电子邮件、嵌入式系统、人机

    2024-01-22