大三下学习进度日总结06

今日总结:

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

软件测试入门基础

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

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

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

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

正确认识软件缺陷

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

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

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

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

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

软件缺陷的产生

  • 技术问题

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

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

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

image-20210309224817942

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

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

软件测试模型

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

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

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

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

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

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

软件测试标准如下:

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

测试停止的依据(标准)

  • 第一类标准:测试超过了预定时间,则停止测试。
  • 第二类标准:执行了所有的测试用例,但并没有发现故障,则停止测试。
  • 第三类标准:使用特定的测试用例设计方案作为判断测试停止的基础。
  • 第四类标准:正面指出停止测试的具体要求,即停止测试的标准可定义为查出某一预订数目的故障。
  • 第五类标准:根据单位时间内查出故障的数量和严重程度决定是否停止测试。
posted @ 2021-03-09 23:35  DemonSlayer  阅读(114)  评论(0编辑  收藏  举报