软件测试基础 什么是测试? • 测试是为了发现程序中的缺陷而执行程序的过程;测试是为了发现程序中的缺陷而执行程序的过程; (缺陷是一种泛指,可以是功能错误,也可以是性能低下、 易用性差等错误); 测试是假定程序中存在错误 因而想通过测试来发现尽• 测试是假定程序中存在错误,因而想通过测试来发现尽 可能多的错误。 Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 测试目的 • 快速找出重要的软件问题 • 对产品质量提出总体评估 不同的目的需• 对产品质量提出总体评估 • 帮助决策者做出放行的决定 • 阻止产品过早地放行。 不同的目的需 要不同的测试 策略,因而也 就产生了不同• 帮助预测和控制产品成本 • 就测试和与测试员协作方式培训客户 为了满足特定客户要求 完成所有必要的 作 就产生了不同 的测试,文档 及结果• 为了满足特定客户要求,完成所有必要的工作 • 确认产品达到某种具体标准 • 保证测试过程能够达到可分清责任的标准 及结果。 • 保证测试过程能够达到可分清责任的标准 • 以最小化成本、时间或尽可能减少副作用的方式,完成自己的工作 • 帮助客户改进产品的质量及可测试性 • 帮助客户改进其过程 Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 值得注意的 – 开发人员不应测试自己开发的程序; 设计测试用例时 不仅有确定的输入数据 还有确定的输出数– 设计测试用例时,不仅有确定的输入数据,还有确定的输出数 据; – 测试用例不仅有合理的,也要有非合理的; – 除了检查程序是否做完了它应该做的事,还要检查它是否做了 不应该做的事; – 保留全部测试用例,作为测试积累;保留全部测试用例,作为测试积累; – 程序中存在错误的概率与在该段程序中已发现的错误数成正比。 Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 测试工程师的职责 • 测试软件产品 • 评估软件质量 • 度量质量等级 • 协助项目经理完成项目任务• 协助项目经理完成项目任务 Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 测试人员的素质要求 – 责任感 • 坚持原则、不放弃 • 有问题及时汇报 沟通能力– 沟通能力 • 与用户、项目组的沟通 – 独立的判断和自学习能力独立的判断和自学习能力 • 坚持观点,不随声附和 • 喜欢探寻、钻牛角尖不一定是坏事情 – 耐心、自我督促 – 团队精神 与开发组整体为 个目标开展活动 有时需要妥协• 与开发组整体为一个目标开展活动,有时需要妥协 Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 对测试人员的要求 业务流程• 业务流程 • 体系框架 • 分析模式分析模式 • 设计模式 • 代码规范 • 丰富的经验 • 出人意料的想法 怀疑 切的精神• 怀疑一切的精神 Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 测试人员与其他成员的关系 测试人员是程序员与客户的联系者• 测试人员是程序员与客户的联系者 • 测试人员是程序员的建议者 • 测试人员是程序员的帮助者测试人员是程序员的帮助者 • 测试人员不是程序员的对手 • 测试人员不是程序员的上司 程序员 客户 Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 测试的误区 • 误区一: 忽视对正常输入的测试。 • 误区二: 忽视设计阶段的参与与评估 • 误区三: 忽视测试计划与测试文档的建立及维护。 误区四 忽视缺陷的分析 报告及跟踪• 误区四: 忽视缺陷的分析, 报告及跟踪。 • 误区五: 错误的测试目标及测试终止条件。 • 误区六: 不懂得合理调配使用测试人员的知识技能结构。误区六: 不懂得合理调配使用测试人员的知识技能结构。 Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 软件缺陷 软件未达到客户需求的功能和性能• 软件未达到客户需求的功能和性能; • 软件超出客户需求的范围; • 软件出现客户需求不能容忍的错误;软件出现客户需求不能容忍的错误; • 软件的使用未能符合客户的习惯和工作环境。 Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 软件测试步骤 • 软件测试策略可以放到过程中来考虑。 • 在软件工程环境中的测试事实上是顺序实现的四个步骤的序列• 在软件工程环境中的测试事实上是顺序实现的四个步骤的序列。 高层测试 需求 集成测试设计 单元测试编码 软件测试步骤测试“方向” Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 软件测试步骤 软件测试步骤 • 在最开始 测试着重于每一个单独的模块 以确保每个模块都能正• 在最开始,测试着重于每 个单独的模块,以确保每个模块都能正 确地执行,所以,我们把它叫做单元测试,单元测试中大量地使 用白盒测试技术,检查每一个控制结构的分支以确保完全覆盖和最 大可能的错误检查大可能的错误检查; 接下来 模块必须装配或集成子 起形成完整的软件包 也就是集• 接下来,模块必须装配或集成子一起形成完整的软件包,也就是集 成测试,集成测试解决的是验证与程序构造的的双重问题,在集 成过程中随用最多的是黑盒测试技术,当然,为了保证覆盖一些大 的分支,也会用一定数量的白盒测试技术; Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 软件测试步骤 • 再接下来 一系列高级测试就开始了 确认标准(在需求分析阶段• 再接下来, 系列高级测试就开始了,确认标准(在需求分析阶段 就已经确定了的)开始进行,确认测试提供了对软件符合所有功能、 行为及性能需求的最后保证,在确认测试中使用黑盒测试 • 最后,再高级的测试就要进行了----系统测试(属于计算机系统工 程领域),在系统测试中要保证系统与其他的系统元素(如:硬件、程领域),在系统测试中要保证系统与其他的系统元素(如:硬件、 人员、数据库)结合在一起的正确地执行,系统测试要验证所有的 元素能正常地吻合在一起,从而完成整个系统的功能/性能。 Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 测试完成标准 • 每当讨论软件测试的时候都会引发一个经典问题“我们什么时候做测 试呢?我们怎样知道我们的测试已经足够了呢?”------很遗憾,迄今 对这个问题还没有 个确定的答案对这个问题还没有一个确定的答案。 • 对上面问题的一个答复是“你永远不可能完成测试,这个重担会简单 地从你(或开发人员)的身上转移到客户的身上”从你 或开发人员 的身 转移到客户的身 • 对上面问题的另一个答复是“当你时间不够或者资金不够用的时候, 就完成了测试”。 缺陷数量 最合适的测试缺陷数 最合适的测试 测试的费用 质 量 测试过少 测试过多测试过多 Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 测试的程度 (测试费用曲线图) 测试完成标准 但最为 个软件 程师 我们需要 个更为 格的标准来决定是• 但最为一个软件工程师,我们需要一个更为严格的标准来决定是否已 经进行了做够的测试。 • Musa和Ackerman提出了一个基于统计标准的答复“……如果在按照 概率的方法定义的环境中,1000个CPU小时内不出错的操作概率大于 0 995的话 那么我们就有95%的信心说我们已经进行足够的测试”0.995的话,那么我们就有95%的信心说我们已经进行足够的测试” Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 在OpenOffice中字体是怎样的呢? • 测试的任务和策略 Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 在WordPad中又是怎样呢? Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. WordPad与Word进行比较 • 是不是略微不同呢?是不是略微不同呢 • WordPad Word Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 做比较更容易 • 将所有的字全选会更容易对比将所有的字全选会更容易对比 Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 现在我们看出了区别 • 不同的原则会引发不同的差异?• … 不同的原则会引发不同的差异? • 原则问题强调在测试中基本的判断作用 测试是一个认知测试是 个认知 的活动而并不 是机械活动。 Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 一个简单因素却很危险 • 对于WordPad,我们并不关心字体大小的排版精确标准 • 通常说 如果我们只是关注产品的严重问题比关注产品是否满足• 通常说,如果我们只是关注产品的严重问题比关注产品是否满足 相关标准对于测试来说更简单些 • 有效的测试需求是我们理解用户的标准 我们要考虑产 品是否有问题 而不是产品是 否失效 Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 一个简单因素却很危险 如果应用相同的评价标准会接近什么呢? • 我们应用于wordpad• 我们应用于wordpad • 在Open Office、Ms Word或者是Adobe PageMaker? 在风险测试中: • 我们选择我们认为尽可能暴露严重问题的测试 并 忽略我们认为并不能暴露严重问题的测试或者 能暴露却是• 并且忽略我们认为并不能暴露严重问题的测试或者可能暴露却是没 有人关注的问题 同样的评价标准会因为不同 的背景而产生不同的结果 Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 那我们测试什么呢? 测试要覆盖那些内容呢? • 每一个字体大小(一个“Point”的十分之一) • 在相同字体中每个字符 • 字体大小转换方法 • 每个与字体大小有关的界面 比较在 中的字体与其他文档格式中的字体大小• 比较在WordPad中的字体与其他文档格式中的字体大小 • 在字体与图片卡及模式的相互关系 • 打印屏幕中的字符• 打印屏幕中的字符 Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 评价的标准是什么呢? • 关于排版我们知道多少呢? • 定义每个“Point”的值 目前至少有6种不同的定义;• 定义每个 Point 的值,目前至少有6种不同的定义; (http://www.oberonplace.com/dtp/fonts/point.htm) • 绝对的字符大小有可能是可以被测量的,但不一定是舒服的 (http://www.oberonplace.com/dtp/fonts/fontsize.htm) 怎样才能使字体尽可能地接近标准呢?怎样才能使字体尽可能地接近标准呢? 使用探索法,比如: • 字符相对的大小 测试就是思考,字符相对的大小 • 与Ms Word相比较 • 多征求不同人在不同的使用方面的想法 测试就是思考, 探索会给人启发 Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 运用探索法快速产生测试思路 • 探索法是一种经验规则,是一种基于经验作出的猜测的方法 • 探索法会使你混乱的想法或方法简单化 从而解决问题• 探索法会使你混乱的想法或方法简单化,从而解决问题。 • 如果探索法作为权威的手段那会阻碍你的测试 • 为了明智地运用探索法,请注意:探索法中并没有智慧,智慧来自 测试员 • 盲目地使用自己并不了解的探索法法并不是好的测试实践 探索法所能做的 只不过就是为测试员的思考提出建议• 探索法所能做的,只不过就是为测试员的思考提出建议。 “heuristic”这个词来源于希腊语,表示“ 开始发现”,探索法并不能保证得到正确的 答案或者最佳答案,但很有用。最早运用探答案或者最佳答案,但很有用。最早运用探 索法的著作是《How to Solve it》(Polya 1957) Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 探索要求大量思索 探索就是侦查,是没有边界的搜索 1)向前思索:根据已知探索未知,从所看到的探索还没有看到的。例如,1)向前思索:根据已知探索未知,从所看到的探索还没有看到的。例如, 看到一个打印菜单项,点击看看会发生什么。 2)向后思索:从怀疑或想象的东西返回到已知,尝试证实或否定自己的 推测 例如 或以是否有打印这个文档的方法 于是打开菜单并检查是推测。例如,或以是否有打印这个文档的方法,于是打开菜单并检查是 否有打印菜单项 3)侧向思索:让自己的工作由于新冒出的想法而转移,然后将探索主题 回到主线索上 例如 这个图很有意 我想如 打印 些 复杂的返回到主线索上。例如,这个图很有意思,我想如果打印一些更复杂的 图,看看会怎样 即使没有要测试的产品,也可以探索。可以即使没有要测试的产品,也可以探索。可以 使用同样的思索过程探索一组文档,或与程 序员面谈。 Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 有效的探索法 • 有效的探索法 • 与产品一致• 与产品 致 • 要与类似产品一致 • 要与原习惯一致 • 要与我们的设想一致 • 要与需求一致 要与具体规格原则 致 这些对于解释Bug 及它们的重要性特 别有用• 要与具体规格原则一致 • 要与用户的要求一致 • 与产品要达到的目的一致 别有用 • 与产品要达到的目的 致 Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 一个程序在某些方面来说是失效的 来自Doug Hoffman的笔录 •• Program state Program state, including uninspected outputs System state uninspected outputs System state System under Intended inputs Monitored outputs test Configuration and system resources Impacts on connected devices / system resourcesy From other cooperating y To other cooperating Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. pg processes, clients or servers pg processes, clients or servers 一个程序在某些方面来说是失效的 深入分析 –即使我们走查了代码的所有分支 以及附属内容(数据 资源即使我们走查了代码的所有分支,以及附属内容(数据,资源, 时效)还会有不确定的内容。 值得注意的地方 • 人们经常看不到他们不注意地方 • 程序也检测不到它没有被告诉注意地方 这通常是导致程序失效的原因 我们要注意避免这些错误的状况发• 这通常是导致程序失效的原因.我们要注意避免这些错误的状况发 生 测试不可能覆盖软件的所 有部分有部分 Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 原则问题与测试自动化思想 • 我们经常听得最多的话就是测试要自动化 • 自动化测试依赖于我们预料软件在什么情况下有可能出现问题的计• 自动化测试依赖于我们预料软件在什么情况下有可能出现问题的计 划能力 Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 测试自动化思想 一种普遍定义原则方法是将其作为一个结果来看待 • 在这种思想指导下 与从原则中获得的结果进行比较 如果一致• 在这种思想指导下,与从原则中获得的结果进行比较,如果 致, 则我们认为程序通过测试,否则就是失败的 • 像我们例子中的一样,比较WordPad 与MS Word • 这些都接近自动化测试的思想 但是 …… 我们比较什么?我们 较什么 Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 自动化比较是探索 误报警 • Word与WordPad中 可能是使原匹配的地方错误地认为不一致 或• Word与WordPad中,可能是使原匹配的地方错误地认为不 致,或 者是不问题 • 测试自动化最大的问题是比较老版本与新版本,设计的改变必然会 花掉我们修改 试用例的时间花掉我们修改测试用例的时间 被遗漏的问题 • WordPad 有可能是由于Word本身也是错误的• WordPad 有可能是由于Word本身也是错误的 • 自动化测试必须要判断排除误报警及问题遗漏 Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 测试策略 测试计划策略: • 测试计划是知道自己测试过程的一套想法• 测试计划是知道自己测试过程的 套想法 • 我们使用测试策略这个词表示指导整个项目的测试设计 • 测试策略是好的测试计划的重要组成部分,使将测试与任务联系起 来的桥梁 让我们举例说明测试策路的思想 Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 一个思考试验 假设你在测试一个具有计算功能的程序,类似于电子表格,需要考虑 以下4个过程内容:以下4个过程内容: • 1)计算机程序 • 2)早期商业产品过程,按照项目经理的要求,帮助他识别产品风 险 并且帮助程序员了解他们程序的可靠性 • 3)晚期的商业产品过程 帮助项目经理决定产品是否被完成• 3)晚期的商业产品过程,帮助项目经理决定产品是否被完成 • 4)对其他设备的控制 Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 一个思考试验 在每个过程中: • 你的任务是什麽?• 你的任务是什麽? • 怎样组织你的测试才能完成任务? • 为了测试出问题你应该怎样?为什麽? • 哪些Bug与其他Bug相比不重要?为什麽? • 怎样利用文档证明你的工作?为什麽? 假如某程序有 个数字输 框 说明书中写明这个文本框必须填写• 假如某程序有一个数字输入框,说明书中写明这个文本框必须填写 单位数,但是并没有说明是否能支持汉字字符,你将用汉字测试它 吗?如果时间有限你怎样做? Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 软件测试策略 软件策略是把软件测试用例的设计方法集成到一系列已经周密计划 过的步骤中去,从而使得软件得以成功的完成。过的步骤中去,从而使得软件得以成功的完成。 软件测试策略为软件开发人员、质量保证组织和客户提供了一个路 线图 这个路线图描述了测试的步骤 以及当这些步骤在计划和线图------这个路线图描述了测试的步骤,以及当这些步骤在计划和 实施过程中需要的工作量、时间和资源。 因此,任何测试策略都必须和测试计划、测试用例设计、测试执行、 还有测试结果数据的收集与分析结合在一起。 种软件测试策略应当一种软件测试策略应当 足够灵活并足够严格 Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved. 总结 我们来回顾一下:我们来回顾 下: • 测试是复杂的活动? • 任务是什么? • 测试的策略是什么? 测试的原则是什么• 测试的原则是什么? Confidential ©2007 iSoftStone Holdings Ltd. All Rights Reserved.
还剩36页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

daphne310

贡献于2016-01-27

下载需要 5 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf