测试基础概念

测试的定义、测试的分类、测试的方法、测试的生命周期。

测试计划、测试方案、测试策略、测试用例的编写。

BUG的定义、BUG的分类、BUG的六要素、BUG的生命周期。

测试和开发流程的关系、瀑布流、V字形、W字型(双V)、螺旋型、敏捷等等。

戴明环、5W2H等分析管理的方法

质量管理体系CMMI(了解)

一:测试的定义

测试定义:
在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

目的:
验证产品是否满足客户的要求,确保交付给用户的产品满足用户的需要

软件测试的原则:

测试应尽早启动、介入(需求分析阶段)所有的测试应追溯到用户需求
测试证明软件存在缺陷,不可能执行穷尽测试,完全测试是不可能的,测试需要终止。
二八原则;

测试发现的错误中80%很可能的起源于20%的模块中。(缺陷存在群集现象)
对错误结果要进行一个确认的过程(测试的详细数据,截图,前置条件等)
制定严格的测试计划
妥善保管测试过程中的所有文档
程序员尽量避免自己的检查程序
设计测试用例是应该考虑到合法的输入和不合法的输入

测试人员在软件开发过程中的任务是什么?

  1. 尽可能早的找出系统中的Bug;
    2、避免软件开发过程中缺陷的出现;
    3、衡量软件的品质,保证系统的质量;
    4、关注用户的需求,并保证系统符合用户需求。
    总的目标是:确保软件的质量。

软件质量

 概括地说,软件质量就是“软件与明确的和隐含的定义的需求相一致的程度”。具体地说,软件质量是软件符合明确叙述的功能和性能需求、文档中明确描述 的开发标准、以及所有专业开发的软件都应具有的隐含特征的程度。 影响软件质量的主要因素,这些因素是从管理角度对软件质量的度量。可划分为三组,分别反应用户在使用软件产品时的三种观点。

正确性、健壮性、效率、
完整性、可用性、风险(产品运行);可理解性、可维修性、灵活性、可测试性(产品修改);
可移植性、可再用性、互运行性(产品转移)

测试结束的标准
用例全部测试。
覆盖率达到标准。
缺陷率达到标准。
其他指标达到质量标准

二:测试的分类:

按是否运行划分:

静态测试是不运行测试程序(不执行程序),而寻找程序代码中可能存在的错误或评估程序代码的过程。通过分析或者监察源程序的语法、结构、过程、接口等来检查程序的正确性,找出问题。例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等,

------静态测试结果可用于进一步的查错,并为测试用例选取提供指导。

动态测试是运行被测试程序(执行程序),输入相应的测试数据查运行结果与预期结果的差异,判定执行结符合要求,从而检验程序的正确性、可靠性性并分析系统运行效率和健壮性等性。

-----这种方法由三部分组成:构造测试实例、执行程序、分析程序的输出结果。

按是否查看代码划分:

黑盒测试:也称功能测试,测试中把被测的软件当成一个黑盒子,不关心盒子的内部结构是什么,只关心软件的输入数据与输出数据。是基于规格说明的测试,主要针对软件界面及功能测试

 

白盒测试:白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒指的打开盒子,去研究里面的源代码和程序结果。

灰盒测试:是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。简单来说检验程序中的每条通路是否能按照预定要求正确工作不顾它的功能。

按是否手工执行划分:

手工测试就是由人去一个一个的输入用例,然后观察结果,和机器测试相对应,属于比较原始但是必须的一个步骤。

优点:自动化无法替代探索性测试、发散思维类无既定结果的测试。

缺点:执行效率慢,量大易错。

自动化测试就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。简单说自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。自动化测试比如功能测试自动化、性能测试自动化、安全测试自动化。

通常所说的自动化是指功能测试自动化,在GUI、性能等测试中用得较多。

按开发阶段划分:

单元测试是对软件组成单元进行测试。其目的是检验软件基本组成单位的正确性。测试的对象是软件设计的最小单位:模块。又称为模块测试

测试阶段:编码后

测试对象:最小模块

