2019-06-10 18:25:30 xiadanying 阅读数 648

软件缺陷

  • 软件缺陷的定义
    对软件产品属性的偏离现象
    • 软件错误
    • 功能遗漏
    • 性能不符合要求
    • 设计产品缺陷
  • 软件缺陷与软件错误的区别
    • 软件缺陷包含软件错误
    • 软件错误必须被修正,但软件缺陷不一定
    • 软件错误仅指软件代码本身的问题

软件测试

  • 为什么要进行软件测试
    • 软件总存在缺陷,只有通过测试,才可以发现软件缺陷。也只有发现了缺陷,才可以将软件缺陷从软件产品或软件系统中清理出去。
    • 软件中存在的缺陷给我们带来的损失是巨大的,这也说明了软件测试的必要性和重要性。
  • 测试和调试的区别
    • 测试:找错误(证明程序有错)
    • 调试:改错误(使程序正确)
  • 软件测试的定义
    • Myers认为:“软件测试是为了发现错误而执行程序的过程。”明确提出 “寻找错误”是测试的目的。
    • 1983年IEEE对软件测试的定义:“使用人工或自动手段运行或测定某个系统的过程,其目的在于检测它是否满足规定的需求或是弄清楚预期结果与实际结果之间的差别。”明确地提出软件测试以检验是否满足需求为目的。
    • 从软件质量保证的角度看:软件测试是一种重要的软件质量保证活动。测试过程中的活动包括“分析”软件和“运行”软件。也有人认为软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。
  • 软件测试辩证统一的观点
    • 测试是为了证明程序有错,而不是证明程序无错。
    • 一个好的测试用例在于发现了至今没有发现的错误。
    • 一个成功的测试是发现了至今未发现的错误。
  • 软件的定义
    软件=程序+数据库+文档+服务
  • 软件测试并不等于程序测试
    软件测试贯穿于软件定义和开发的整个期间。
  • 软件测试的对象
    • 需求规格说明(系统测试)
    • 概要设计规格说明(集成测试)
    • 详细设计规格说明(单元测试)
    • 源程序
  • ANSI/IEEE STD729给出了软件质量定义
    • 软件产品满足规定的和隐含的与需求能力有关的全部特性和特征。
    • 软件产品质量满足用户要求的程度。
    • 软件各种属性的组合的程度。
    • 用户对软件产品的综合反映的程度。
    • 软件在使用过程中满足用户要求的程度。
  • 软件测试最致命的缺陷就是:不能进行彻底的测试。
  • 软件不可能做到“零缺陷”的原因
    • 测试覆盖率不可能穷尽。
    • 改正现有的缺陷可能会产生新的缺陷。
    • 测试工程师对产品的理解与用户的需求存在差异。
    • 测试的环境不一致。

软件产品特性

  • 正确性
    在预定环境下,软件满足设计规格说明及用户预期目标的程度。它要求软件本身没有错误。
  • 可靠性
    软件按照设计要求,在规定时间和条件下不出故障,持续运行的程度。
  • 效率
    为了完成预定功能,软件系统所需的计算机资源的多少。
  • 完整性
    为某一目的而保护数据,避免它受到偶尔的或有意的破坏、改动或遗失的能力。
  • 可使用性
    对于一个软件系统,用户学习、使用软件及为程序准备输入和解释输出所需工作量的大小。
  • 可维护性
    为满足用户新的要求,或当环境发生了变化,或运行中发现了新的错误时,对一个已投入运行的软件进行相应的诊断和修改所需工作量的大小。
  • 可测试性
    测试软件以确保其能够执行预定功能所需工作量的大小。
  • 灵活性
    修改或改进一个已投入运行的软件所需工作量的大小。
  • 可移植性
    将一个软件系统从一个计算机系统或环境移植到另一个计算机系统或环境中运行时所需的工作量大小。
  • 可复用性
    一个软件(或软件的部分)能再次用于其他应用(该应用的功能与此软件或软件部分的所完成的功能有关)的程度。
  • 互联性
    又称互相操作性。连接一个软件或其他系统所需工作量的大小。如果这个软件要联网或与其他系统通信或要把其他系统纳入到自己的控制之下,必须有系统间的接口,使其可以连接。

