• 大三下学习进度日总结06


    希望所有温柔又可爱的人最后都能幸福❤

    今日总结:

    代码量 400行左右
    博客量 一篇
    所学时间 8小时左右
    了解到的知识点 软件测试第一章,背单词等

    软件测试入门基础

    软件测试的目的是尽可能发现并排除软件中潜藏的错误,提高软件的可靠性

    IEEE将软件可靠性定义为:系统在特定环境下,在给定的时间内无故障运行的概率

    简单的讲,软件=程序+文档+数据

    随着人们对软件质量的要求越来越高,软件测试贯穿了软件开发的各个阶段。

    正确认识软件缺陷

    • 软件是计算机系统中与硬件相互依存的一部分,包括程序、数据与其相关文档的完整结合。
    • 程序是按事先设计的功能和性能要去执行的指令集合
    • 数据:使程序能够适当地操作信息的数据结构
    • 文档:软件开发维护和使用过程中产生的图文材料如、再屏帮助、readme、市场宣传材料、包装文字和图形等
    • 软件是一种逻辑体,而不是具体的物理体,因而它具有抽象性。
    • 软件的生产与硬件不同,它没有明显的制造过程,对软件质量的控制,必须在开发方面下功夫。在软件运行和使用期间,没有硬件那样的机械磨损和老化问题,然而它存在退化问题,必须进行多次的修改和维护。
    • 软件的开发和运行常常受计算机系统的制约,对计算机系统有着不同程度的依赖性,为了解除这种依赖性,在软件开发过程中提出了软件移植问题。
    • 软件本身是复杂的,软件的复杂性可能来自它所反映问题的复杂性,也可能来自程序逻辑结构的复杂性。
    • 软件成本的昂贵。软件的研制工作需要投入大量的、复杂的、高强度的脑力,它的成本比较高。

    (IEEE(1983)\,\,\,\,729)软件缺陷一个标准的定义:

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

    至少满足以下5个规则之一,才称为发生一个软件缺陷:

    • 软件未实现产品说明书要求的功能——功能缺失
    • 软件出现了产品说明书指明不应该出现的错误——错误、缺陷
    • 软件实现了产品说明书未提到的功能——功能多余
    • 软件未实现产品说明书虽未明确提及但应该实现的目标——对隐性需求的把握,同时发现需求遗漏
    • 软件难以理解,不易使用,运行缓慢或者——用户体验角度

    软件缺陷的产生

    • 技术问题

      • 算法错误
      • 语法错误
      • 计算和精度问题。
      • 系统结构不合理,造成系统性能问题。
      • 接口参数不匹配出现问题。团队工作
      • 误解、沟通不充分
    • 团队工作

      • 系统分析时对客户的需求不是十分清楚,或者和用户的沟通存在一些困难。
      • 不同阶段的开发人员相互理解不一致,软件设计对需求分析结果的理解偏差,编程人员对系统设计规格说明书中某些内容重视不够,或存在着误解。
      • 设计或编程上的一些假定或依赖性,没有得到充分的沟通。
    • 软件本身

      • 文档错误、内容不正确或拼写错误。
      • 数据考虑不周全引起强度或负载问题。
      • 对边界考虑不够周全,漏掉某几个边界条件造成的错误。
      • 对一些实时应用系统,保证精确的时间同步,否则容易引起时间上不协调、不一致性带来的问题。
      • 没有考虑系统崩溃后在系统安全性、可靠性的隐患。
      • 硬件或系统软件上存在的错误。
      • 软件开发标准或过程上的错误。
    • 缺陷在软件开发周期中的任何一个环节都可能被引入,而且存在放大趋势:

    image-20210309224817942

    软件产品规格说明书为什么是软件缺陷存在最多的地方,主要原因有以下几种。

    1. 由于软件产品还没有设计、开发、完全靠想象去描述系统的实现结果,所以有些特性还不够清晰。
    2. 需求变化的不一致性。用户的需求总是在不断变化的,这些变化如果没有在产品规格说明书中得到正确的描逑,容易引起前后文,上下文的矛盾。
    3. 对规格说明书不够重视,在规格说明书的设计和写作上投入的人力,时间不足。
    4. 没有在整个开发队伍中进行充分沟通,有时只有设计师或项目经理得到比较多的信息。

    软件测试模型

    软件测试的目的包括以下三点:

    1. 测试是程序的执行过程,目的在于发现错误,不能证明程序的正确性,仅限于处理有限种的情况。
    2. 检查系统是否满足需求,这也是测试的期望目标。
    3. 一个好的测试用例在于发现还未曾发现的错误;成功的测试是发现了错误的测试。
    • 黑盒测试:

      • 在黑盒测试中,软件测试员只需知道软件要做什么即可—而无法看到盒子是如何运作的。只要进行一些输入,就能得到某种输出结果。
    • 白盒测试:

      • 在白盒测试中,软件测试员可以访问程序员的代码,并通过检查代码来协助测试—可以看到盒子里面。根据代码检查结果判断多大的数据可能出错,并椐此调整测试程序。
    • 静态测试

      • 特点
        • 不必运行程序
        • 发挥人的逻辑思维优势,无需条件,易展开
      • 方法
        • 代码审查(与设计的一致性、标准、可读性,表达式逻辑、结构合理性)
        • 代码检查(与审查类似,但不如审查检查范围广)
        • 桌面检查(阅读自己程序,效率低)
        • 静态分析(借助于测试工具)
        • 数据流、控制流、接口分析、表达式分析
    • 动态测试

      • 特点
        • 要求在代码实现的前提下进行
        • 运行被测试的程序
        • 要进行测试数据准备
      • 方法
        • 白盒测试
        • 黑盒测试
        • 灰盒测试

    软件测试标准如下:

    1. 软件测试的目标在于揭示错误。测试人员要始终站在用户的角度去看问题,系统中最严重的错误的是那些导致程序无法满足用户需求的错误。
    2. 软件测试必须基于“质量第一”的思想去开展各项工作。
    3. 事先定义好产品的质量标准。只有建立了质量标准,才能根据测试的结果,对产品的质量进行分析和评估。
    4. 软件项目一启动,软件测试也就开始,而不是等程序写完,才开始进行测试。
    5. 测试用例是设计出来的,不是写出来的,所以要根据测试的目的,采用相应的方法去设计测试用例,从而提高测试的效率,更多的发现错误,提高程序的可靠性。
    6. 对发现错误较多的程序段,应进行更深入的测试。

    测试停止的依据(标准)

    • 第一类标准:测试超过了预定时间,则停止测试。
    • 第二类标准:执行了所有的测试用例,但并没有发现故障,则停止测试。
    • 第三类标准:使用特定的测试用例设计方案作为判断测试停止的基础。
    • 第四类标准:正面指出停止测试的具体要求,即停止测试的标准可定义为查出某一预订数目的故障。
    • 第五类标准:根据单位时间内查出故障的数量和严重程度决定是否停止测试。
  • 相关阅读:
    「JOISC 2020 Day3」收获
    $ ext{Min25}$筛
    [做题记录-图论] [NEERC2017]Journey from Petersburg to Moscow [关于处理路径前$k$大的一种方法]
    [复习笔记]一些有意思的解法技巧 (转 Dpair
    [比赛记录] CSP2021-S 题解
    [转]C++学习心得
    Sigmoid function in NN
    Kernel Regression from Nando's Deep Learning lecture 5
    Python codes
    php中mail()改用msmtp发送邮件
  • 原文地址:https://www.cnblogs.com/125418a/p/14508971.html
Copyright © 2020-2023  润新知