• 软件测试 -- 入门 1 软件测试是什么?


        “这个行业好比是爬山,山门位置不同。其他的行业开门在山顶,一蹬一蹬台阶爬,爬到顶上去,开门进门,才算入门。相声这个行业的门开在山根儿,开开门连人带狗都能冲进来,但是爬升的台阶在门里面,可是进来之后,很多人就不愿意往上爬了,就跟这门口凑合吧。”  -- 郭德纲相声小段

    1. 软件

    • 软件,也称计算机软件(Computer Software),计算机系统中的程序及其文档。
    • 程序是计算任务的处理对象和处理规则的描述;文档是为了便于了解程序所需的阐明性资料。
    • 软件界于计算机硬件和用户接口界面。用户通过软件与计算机进行交流,实现特定操作。
    • 软件分为:系统软件、基于特定领域需要的应用软件和介于两者之间的中间件。
    • 软件应完成以下定义内容
      1)软件运行时,能够提供用户所要求功能和性能的指令或计算机程序集合;
      2)程序能够实现和满足用户所需的处理信息的数据结构要求;
      3)有完备的描述程序功能需求以及程序如何操作、使用所要求的文档。

    2. 软件开发

    • 软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。
    • 使用软件开发工具和某种程序设计语言实现的,完成特定用途软件系统的过程。
    • 软件开发是一项包括需求获取、需求分析、设计、实现和测试的系统工程。

    3. 软件测试存在的原因

    • 软件存在缺陷;
    • 软件缺陷存在于软件实现过程的每个阶段,如不及时发现、修复,会不断蔓延;
    • 由于软件缺陷导致的灾难损失巨大,需要付出昂贵的代价;
    • 减少软件缺陷、提升软件质量、有效控制软件运行过程风险的方法。

    4. 软件测试

    • 软件测试是为发现错误而执行的一个程序或者系统的过程。--《The Art of Software Testing》. Grenford J.Myers
    • 软件测试是以评价一个程序或者系统属性为目标的任何一种活动,测试是对软件质量的度量。--《Complete Guide of Software Testing》
    • 软件测试是为了度量和提高被测软件程序或系统的质量,对测试软件程序进行工程设计、实施和维护的整个生命周期的评价过程。--《Systematic Software Testing》
    • 软件测试是为了评估和发布软件,在软件开发过程中所进行的持续的验证和确认活动。

    5. 软件测试对象

        软件开发过程(从软件需求分析开始直至软件发布维护的全过程)中的程序、数据和文档。

    6. 软件测试的目的

    • 执行程序,发现软件错误。
    • 证明软件实现了要求的需求,没有实现未要求的需求。
    • 评估和度量软件质量,识别和控制软件交付风险。
    • 跟踪软件错误和缺陷的修复过程,提高软件交付质量,规避软件发布后的商业风险。

    7. 不同人眼中的软件测试

    • 给软件挑毛病、找问题,鸡蛋里挑骨头的。
    • 类似生产线上的质检员,找出不合格的软件。
    • 点点鼠标、敲敲键盘,给软件挑毛病。
    • 软件测试不需要太多技巧,只要会操作软件就可以。
    • 软件测试是代码开发活动的补充,检查开发的成果是否正确。
    • 软件开发过程中最后阶段,不通过测试不能交付。
    • 。。。。。。

    8. 软件测试发展历史

    >> 《The Growth of Software Testing》,Dave Gelperin and Bill Hetzel / June,1988
           转载:The Growth of Software Test_Rolei_zl的博客-CSDN博客

    阶段时间阶段特征主要目标
    -1956调试为主(The Debugging-Oriented Period)确保程序完成了程序开发人员想要做的
    1957 - 1978证明为主(The Demonstration-Oriented Period)确保程序满足了其需求定义
    1979 - 1982破坏为主(The Destruction-Oriented Period)发现程序执行时的错误
    1983 - 1987评估为主(The Evaluation-Oriented Period)发现程序需求、设计和执行时的错误
    1988 - 预防为主(The Prevention-Oriented Period)预防程序需求、设计和执行时的错误
    • 软件程序本身从简单到复杂,实现软件程序的人由少数高端的科学家到众多的软件工程师,软件验证从程序开发人员自行检查到专业的测试人员参与进行全面验证。
    • 调试的目标是修复错误以保证程序可以执行;测试的目标是发现错误并保证错误被正确修复。
    • V(verification,验证;验证程序是否按需求实现,动态)& V(validation,确认;确认程序满足既定要求,静态)
    • 软件程序符合度等级
      - 确认测试是否满足特定错误类型的必要条件
      - 确认测试是否满足特定错误类型的最大条件
      - 确认测试是否可以发现加入软件中不同类型的错误
    • 测试与其他工作一样,往往会被执行不足或执行过度。
    • 计算机应用在数量、成本和复杂度的增长,使得测试在应对大的经济风险上更有效。
    • 软件测试经历了专业化(独立工作)、工程化(软件工程)、标准化(国际标准)多个阶段

    >> 软件测试的历史 - 百度文库

    • 早期并没有软件测试这个概念,直到20 世纪60 年代(软件工程建立前),为证明程序设计的正确性而进行了相关的测试。
    • 1972年,在北卡罗来纳大学举行了首届软件测试正式会议。
    • 1975年,John Good Enough 和Susan Gerhart 在IEEE 上发表了文章《测试数据选择的原理》,软件测试被确定为一种研究方向。
    • 1979年,Glenford Myers 在《软件测试艺术》中,对测试做了定义:测试是为发现错误而执行的一个程序或者系统的过程。
    • 20世纪80年代早期,“质量”的号角开始吹响。软件测试定义发生了改变,测试不单纯是一个发现错误的过程,而且包含软件质量评价的内容,制定了各类标准。
    • 1983年,Bill Hetzel 在《软件测试完全指南》中指出:测试是以评价一个程序或者系统属性为目标的任何一种活动,测试是对软件质量的度量。
    • 20世纪90年代,测试工具盛行起来。
    • 1996 年提出的测试能力成熟度(Testing Capability Maturity Model,TCMM)、测试支持度(Testability Support Model,TSM)、测试成熟度模型(Testing Maturity Model,TMM)。TCMM、TSM 和TMM 是对软件能力成熟度模型(CMM)的有益补充。
    • 到了2002 年,Rick 和Stefan 在《系统的软件测试》一书中对软件测试进行了进一步定义:测试是为了度量和提高被测软件的质量,对测试软件进行工程设计、实施和维护整个生命周期的过程。

  • 相关阅读:
    rpm打包
    Golang 实现word和Excel处理
    2021年全国大学生数学建模竞赛B题乙醇偶合制备烯烃(含word论文和源代码资源)
    深盾Java 虚拟化保护,防止反编译
    Netty网络通信之Socket
    【SSO单点登录】分布式Session存在问题&& spring-session的设计之妙
    D如何支持写障碍
    【C++笔试强训计划】第一天
    java操作gaussDB数据库
    读书笔记:项目管理教程之我国信息化发展的主要任务发展重点
  • 原文地址:https://blog.csdn.net/u012841352/article/details/125965886