大三下学习进度日总结06
今日总结:
代码量 | 400行左右 |
---|---|
博客量 | 一篇 |
所学时间 | 8小时左右 |
了解到的知识点 | 软件测试第一章,背单词等 |
软件测试入门基础
软件测试的目的是尽可能发现并排除软件中潜藏的错误,提高软件的可靠性
IEEE将软件可靠性定义为:系统在特定环境下,在给定的时间内无故障运行的概率
简单的讲,软件=程序+文档+数据
随着人们对软件质量的要求越来越高,软件测试贯穿了软件开发的各个阶段。
正确认识软件缺陷
- 软件是计算机系统中与硬件相互依存的一部分,包括程序、数据与其相关文档的完整结合。
- 程序是按事先设计的功能和性能要去执行的指令集合
- 数据:使程序能够适当地操作信息的数据结构
- 文档:软件开发维护和使用过程中产生的图文材料如、再屏帮助、readme、市场宣传材料、包装文字和图形等
- 软件是一种逻辑体,而不是具体的物理体,因而它具有抽象性。
- 软件的生产与硬件不同,它没有明显的制造过程,对软件质量的控制,必须在开发方面下功夫。在软件运行和使用期间,没有硬件那样的机械磨损和老化问题,然而它存在退化问题,必须进行多次的修改和维护。
- 软件的开发和运行常常受计算机系统的制约,对计算机系统有着不同程度的依赖性,为了解除这种依赖性,在软件开发过程中提出了软件移植问题。
- 软件本身是复杂的,软件的复杂性可能来自它所反映问题的复杂性,也可能来自程序逻辑结构的复杂性。
- 软件成本的昂贵。软件的研制工作需要投入大量的、复杂的、高强度的脑力,它的成本比较高。
\(IEEE(1983)\,\,\,\,729\)软件缺陷一个标准的定义:
- 从产品内部看:软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题
- 从产品外部看:软件缺陷是系统所需要实现的某种功能的失效或违背。
至少满足以下5个规则之一,才称为发生一个软件缺陷:
- 软件未实现产品说明书要求的功能——功能缺失
- 软件出现了产品说明书指明不应该出现的错误——错误、缺陷
- 软件实现了产品说明书未提到的功能——功能多余
- 软件未实现产品说明书虽未明确提及但应该实现的目标——对隐性需求的把握,同时发现需求遗漏
- 软件难以理解,不易使用,运行缓慢或者——用户体验角度
软件缺陷的产生
-
技术问题
- 算法错误
- 语法错误
- 计算和精度问题。
- 系统结构不合理,造成系统性能问题。
- 接口参数不匹配出现问题。团队工作
- 误解、沟通不充分
-
团队工作
- 系统分析时对客户的需求不是十分清楚,或者和用户的沟通存在一些困难。
- 不同阶段的开发人员相互理解不一致,软件设计对需求分析结果的理解偏差,编程人员对系统设计规格说明书中某些内容重视不够,或存在着误解。
- 设计或编程上的一些假定或依赖性,没有得到充分的沟通。
-
软件本身
- 文档错误、内容不正确或拼写错误。
- 数据考虑不周全引起强度或负载问题。
- 对边界考虑不够周全,漏掉某几个边界条件造成的错误。
- 对一些实时应用系统,保证精确的时间同步,否则容易引起时间上不协调、不一致性带来的问题。
- 没有考虑系统崩溃后在系统安全性、可靠性的隐患。
- 硬件或系统软件上存在的错误。
- 软件开发标准或过程上的错误。
-
缺陷在软件开发周期中的任何一个环节都可能被引入,而且存在放大趋势:
软件产品规格说明书为什么是软件缺陷存在最多的地方,主要原因有以下几种。
- 由于软件产品还没有设计、开发、完全靠想象去描述系统的实现结果,所以有些特性还不够清晰。
- 需求变化的不一致性。用户的需求总是在不断变化的,这些变化如果没有在产品规格说明书中得到正确的描逑,容易引起前后文,上下文的矛盾。
- 对规格说明书不够重视,在规格说明书的设计和写作上投入的人力,时间不足。
- 没有在整个开发队伍中进行充分沟通,有时只有设计师或项目经理得到比较多的信息。
软件测试模型
软件测试的目的包括以下三点:
- 测试是程序的执行过程,目的在于发现错误,不能证明程序的正确性,仅限于处理有限种的情况。
- 检查系统是否满足需求,这也是测试的期望目标。
- 一个好的测试用例在于发现还未曾发现的错误;成功的测试是发现了错误的测试。
-
黑盒测试:
- 在黑盒测试中,软件测试员只需知道软件要做什么即可—而无法看到盒子是如何运作的。只要进行一些输入,就能得到某种输出结果。
-
白盒测试:
- 在白盒测试中,软件测试员可以访问程序员的代码,并通过检查代码来协助测试—可以看到盒子里面。根据代码检查结果判断多大的数据可能出错,并椐此调整测试程序。
-
静态测试
- 特点
- 不必运行程序
- 发挥人的逻辑思维优势,无需条件,易展开
- 方法
- 代码审查(与设计的一致性、标准、可读性,表达式逻辑、结构合理性)
- 代码检查(与审查类似,但不如审查检查范围广)
- 桌面检查(阅读自己程序,效率低)
- 静态分析(借助于测试工具)
- 数据流、控制流、接口分析、表达式分析
- 特点
-
动态测试
- 特点
- 要求在代码实现的前提下进行
- 运行被测试的程序
- 要进行测试数据准备
- 方法
- 白盒测试
- 黑盒测试
- 灰盒测试
- 特点
软件测试标准如下:
- 软件测试的目标在于揭示错误。测试人员要始终站在用户的角度去看问题,系统中最严重的错误的是那些导致程序无法满足用户需求的错误。
- 软件测试必须基于“质量第一”的思想去开展各项工作。
- 事先定义好产品的质量标准。只有建立了质量标准,才能根据测试的结果,对产品的质量进行分析和评估。
- 软件项目一启动,软件测试也就开始,而不是等程序写完,才开始进行测试。
- 测试用例是设计出来的,不是写出来的,所以要根据测试的目的,采用相应的方法去设计测试用例,从而提高测试的效率,更多的发现错误,提高程序的可靠性。
- 对发现错误较多的程序段,应进行更深入的测试。
测试停止的依据(标准)
- 第一类标准:测试超过了预定时间,则停止测试。
- 第二类标准:执行了所有的测试用例,但并没有发现故障,则停止测试。
- 第三类标准:使用特定的测试用例设计方案作为判断测试停止的基础。
- 第四类标准:正面指出停止测试的具体要求,即停止测试的标准可定义为查出某一预订数目的故障。
- 第五类标准:根据单位时间内查出故障的数量和严重程度决定是否停止测试。