腾创实验室_软件测评中心-软件测试报告-项目验收报告-第三方软件检测机构

关于软件测试,这些是你需要了解的

  软件测试定义

  1.正向思维的定义

  出发点:使自己确信产品是能够正常工作的评价一个程序和系统的特性或能力,并确定它是否达到期望的结果,软件测试就是以此为目的的任何行为。

  2.反向思维【抱着怀疑一切的态度对程序做测试】的定义

  Genford.J.Myers 《软件测试的艺术》

  出发点:测试是为发现错误而执行的一个程序或者系统的过程

  测试是为了证明程序有错,而不是证明程序无错误

  一个好的测试用例在于它能发现以前未发现的错误

       一个成功的测试是发现了以前未发现的错误的测试

  3.IEEE定义的软件测试

  在规定条件下运行系统或构件的过程:观察记录结果,并对系统或构件的某些方面给出评价。

  分析软件项目的过程:检测现有状况和所需状况之间的不同,并评估软件项目的特性

  4.广义的软件测试

  软件测试是对软件形成过程中的所有工作产品(包括程序以及相关文档)进行的测试,而不仅仅是对程序的运行进行测试。

  5.软件测试中两个特别重要的术语:

  确认:通过检查和提供客观证据来证实特定目的的功能或应用是否已经实现。

  验证:通过检查和提供客观证据来证实指定的需求是否满足。

  软件测试目标

  测试目标包括:

  通过评估工作产品以防止缺陷;

  验证是否实现了所有指定的需求;

  检查测试对象是否完成,并确认是否按照用户和其他利益相关方期望那样工作;

  建立对被测对象质量级别的信心;

  发现缺陷和失效,从而降低软件质量不足的风险;

  为利益相关方提供足够的信息以允许他们做出明智的决策,特别是关于测试对象的质量级别。

  测试和调式区别

  在主体、目标、方法和思路上有所不同。

  测试可以发现由于软件缺陷引起的失效。而调试是发现、分析和修复这些缺陷的开发活动。

  测试是从已知的条件开始,使用预先定义的过程,并且有预计结果;调试是从未知的条件开始,结束的过程可能不可预计。

  测试可以计划,可以预先制定测试用例和过程,工作进度可以度量;而描述调试过程的持续时间相对比较困难。

  测试的对象包括软件开发过程中的文档、数据以及代码,而调试的对象一般来说只是代码。

  软件测试基本原则

  原则 1 测试说明缺陷的存在,而不能说明缺陷不存在

  测试可以证明存在缺陷,但不能证明不存在缺陷。测试降低了软件中存在未发现缺陷的可能性,但即使没有发现缺陷,测试也无法证明其对象的正确性。

  原则 2 穷尽测试是不可能的

  进行穷尽测试(输入和前提条件的所有组合)是不可行的。应利用风险分析、测试技术和优先级确定测试工作量,而不是试图进行穷尽测试。

  原则 3 测试的尽早介入可以节省时间和成本

  为了尽早发现缺陷,应该在软件开发生存周期中尽早启动静态和动态测试活动。在软件开发生存周期的早期进行测试有助于减少或消除代价高昂的变更。

  原则 4 缺陷的群集效应

  通常在少数模块中包含了大部分在发布前测试中发现的缺陷,或者是造成大部分运行失效的原因。

  原则 5 杀虫剂悖论

  如果多次重复同样的测试,最终这些测试将不再能够发现任何新的缺陷。为了发现新的缺陷,可能需要更改现有的测试用例和测试数据,并且可能需要编写新的测试。

  原则 6 测试活动依赖于测试周境

  测试在不同周境下是不同的。

  原则 7 不存在缺陷的谬论

  有些组织期望测试员能够运行所有可能的测试并发现所有可能的缺陷,是不可能的。另外,期望仅仅发现并修复大量缺陷就能确保系统的成功,这是一个谬论(即错误的信念)。

  3.软件测试技术

  测试技术分为黑盒、白盒或基于经验的测试技术。

  黑盒测试技术(也称为行为的或基于行为的技术)基于对适当测试依据的分析(例如:正式需求文档、规格说明、用例、用户故事或业务流程)。这些技术适用于功能和非功能测试。黑盒测试技术关注在测试对象的输入和输出,而不考虑其内部结构。

  白盒测试技术(也称为结构的或基于结构的技术)基于对架构、详细设计、内部结构或测试对象代码的分析。与黑盒测试技术不同,白盒测试技术关注在测试对象的结构和处理过程。

基于经验的测试技术利用开发人员、测试员和用户的产品经验来设计、实施和执行测试。这类技术通常与黑盒和白盒测试技术相结合。

  软件缺陷

  缺陷定义

  IEEE对软件缺陷的定义:从产品内部看,缺陷是产品开发或维护过程中存在的错误、毛病等各种问题;从产品外部看,缺陷是系统运行过程中某种功能的失效或违背。

  软件未实现产品说明书要求的功能;

  软件出现了产品说明书指明不应该出现的功能;

  软件实现了产品说明书未提到的功能;

  软件未实现产品说明书虽未明确提及但应该实现的目标。

  缺陷产生原因

  软件缺陷的产生主要是由软件产品的特点和开发过程决定的,比如需求不清晰、需求频繁变更、开发人员水平有限等。归结起来,软件缺陷产生的原因主要有以下几点。

  1、需求不明确

  软件需求不清晰或者开发人员对需求理解不明确,导致软件在设计时偏离客户的需求目标,造成软件功能或特征上的缺陷。此外,在开发过程中,客户频繁变更需求也会影响软件最终的质量。

  2、软件结构复杂

  如果软件系统结构比较复杂,这就会导致软件在开发、扩充、系统维护上的困难。

  3、编码问题

在软件开发过程中,程序员水平参差不齐,再加上开发过程中缺乏有效的沟通和监督,问题累积越来越多,如果不能逐一解决这些问题,会导致最终软件中存在很多缺陷。

  4、项目期限短

  现在大部分软件产品开发周期都很短,开发团队要在有限的时间内完成软件产品的开发,往往导致开发人员在疲劳、压力大、受到干扰的状态下开发软件,会影响软件的最终质量。

  5、使用新技术

  使用新技术进行软件开发时,如果新技术本身存在不足或开发人员对新技术掌握不精,也会影响软件产品的开发过程,导致软件存在缺陷。