测试理论基础知识

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、软件测试定义与目的 二、软件测试对象 三、软件测试种类 四、软件测试模型 五、测试的组织与人员 六、测试讨论
对程序的编写而言,它的许多错误是“先天的”。据美国一家 公司统计,属于需求分析和软件设计的错误约占64%,属于程序编 写的错误仅占36%。因此为了把握各个环节的正确性,对软件分析、 设计以及程序都需要进行各种验证和确认(verification & validation)工作。验证和确认都属于软件测试。
测试人员
测试职业发展 •1~2年,测试技能:熟悉整个测试过程及产品业务领域,学习和掌 握自动测试工具,学习测试自动化编程技术;开发和执行测试脚本, 承担系统测试实施任务;掌握编程语言、操作系统、网络与数据库方 面的技能。 条 件 特 别好 的 公 司,可以为每一个开 •3~4年,测试过程:深入了解测试过程,掌握测试过程设计及改进, 发人员分一名独立的 参与软件工作产品的同行评审;进一步了解产品业务领域,改进测试 测试人员。这样的测 试人员职业化程度很 自动化编程技术;能指导初级测试工程师;加强编程语言、操作系统、 高,可以完成单元测 网络与数据库方面的技能。 试、集成测试和系统 测试工作,能够实现 •4~5年,测试组织工作:管理1~3名测试工程师,担任任务估算、 开发与测试同步进行 管理及进度控制;进一步培养在软件项目管理及支持工具方面的技能。 。
对软件测试的正确理解
“1” 软件测试是一种有效的 提高软件质量的手段, 软件测试是一 但即使在投入上有所保 种有效的提高软件质 证,测试也不能百分之 量的手段,但即使在 百发现所有质量隐患。 投入上有所保证,测 况且软件质量并不仅仅 试也不能百分之百发 是测试出来的。 现所有质量隐患。况 且软件质量并不仅仅 是测试出来的。 “2” 如何在有限的投入下, 提高软件测试的效率和 产出是一件很见功底的 事。好的测试人员不仅 要掌握各种测试技术, 还要具备丰富的编程经 验和对BUG的敏感。测 。试的复杂之处,除了测 试技术问题之外,还有 测试管理问题。 “3” 测试不是可有可无,随 测试不是可有可 心所欲的。规范化的软 无,随心所欲的。规 件开发需要对软件测试 范化的软件开发需要 早做计划,分配必要的 对软件测试早做计划 时间,人力和财力等资 ,分配必要的时间, 源,并将其作为项目管 人力和财力等资源, 理的一个部分加以控制 并将其作为项目管理 和协调。 的一个部分加以控制 和协调。
一、软件测试定义与目的 二、软件测试对象 三、软件测试种类 四、软件测试模型 五、测试的组织与人员 六、测试讨论
测试的组织
么就让开发人员一直兼任测试人员的角色,相互测试对方的程序。如果人员 实在太少了,只好让开发者测试自己的程序,有测试总比没有测试好吧!
1 条件比较差的公司,也许只有一个项目和为数不多的一些开发人员。那
条件特别好的公司,可以为每一个开发人员分配一名独立的测试人员。 这样的测试人员职业化程度很高,可以完成单元测试、集成测试和系统测试 工作,能够实现开发与测试同步进行。
4
测试人员
测试人员的能力包括以下几项 1、一般能力:包括表达、交流、协调、管理、质量意识、过程方 法、软件工程等; 2、测试技能及方法:包括测试基本概念及方法、测试工具及环境、 专业测试标准、工作成绩评估等; 条 件 特 别好 的 公 司,可以为每一个开 3、测试规划能力:包括风险分析及防范、软件放行/接收准则制定、 发人员分一名独立的 测试目标及计划、测试计划和设计的评审方法等; 测试人员。这样的测 试人员职业化程度很 4、测试执行能力:包括测试数据/脚本/用例、测试比较及分析、缺 高,可以完成单元测 陷记录及处理、自动化工具; 试、集成测试和系统 测试工作,能够实现 5、测试分析、报告和改进能力:包括测试度量、统计技术、测试 开发与测试同步进行 报告、过程监测及持续改进。 。
软件测试不等于程序测试。软件测试贯穿于软件定义和开发的 整个期间。需求分析,概要设计,详细设计,以及程序编码等各个 阶段所得到的文档,包括需求规格说明,概要设计规格说明,详细 设计规格说明以及源程序,都是软件测试的对象。
一、软件测试定义与目的 二、软件测试对象 三、软件测试种类 四、软件测试模型 五、测试的组织与人员 六、测试讨论
胜利油田胜利软件责任有限公司 ShengLi Oil Field Victorysoft Co., Ltd. 2011年5月
一、软件测试定义与目的 二、软件测试对象 三、软件测试分类 四、软件测试模型 五、测试的组织与人员 六、测试讨论
软件测试是为了发现错误而执行程序的过程 软件测试是根据软件开发各阶段的规格说明和程序的内 部结构而精心设计了一批测试用例(即输入数据及其预期的输 出结果),并利用这些测试用例去运行程序,以发现程序错误 的过程。
动态测试
按照测试类型划分
名称
功能测试 试人员执行。 性能测试 安全测试 测试软件在各种状况下的性能,如在正常或最大负载下的状况。 测试该系统防止非法侵入的能力。
说明
测试软件的功能是否符合功能性需求,通常采用黑盒测试方式。一般由独立测
易用性测试 测试软件是否易用,主观性比较强。一般要根据很多用户的测试反馈信息,才 能评价易用性。 兼容性测试 测试该系统与其它软件硬件兼容的能力。
集成测试
系统测试
验收测试
按照项目任务书或合同、供需双方约定的验收依据文档进行的对整个系统的测 试与评审,决定是否接收或拒绝系统。
按照测试实施组织划分
名称
开发方测试
说明
通常也叫“验收测试”或“Alpha测试”。开发方通过检测和提供客观依 据,证实软件的实现是否满足规定的需求。验证测试是在软件开发环境下,由 开发者检测与证实软件的实现是否满足软件设计说明或软件需求说明的要求。 可以和软件的“系统测试”一并进行。 在用户的应用环境下,用户通过运行和使用软件,检测与核实软件实现是 否符合自己预期的要求。通常情况用户测试不是指用户 的“验收测试”,而是 指用户的使用性测试,由用户找出软件在应用过程中发现的软件的缺陷与问题, 并对使用质量进行评价。 Beta测试通常被看成是一种“用户测试”。Beta测试主要是把软件产品有 计划地免费分发到目标市场,让用户大量使用,并评价、检查软件。通过用户 各种方式的大量使用,来发现软件存在的问题与错误,把信息反馈给开发者修 改。 介于软件开发方和用户方之间的测试组织的测试。第三方测试也称为独立 测试。软件质量工程强调开展独立验证和确认(IV&V)活动。
X模型提出针对单独 的程序片段进行相互分 离的编码和测试,此后通 过频繁的交接,通过集成 最终合成为可执行的程 序。 X模型还定位了探索 性测试,这一方式往往 能帮助有经验的测试人 员在测试计划之外发现 更多的软件错误。但 这 样可能对测试造成人力、 物力和财力的浪费,对 测试员的熟练程度要求 比较高。
用户测试
第三方测试
按照测试技术划分(一)
名称
白盒测试
说明
通常对程序内部结构的分析、检测来寻找问题。白盒测试可以把程序看成 装在一个透明的白盒子里 ,也就是清楚了解程序结构和处理过程,检查是否所 有的结构及路径都是正确的,检查软件内部动作是否按照设计说明的规定正常 进行。白盒测试又称结构测试。 通过软件的外部表现来发现其缺陷和错误。黑盒测试把测试对象看成一个 黑盒子,完全不考虑程序内部结构和处理过程。黑盒测试是在程序界面处进行 测试,它只是检查程序是否按照需求规格说明书的规定正常实现。 介于白盒测试与黑盒测试之间的测试。灰盒测试关注输出对于输入的正确 性;同时也关注内部表现,但这种关注不像白盒测试那样详细、完整,只是通 过一些表征性的现象、事件、标志来判断内部的运行状态。 灰盒测试结合了白盒测试和黑盒测试的要素。它考虑了用户端、特定的系 统知识和操作环境。他在系统组件的协同环境中评价应用软件的设计。
3
4
H模型中, 软件测试过程完全 独立,贯穿于整个产品的周期,与 其他流程并发地进行,某个测试 点准备就绪时,就可以从测试准 备阶段进行到测试执行阶段。 软件测试可以尽早的进行,并且 可以根据被测物的不同而分层 次进行。 H模型揭示了一个原理:软件 测试是一个独立的流程,贯穿产 品整个生命周期,与其他流程并 发地进行。H模型指出软件测试 要尽早准备, 尽早执行。只要某 个测试达到准备就绪点,测试执 行活动就可以开展。
对软件测试的正确理解
“4” 开发和测试是软件项目相辅 相成的两个过程,人员间的 交流,协作和配合是提高整 体效率的重要因素。 “5” 软件产品开发完毕,再进行 测试的观念是有悖于生命周 期理论的。软件产品质量问 题越晚发现,修复的代价越 大。
一些常识和经验之谈
测试能提高软件的质量,但是提高质量不能依赖测试 测试只能证明缺陷存在,不能证明缺陷不存在。“彻底地测试”难以 成为现实,要考虑时间、费用等限制,不允许无休止地测试。我们应当 祈祷:软件的缺陷在产品被淘汰之前一直没有机会发作 测试的主要困难是不知道如何进行有效地测试,也不知道什么时候可 以放心地结束测试 每个开发人员应当测试自己的程序(份内之事),但是不能作为该程 序已经通过测试的依据(所以项目需要独立测试人员) 80-20原则:80%的缺陷聚集在20%的模块中,经常出错的模块改错 后还会经常出错 测试应当循序渐进,不要企图一次性干完,注意“欲速则不达”
2 条件一般的公司,没有独立的测试小组。单元测试、集成测试工作由项目
开发小组承担。当项目进展到系统测试阶段,可以从项目外抽调一些人员, 加上开发人员,临时组织系统测试小组。
3 条件比较好的公司,可以设置一个独立的测试小组,该测试小组轮流参加
各个项目的系统测试。而单元测试、集成测试工作由项目的开发小组承担。
按照开发阶段划分
名称
单元测试
说明
又称模块测试,是针对软件设计的最小单位——程序模块进行正确性检验的 测试工作。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以 平行地独立进行单元测试。 也叫组装测试。通常在单元测试的基础上,将所有模块进行有序的、递增 的测试。集成测试是检验程序单元或部件的接口关系,逐步集成为符合概要设 计要求的程序部件或这个系统。 每个版本提交集成测试时,都需要进行冒烟测试,即对程序主要功能进行 验证。冒烟测试也叫版本验证测试、提交测试。 系统测试是为了验证和确认系统是否达到其原始目标,而对集成的硬件和软件 系统进行的测试。系统测试是在真实或模拟系统运行的环境下,检查完整的程 序系统能否和系统(包括硬件、外设、网络和系统软件、支持平台等)正确配 置、连接、并满足用户需求。
软件测试方法和技术的分类与软件开发过程相关联,他贯穿了 整个软件生命周期。走查、单元测试、集成测试、系统测试用于整 个开发过程中的不同阶段。开发文档和源程序可以应用单元测试应 用走查的方法;单元测试也可应用白盒测试方法;集成测试应用近 似灰盒测试方法;而系统测试应用黑盒测试方法。
一、软件测试定义与目的 二、软件测试对象 三、软件测试种类 四、软件测试模型 五、测试的组织与人员 六、测试讨论
黑盒测试
Leabharlann Baidu灰盒测试
按照测试技术划分(二)
名称
静态测试
说明
静态测试技术又称静态分析技术,静态测试实际上是对软件中的需求说明书、 设计说明书、程序源代码等进行非运行的检查,静态测试包括:走查、符号执行、 需求确认等。 动态测试是指通过人工或使用工具运行程序进行检查、分析程序的执行状态 和程序的外部表现。以上讨论的白盒测试、黑盒测试、灰盒测试,在实现测试方 法上既包括了动态测试也包括了静态测试。
1 V模型中的过程从左到 右,描述了基本的开发 过 程和测试行为。V模型的价 值在于它非常明确地标明 了测试过程中存在的不同 级别,并且清楚地描述了 这些测试阶段和开发过程 期间各阶段的对应关系。 局限性: 把测试作为编 码之后的最后一个活动, 需求分析等前期产生的错 误直到后期的验收测试才 能发现
2 W模型是V模型的发展, 强调的是测试伴随着整个 软件开发周期,而且测试 的对象不仅仅是程序,需 求、功能和设计同样要测 试。测试与开发是同步进 行的,从而有利于尽早地 发现问题。 W模型也有局限性。W 模型和V模型都把软件的 开发视为需求、设计、编 码等一系列串行的活动, 无法支持迭代、自发性以 及变更调整。
测试的目的在于发现错误; 一个好的测试用例在于能发现至今未发现的错误; 一个成功的测试是发现了至今未发现的错误的测试。
对软件测试的误解 如果发布出去的软件有质量问题,那是软件测试人员的错。 软件测试技术要求不高,至少比编程容易多了 软件测试随便找一个能力差的人就能做。 软件测试是测试人员的事,与开发人员无关。 设计-实现-测试,软件测试是开发后期的一个阶段
相关文档
最新文档