zoukankan      html  css  js  c++  java
  • 第一节 软件测试概述(1)

      软件测试是软件质量保证的关键步骤,也是软件工程的重要组成部分,对软件产品的质量起着至关重要的作用。软件测试工作的目的就在于尽早找到软件缺陷,并保证其得到修复。

    1.软件及其特点

      IEEE Std 610.12 给出了软件(Software) 的定义:软件是计算机程序及其相关的文档,以及用以操作计算机系统的附属数据。

      一般而言,软件来源于应用问题。应用问题经过抽象(包括数据抽象和过程抽象)后,形成软件的设计(包括数据结构和算法等内容),继而被编码实现。其后软件即可运行于硬件之上。

      从软件的定义可以看出,软件有3个主要组成部分。

      1) 指令的集合(计算机程序),通过执行这些指令可以满足预期的特征、功能和性能需求。

      2) 数据结构,它使得程序可以利用必要的信息。

      3) 描述程序操作和使用的文档。

      其中,指令集合和数据结构是软件的可运行部分,而文档是软件的不可运行部分。

      软件的产生和运行方式决定了软件具有以下特点。

      1) 软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。

      2) 软件是设计和开发出的,与硬件不同,在其开发过程中没有明显的制造过程。

      3) 在软件的运行和使用期间,没有硬件那样的机械磨损、老化等问题。(ps: 软件在运行过程中,存在数据的增量情况,需要对软件使用过程中产生的有用数据进行存储,对垃圾数据进行筛选或清理;同时无论是有用数据以及垃圾数据都应尽量少的影响软件的运行速度以及运行空间)

      4) 虽然软件工业向着基于构件的构造模式发展,但目前大多数软件仍是依据客户的需求定制的。

    2. 软件缺陷

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

      简而言之,软件缺陷就是软件产品中所存在的各种问题,其最终表现为没有满足用户的需求。

      由软件缺陷的定义,可以得出软件缺陷的主要表现形式,具体如下:

      1) 软件未实现产品规格说明书要求的功能。

      2) 软件出现了产品规格说明书中指明不会出现的错误。

      3) 软件实现了产品规格说明书中未提到的功能。(ps:原因待查阅)

      4) 软件未实现产品规格说明书虽未明确提及但应该实现的目标。(ps: 如何与第三条缺陷进行区分界定)  

      5) 软件难以理解、不易使用、运行缓慢,或者从测试人员的角度看,最终用户会认为不好。                          

      软件缺陷的主要来源:

      (1) 软件缺陷的首要来源是软件产品规格说明书

      软件产品规格说明书是需求分析阶段得出的最主要的文档,要求完整、准确、具体地描述系统的数据要求、功能要求、性能需求、可靠性和可用性要求、出错处理需求、接口需求、约束、逆向需求,以及将来可能提出的要求。

      (2) 软件缺陷的第二大来源是设计

      在软件的概要设计阶段,应确定系统的物理配置方案,进而确定软件的结构,包括模块的划分、调用关系等内容。在软件的详细设计阶段,应确定怎样具体实现用户需要的软件系统,也就是要设计出程序的“蓝图”。

      (3) 软件缺陷的第三大来源是编码错误

      编码错误主要由于软件的复杂性、文档不足、进度压力或者普通的技术错误。这些在软件开发过程中几乎都是难以避免的。

      (4)其他原因

      其他原因主要包括误解、重复错误和测试错误等。

    3.软件缺陷的相关术语

      1) 软件失效(Failure): 是指不完全符合给定的需求,是实际结果或行为(执行测试时观察到的)与期望结果或行为(规格说明或需求中定义的)之间的偏差。

      2) 软件故障(Fault): 也称为缺点(Defect)、缺陷(Bug),是指软件中的静态缺陷。软件的每个故障都是软件开发或更改后就存在的,它是设计错误,不是自发出现的。

       3) 软件错误(Error): 是指不正确的内部状态,该状态是某个故障的表现。

    4.软件缺陷的等级

      虽然从外部看,软件缺陷都是系统所需要实现的某种功能的失效或违背,但不同的软件缺陷对用户使用的影响是不同的,所造成的后果也是不同的。因此,软件缺陷并不能平等对待。必须对软件缺陷进行分类,软件测试员才能以简明扼要的方式指出其影响。可以从上述两个出发点对软件缺陷划分为严重性(Severity)和优先级(Priority)。

      (1) 严重性  指对用户的影响程序。一般可以定义为4种级别。

      1) 致命(Fatal) ,指产生系统崩溃、数据丢失、数据毁坏和安全破坏等非常严重的情况。

      2) 严重(Critical), 指功能或特性没有实现、操作性错误及结果错误等情况。

      3)一般(Major), 指没有产生严重的结果,但影响外观或用户使用,如出现拼写错误、UI布局不良等小问题。

      4)微波(Minor),指建议性的问题。

      (2) 优先级  指缺陷修复的紧急程序。一般可以定义下面4种级别。

      1) 马上解决,指明显的问题,阻碍了进一步的测试。

      2) 高优先级,指缺陷严重,必须在产品发布之前修复。

      3)普通优先级,指正常排除等待修复,如果时间允许应该予以修复。

      4)低优先级,指可能会修复,但是即使存在该级别的缺陷,产品也能发布。

    5.软件缺陷的生命周期

      软件缺陷的生命周期指的是软件缺陷从被发现到最后被关闭的整个过程。


     内容来源《软件测试技术》


    软件缺陷:https://www.cnblogs.com/yusijie/p/6416809.html

    软件缺陷的生命周期:http://blog.csdn.net/damys/article/details/8173113

  • 相关阅读:
    idea spring boot启动项目上面有红色叉
    hibernate Criteria中多个or和and的用法 and ( or or)
    CAS Server 4.2.7(自定义密码验证) 部署
    Web应用系统集成CAS-rest指南
    用DBMS_REDEFINITION将普通表转换为分区表
    windows编译libevent时报告“缺少print_winsock_errors.obj”的解决
    Oracle表增删分区的脚本
    libcassandra开发示例
    关于MongoDB API的两个小经验
    C/C++开发Cassandra的一些经验
  • 原文地址:https://www.cnblogs.com/fwpsl/p/software_testing_01_01.html
Copyright © 2011-2022 走看看