软件测试的原则

  • 所有的测试都应追溯到用户的需求
    • 系统中最严重的错误就会那些导致程序无法满足用户需求的错误。
  • 尽早地和不断地进行软件测试
    • 需求和设计时出现的缺陷占很大的比例。
    • 缺陷的修改成本随着阶段的推移将急剧上升。
    • 缺陷具有放大的特点。
  • 不可能完全的测试
    • 输入量太大
    • 执行路径太多
  • 80-20原则
    • 测试发现的错误中80%很可能起源于20%的模块中。应孤立这些疑点模块重点测试。
  • 注意测试中的群集现象
    • 在所测程序段中,若发现错误数多,则残存错误数目也比较多。
  • 避免测试自己的程序
    • 程序员轻易不会承认自己写的程序有错误。
    • 程序员的测试思路有局限性,做测试时很容易受到编程思路的影响。
    • 程序员测试不具有典型性。
  • 设计周密的测试用例
    • 设计测试用例时,应当包括合理的输入条件和不合理的输入条件。
  • 回归测试
    • 程序修改后必须进行回归测试,避免引入新的错误。
  • 严格执行测试计划,排除测试的随意性。
  • 确认BUG的有效性
    • 对测试错误结果一定要有一个确认过程。
    • 有时候测试人员提交的BUG不是真的BUG。
  • 妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。

软件测试分类

  • 按是否执行程序分类
    • 静态测试
      不运行被测程序,而是通过在对软件进行分析、检查和审阅达到测试目的。
    • 动态测试
      通过运行软件来检验软件的动态行为和运行结果的正确性,一般包括白盒测试、黑盒测试和灰盒测试技术三类。
  • 按测试技术分类
    • 灰盒测试
      介于白盒测试与黑盒测试之间的测试。
    • 黑盒测试
      将测试对象看成一个黑盒子,只在程序界面处进行测试,对接口进行测试,检查是否满足需求规格说明书。
    • 白盒测试
      结构测试,将程序看成一个透明的白盒子,检查所有的
  • 按测试阶段分类
    • 单元测试
      又称模块测试,目的在于检查每个单元模块是否实现详细设计说明书中的功能、性能、接口和设计约束等要求。
    • 集成测试
      又称组装测试,主要测试单元之间的接口关系,逐步集成为符合概要设计说明书要求的整个系统。
    • 系统测试
      在真实或模拟系统运行的环境下,为验证和确认系统是否达到需求规格说明书的要求,而对集成的硬件和软件系统进行的测试,采用黑盒测试技术。
    • 验收测试
      按照项目任务书或合同、供需双方约定的验收依据文档进行的整个系统的评测,决定是否接受系统。
  • 按照测试实施组织分类
    • 开发方测试(α测试)
      开发方在软件开发的环境下,证实软件的实现是否满足需求。
    • 用户测试(β测试)
      用户通过运行和使用软件找出软件使用过程中发现的软件缺陷。
    • 第三方测试
      介于开发方和用户之间的测试组织的测试。
  • 按是否使用工具划分
    • 手工测试
    • 自动化测试
      在这里插入图片描述
2019-07-10 13:34:58 qq_39029273 阅读数 45

测试用例的编写

常用的四种方法基本就够用了,等价类、边界值、正交实验法、错误推断法,辅以场景测试法、需求/设计转换法、探索式测试思想,可以应付绝大多数产品的测试。
1)在任何情况下都必须使用边界值分析方法,经验表明用这种方法设计出测试用例发现程序错误的能力最强。

2)必要时用等价类划分方法补充一些测试用例,尤其注意无效等价类情况。