测试人员:白盒测试工程师或开发工程师

测试依据:代码和注释+详细设计文档

测试方法:白盒测试

测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试

集成测试也称联合测试、组装测试,将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。阿旺主要目的是检查软件单位之间的接口是否正确。

测试阶段:一般单元测试之后进行

测试对象:模块间的接口

测试人员:白盒测试工程师或开发工程师

测试依据:单元测试的模块+概要设计文档

测试方法:黑盒测试与白盒测试相结合

测试内容:模块之间数据传输、模块之间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系统的影响

– 非增式集成

– 增式集成

• 自顶向下增式测试

• 自底向上增式测试(最常使用的方法)

 

确认测试由集成测试进入系统测试之前,需要对软件是否可以进入系统测试进行评价,这个过程成为确认测试– 确认测试需要做的工作包括:有效性测试、软件配置审(无明确性规定)

系统测试将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试。时间大部分在系统测试执行阶段

测试阶段:集成测试通过之后

测试对象:整个系统(软、硬件)

测试人员:黑盒测试工程师

测试依据:需求规格说明文档

测试方法:黑盒测试

测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性等

验收测试是部署软件之前的最后一个测试操作。它是技术测试的最后一个阶段,也称为交付测试验收测试的目的是确保软件准备就绪,按照项目合同、任务书、双方约定的验收依据文档,向软件购买都展示该软件系统满足原始需求。

测试阶段:系统测试通过之后

测试对象:整个系统(包括软硬件)。

测试人员:主要是最终用户或者需求方。

测试依据:用户需求、验收标准

测试方法:黑盒测试

测试内容:同系统测试(功能...各类文档等)

其他:

冒烟测试:投入较少的人力和时间验证基本功能,通过则测试准入。

测试阶段:正规测试一个新版本之前

测试对象:每一个新编译的需要正式测试的软件版本

测试人员:开发人员在个人版本的软件上执行,现基本执行对象为测试人员,版本编译人员

测试依据:用户需求、验收标准

测试方法:黑盒测试

测试内容:确定新的程序代码不出故障,确认软件基本功能正常可以进行后续的正式测试工作

回归测试在发生修改之后重新测试先前的测试以保证修改的正确性。理论上,对软件的任何新版本,都需要进行回归测试,验证以前发现和修复的错误是否在新软件版本上再现。

 随机测试主要是根据测试者的经验对软件进行功能和性能抽查。

测试阶段:正规测试一个新版本之前

测试对象:被测软件的一些重要功能进行复测,也包括测试那些当前的测试用例没有覆盖到的部分。

测试人员:测试人员

测试依据:测试说明书执行用例测试

测试方法:黑盒测试

测试内容:保证测试覆盖完整性的有效方式(重要功能复测)

 安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程 。

检查系统对非法浸入的防范能力,检查系统中已经存在的系统安全性、保密性措施是否发挥作用,有无漏洞。

现在对安全知识的普及,大家意识都提上来了。比如现在越来越多的不支持HTTP协议,转用HTTPS等。

恢复测试主要检查系统的容错能力,

可移植性测试测试软件是否可以被成功移植到指定的硬件或软件平台上。

引导测试软件开发中,验证系统在真实硬件和客户基础上处理典型操作的能力

健全测试: 软件主要功能成分的简单测试以保证它是否能进行基本的

探索性测试:可以说是一种测试思维技术。它没有很多实际的测试方法、技术和工具,但是却是所有测试人员都应该掌握的一种测试思维方式。探索性强调测试人员的主观能动性,抛弃繁杂的测试计划和测试用例设计过程,强调在碰到问题时及时改变测试策略。探索性测试自动化暂时无法代替

α测试(内测):是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。α测试的目的是评价软件产品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持)。

大型通用软件,在正式发布前,通常需要执行Alpha和Beta测试。α测试不能由程序员或测试员完成。

 β测试(公测)Beta测试是一种验收测试。Beta测试由软件的最终用户们在一个或多个客房场所进行。

α测试与Beta测试的区别:

测试的场所不同:

Alpha测试是指把用户请到开发方的场所来测试,beta测试是指在一个或多个用户的场所进行的测试。

测试环境:

Alpha测试的环境是受开发方控制的,用户的数量相对比较少,时间比较集中。beta测试的环境是不受开发方控制的,用户数量相对比较多,时间不集中。

alpha测试先于beta测试执行。通用的软件产品需要较大规模的beta测试,测试周期比较长

三:测试的生命周期

软件生命周期:是指从软件产品的设想开始到软件不再使用而结束的时间。

测试和开发流程的关系:瀑布流、V字形、W字型(双V)、螺旋型、敏捷等。

瀑布模型:(需求不明确的时候无法使用)

 

特点: 从上一项活动接受本项活动的工作对象,作为输入;

利用这一输入实施本项活动应完成的内容;

给出本项活动的工作成果,作为输出传给下一项活动。

优缺点:

优点:

– 强调开发的阶段性;

– 强调早期计划及需求调查;

– 强调产品测试。

  缺点:

– 依赖于早期进行的唯一一次需求调查,不能适应需

求的变化;

– 由于是单一流程,开发中的经验教训不能反馈应用

于本产品的过程;

– 风险往往迟至后期的开发阶段才显露,因而失去及

早纠正的机会。

螺旋模型:

 

优缺点:

优点:

– 强调严格的全过程风险管理

– 强调各开发阶段的质量

– 提供机会检讨项目是否有价值继续下去。

缺点:

– 引入非常严格的风险识别、风险分析和风险控制,这对风险管理的技能水平提出了很高的要求。这 需要人员、资金和时间的投

V模型:

 

V模型目的是改进软件开发的效率和效果。是瀑布模型的变种,明确的标注了测试过程中存在的不同类型的测试,并且清楚的描述了这些测试阶段和开发过程期间各阶段的对应关系。

V模型指出,单元和集成测试应检测程序的执行是否满足软件设计的要求;系统测试应检测系统功能、性能的质量特性是否达到系统要求的指标;验收测试确定软件的实现是否满足用户需要或合同的要求

局限性:仅仅把测试作为在编码之后的一个阶段,未在需求阶段就进入测试

双V模型:(w模型)

 

W模型增加了软件各开发阶段中应同步进行的验证和确认活动。W模型由两个V字型模型组成,分别代表测试与开发过程,图中明确表示出了测试与开发的并行关系。

特点:测试的对象不仅是程序,需求、设计等同样要测试,测试与开发是同步进行的

优点:

有利于尽早地全面的发现问题。例如,需求分析完成后,测试人员就应该参与到对需求的验证和确认活动中,以尽早地找出缺陷所在。

同时,对需求的测试也有利于及时了解项目难度和测试风险,及早制定应对措施,显著减少总体测试时间,加快项目进度。

局限性

需求、设计、编码等活动被视为串行的;测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。无法支持迭代的开发模型。对于当前软件开发复杂多变的情况,W模型并不能解除测试管理面临着困惑

测试周期分为计划、设计、实现(开发)、执行、总结。其中:

测试周期与开发周期流程:
计划(需求阶段):对整个测试周期中所有活动进行规划,估计工作量、风险,安排人力物力资源,安排进度等(测试人员了解需求、对需求进行分解,得出测试需求,编写测试

计划/测试方案)
设计:完成测试方案,从技术层面上对测试进行规划(测试人员适当的了解设计,对于设计测试用例是很有帮助的,测试人员可以根据需求和设计编写一部分测试用例)
实现(开发)进行测试用例和测试规程设计(测试人员一般是不需要编码的,但已经编码的模块,专业的白盒,测试人员可以计划执行单元测试)
执行(测试):根据前期完成的计划、方案、用例、规程等文档,执行测试用例。(测试阶段是软件测试人员最为重要的工作阶段,这时候测试人员需要把测试用例进一步细化,根据测试用例和计划执行测试,在执行的过程中记录缺陷,测试完成后整理测试报告。)
总结(实施):记录测试结果,进行测试分析,完成测试报告。

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值