3)如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用因果图法(或判定表法、正交试验法)。

4)用错误推测法再追加一些测试用例,主要是利用测试经验。

5)对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度,如果没有达到要求的覆盖标准,应当再补充足够的测试用例;参照白盒用例编写。

6)对程序的应用场景进行研究和思考,增加不同场景下的测试用例;用户场景测试必须重视,很大一部分程序错误就是因为测试场景与用户真实场景的差异性带来的。

7)对业务和程序有更深的理解之后,可以充分发挥发散思维和探索式想法;大家不要误解探索式测试就是漫无目的的测试,其实探索式测试有非常详细的测试指导思路。

软件测试基础理论

参考博客:https://blog.csdn.net/zimingzim/article/details/81709142

软件测试案例分析

参考博客:https://blog.csdn.net/zbj18314469395/article/details/80206482

2019-03-24 13:59:56 chan_fan 阅读数 60

导语

首先说呀,是因为想要投软件测试的实习,所以我就学习了一些软件测试的一部分理论,学艺不精呢。仅当日记。

软件测试定义

使用人工或自动的手段来运行或者测量软件系统的过程,目的是检验软件系统是否满足规定的需求,并找出与预期结果的差异。
它是为了发现错误而执行程序的过程,测试:为了寻找错误。

软件测试对象

软件=程序+文档+数据

  1. 源程序(分析软件并运行软件)
  2. 各开发阶段的文档(需求说明,概要设计说明)

软件测试分类

在这里插入图片描述

静态测试与动态测试

按照是否运行来分有两个:静态测试与动态测试
静态测试:就是单纯的在不运行程序的情况下进行检查程序是否有错误,或者说明文档等是否存在错误。
动态测试:实际输入样例进行测试是否发生错误。有几个步骤:编写样例,执行测试程序,分析样例输出的结果。

白盒测试与黑盒测试

按照是否查看代码分为两种:白盒测试与黑盒测试(其实从字面意思就很好理解,黑白,黑盒一般会想到暗盒)
白盒测试:就是能具体查看代码,测试每个模块代码里代码;
黑盒测试:就是不能查看代码,直接站在用户的立场去使用(测试)产品,得到结果;
黑盒与白盒就是一个是局部,一个是整体。

按开发阶段来测试

按开发阶段来测试
单元测试:测试的最小单位是模块,常常结合的是白盒测试;
集成测试:按照设计要求把通过单元测试的各个模块组装在一起发现有关接口的错误;
系统测试:真实的模拟环境下,验证和确认系统是否可以达到说明文档上的要求,结合集成硬件与软件系统的测试;
验收测试:验收测试,顾名思义就是最后阶段的交易或者交上成品的时候的进行按照说明文档上的整个系统的评测。

功能测试

按功能测试:根据功能需求(需求文档),看是否有功能缺少或者多余;

性能测试

性能测试评价一个产品或者组件与性能要求是否相符。
分类有:负载测试,压力测试 ,配置测试,并发测试,可靠性测试,安全性测试,疲劳测试,兼容测试,可用性测试

负载测试:在其他测试角度不变的情况下,变换一个测试角度不断增加压力,查看性能变化情况(测试角度:并发用户数,业务量,数据量。)
压力测试:系统在资源超负荷对对情况下的表现,验证系统的可靠性。
配置测试:用于性能的调优,调整环境之后,测试数据,进行数据对比,测试出最好的环境条件(环境:硬件配置,网络,操作系统,数据库等)
并发测试:模拟用户并发访问同一个应用模块,数据时引发的并发问题。

2019-12-09 22:00:02 weixin_44386231 阅读数 29

本文首发于伊洛的个人博客:https://yiluotalk.com,欢迎关注并查看更多内容!!!

软件测试理论基础

1.软件测试概念
  • 软件测试的定义:在规定的条件下对软件进行操作,以发现错误,对软件质量进行评估
  • 软件测试的范围:对软件形成中的文档数据程序进行测试,而不仅仅对程序进行测试
2.软件测试的目的
  • 测试的目的不仅仅是为了发现软件缺陷错误,而且也是对软件质量进行度量评估,以提高软件的质量
3.软件测试的原则
  • 基于测试是为了寻找软件的错误缺陷,评估与提高软件质量,因此我们提出了这样的一组测试原则,如下所示

1.所有的软件测试都应追溯到用户需求
2.应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭
3.完全测试是不可能的,测试需要终止
4.测试无法显示软件潜在的缺陷
5.充分注意测试中的群集现象
6.程序员应避免检查自己的程序
7.尽量避免测试的随意性

4.软件测试对象

1、根据软件的定义,软件包括程序数据文档,所以软件测试并不仅仅是程序测试。软件测试贯穿于整个软件生命周期
2、由于在整个软件生命周期中,各阶段有不同的测试对象,形成了不同开发阶段的不同类型的测试。需求分析概要设计详细设计以及程序编码等各阶段产生的文档,包括需求规格说明概要设计规格说明、详细设计规格说明以及源程序,都应作为“软件测试”的对象

5.软件测试风险

1.软件测试中的软件风险分析是根据预测软件将出现的风险,制定软
测试计划并排列优先等级风险分析是对软件中潜在的问题进行
识别估计评价的过程
2.风险也包括进度风险质量风险人员风险变更风险成本风险

6.初级软件测试工程师的职责

1.编写测试计划
2.编写测试用例
3.配置测试环境
4.执行软件测试
5.报告软件缺陷
6.更新缺陷报告内容
7.验证修正的缺陷
8.报告测试状态
9.完成测试相关的其它任务

…待续


在这里插入图片描述

享受每一天,Just Enjoy !

关注公众号获取更多内容.png

2019-10-05 13:14:54 RachelCSDN 阅读数 34

软件测试是什么?
在规定条件下对软件系统进行测试评估,检验软件系统是否满足规定需求或者找出预期结果与实际结果之间的差别。为软件产品的质量和评价提供依据。

为什么要进行软件测试?
1)提早预防、尽早发现、及时跟踪软件缺陷,满足产品发布需求。
2)确保软件完成了它所承诺或公布的功能。
3)确保软件满足性能和效率的要求。
4)确保软件是健壮的、适应用户的环境。

软件测试怎么测?
通过手工和自动化方式,利用各种测试工具和管理工具等手段、更早、更快、更多的发现缺陷,并确保这些缺陷得以修复。

软件测试对象?
1)软件程序。
2)与程序匹配的文档。
3)支撑软件运行的配置数据。

软件测试原则
1)测试应尽早介入:为了更多的发现和更好的解决软件中的缺陷,我们追求测试工作尽早的开展。
2)程序员应避免检查自己的程序。
3)测试证明软件存在缺陷:无论执行什么样的测试操作都能证明当前软件是有缺陷的。
4)不能执行穷尽测试:有些功能是没有办法将所有的测试情况都逻列出来,所以任何的测试操作都有结束的时间。
5)缺陷存在群集现象:对于软件功能说,核心功能占 20%,非核心是 80%。在实际工作中 我们会集中测试 20%的核心功能,所以这个部分发现缺陷的几率就会高于 80%。因此我们就会遇到缺陷都集中在 20% 功能模块里的现象。
6)不存在缺陷谬论:任何软件不可能是完美的。
7)某些测试需要依赖特殊的环境
8)杀虫剂现象:同样的一个测试用例不能重的执行多次,因为软件会对它产生免疫。

开发与测试区别:
开发是创造性的工作、正向思维。
测试是探索性工作、逆向思维。
开发重在技术的深度,测试重在技术的广度。
开发要紧跟技术潮流,测试经验的依赖性强。

软件测试理论

阅读数 98

没有更多推荐了,返回首页