培训web测试课件_第1页
培训web测试课件_第2页
培训web测试课件_第3页
培训web测试课件_第4页
培训web测试课件_第5页
已阅读5页,还剩43页未读, 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件测试基础知识主要内容一.什么是软件测试二.什么是软件的缺陷三.软件测试基本概念四.软件测试衡量标准五.软件测试原则六.软件测试经验七.软件测试流程八.软件问题分类九.软件测试工程师的职业特点和要求十.软件测试流程补充.软件测试的分类什么是软件测试◆使用人工或者自动手段来运行或测试某个系统的过程◆目的在于检验它是否满足规定的需求、弄清预期结果与实际结果之间的差别软件测试的目的◆测试是为了发现系统中的错误而执行程序的过程◆好的测试方案在于尽可能发现迄今为止尚未发现的错误◆成功的测试是发现了至今为止尚未发现的错误的测试软件测试的目的◆测试的目的是为了发现软件中存在的缺陷,而不是证明软件没有缺陷。◆测试的结果只能证明软件有缺陷,而不能说明软件已经没有了任何缺陷。◆测试能使软件中的缺陷降低到一定程度,但不能彻底消灭它。

二.什么是软件的缺陷◆软件未达到产品设计规范要求的功能;软件出现了产品设计规范指明不会出现的错误;◆软件功能超出产品设计规范指明的范围;◆软件未达到产品设计规范虽未指出但应达到的目标;◆软件测试人员认为软件难以理解、不易使用、运行速度慢,或者最终用户认为不好。为什么会出现软件缺陷?需求变化缺乏交流设计错误文档缺乏缺陷软件复杂开发工具时间压力……三.软件测试基本概念1.测试的定义

◆广义概念:

指软件生存周期中所有的检查、评审和确认工作,其中包括了对分析、设计阶段,以及完成开发后维护阶段的各类文档、代码的审查和确认。

◆狭义概念:使用人工或自动的手段来运行或测定某个软件系统或系统部件的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。2.测试的对象

软件测试不等同于程序测试,软件测试贯穿于软件定义和开发的整个期间。需求分析,概要设计,详细设计,以及程序编码等各个阶段所得到的文档,包括需求规格说明,概要设计规格说明,详细设计规格说明以及源程序,都是软件测试的对象。2.测试的对象12345用户需求用户:我要什么?理解正确性表达正确性

需求说明书需求分析员:我可以提供什么?设计说明书

设计员:我要软件做什么?源程序程序员:我要让计算机怎么做?

运行结果计算机:程序运行得到的结果理解正确性设计正确性表达正确性理解正确性编码正确性运行正确性输入正确性相符合么?3.测试的目的

最终目的是确保软件的功能符合用户的需求,在发布或交付前把尽可能多的问题找出来并改正它们。

-确保软件完成了它所承诺或公布的功能

-确保软件满足性能的要求

-确保软件是健壮的和适应用户环境的4.测试的作用★能够证明软件的功能和性能与需求说明相符合。★发现并管理缺陷,为软件质量的改进和管理提供帮助。

★为软件的质量评估提供依据,预期项目风险。

★评价工作的效率和效果。

四.软件测试衡量标准

以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷,以确保软件的质量,使软件开发的收入支出比达到最大化。多能够找到尽可能多的BUG。快能够尽可能早地发现最严重的BUG。好找到的BUG是关键的、用户最关心的;找到BUG后能够重现找到的BUG,并为修正BUG提供尽可能多的信息。省能够用最少的时间、人力和资源发现BUG;测试的方法和数据可以重复使用。

五.软件测试原则1.所有的测试都应该追溯到用户需求,因为客户是最终的使用者,客户的满意程度反映了软件产品的综合质量。2.测试时间和资源是有限的,所以测试设计是关键。必须严格执行测试计划,排除测试的随意性,减少重复的工作,以保证测试的效率。

◆保证测试的覆盖程度,但穷举测试是不可能的;

◆Good-enough:一种权衡投入/产出比的原则;

◆

避免冗余的测试。3.越早测试越好,测试的过程与开发的过程应该是相结合的。该图表说明:越往后期,修复缺陷花费的成本就越高!4.依照用户的要求、配置环境和使用习惯进行测试并评价结果。◆要严格做到这一点比较困难,因为软件实际应用的环境和条件是很复杂的。5.测试的规模由小而大,从单元测试到集成测试,再到系统测试。6.既应该测试软件该做什么也应该测试软件不该做什么。7.不能为了便于测试而擅自修改程序。

六.软件测试经验

1.可能的情况下,避免开发人员测试自己的软件:发现不了思路错误发现不了环境错误心理因素导致测试可能不够彻底和全面2.测试活动要有组织、有计划、有选择

-穷举测试是不可能的

-不充分的测试是不负责任,过度的测试是浪费资源

-有计划的活动才能提高效率3.测试前必须明确预期输出的结果,否则实际的输

出结果很可能成为检验的标准,测试将失去意义。4.必须认真检查每一个输出结果。提出这一点似乎

是多余,但“不认真检查输出结果”的现象确实存在。

5.测试设计决定了测试的有效性和效率,测试工具只能提高测试效率。

6.群集现象:

一段程序中存在错误的概率与这段程序中已经发现的错误数成正比。

需求理解、编码规范、技术能力、内部耦合性都会导致这种“虫子窝“现象。

在实际的测试中,当发现某一模块有较多问题时,就要特别重视了。需要对这个地方反复测试,因为经验表明此处潜在的问题很多。7.Bug的80-20原则

-在分析、设计、实现阶段的复审和测试工作能够发现和避免80%的Bug。

-而系统测试又能找出其余Bug中的80%。

-最后的5%的Bug可能只有在用户的大范围、长时间使用后才会暴露出来。8.不要放弃随机测试

随机测试对于一系列既定的测试(单元,集成,系统测试等)来说,是一个有效的补充。但是“随机”并不意味着“随便”、漫无目的,否则会降低测试效率,达不到预期的效果。随机测试可以站在用户的角度,而且应该有针对性。比如对某一功能模块,完全以实际用户的角度来进行操作,并充分发挥想象,模拟实际中可能出现的各种使用场景和方式。测试文档◆《测试计划》:指明范围、方法、资源,以及相应测试活动的时间进度安排表的文档。◆《测试用例》:指明为完成一个测试项的测试输入、预期结果、预期执行条件等因素的文档。◆《测试报告》:指明执行测试结果的文档。其中可以总结产品的优缺点,以及对项目的建议。

七.软件测试流程规格定义设计编码系统测试集成测试单元测试用户需求验收测试回归测试缺陷跟踪配置管理我们一般把发现的错误(Bug)/缺陷(Defect)按严重性分为4类:1.严重:系统崩溃或挂起等导致系统不能继续运行;2.主要:使系统不稳定、或破坏数据、或产生错误结果,而且是常规操作中经常发生或非常规操作中不可避免的主要问题;3.次要:系统性能或响应时间变慢、产生错误的中间结果但不影响最终结果等影响有限的问题,如:显示不正确但输出正确;4.轻微:界面拼写错误或用户使用不方便等小问题或需要完善的问题;错误分级-严重性

八.软件问题分类错误分级-优先级我们也把发现的错误按优先级分为三种:1.高:立即修改;2.中:必须修改,但不一定马上修改;3.低:允许不修改;一般来说是越影响用户接受或使用该产品的错误优先级越高。常见问题下面将列出一些问题,他们具有一些特征:显而易见的开发时容易被忽略容易避免容易修改但是对于测试人员或用户来说可能却是非常头痛和不方便的形象类问题这类问题一般是表面上的,技术含量不高,但是给予用户的感觉往往是软件不够专业……1.不符合用户操作习惯。如,快捷键定义不科学(不易理解、与系统快捷键冲突等)、不实用(键位分布不合理、按键太多,甚至没有快捷键等);2.风格的统一性;对于同一个系统,同一系统环境下的应用程序出现不同的界面风格和操作风格,对用户来说是一大考验,对开发者来说是专业性和正规性的表现。3.界面中英文混杂,经常弹出莫名其妙的信息,甚至还拼错单词;4.提示、标题等不够专业,或各处描述不一致;形象类问题(续)

5.界面元素的位置:缺省认为用户使用某种分辨率,导致在其他分辨率下显示不正常;6.说明书或帮助的排版格式不专业:中英文搭配不对、标点符号全角半角部分、没有排版禁则…7.程序名/路径名不规则(比如为程序员的名字等);8.没有安装程序、或安装程序不完善(丢掉一些必要的模块或文件);9.界面元素参差不齐,文字不能完全显示,TAB键顺序与使用顺序不一致等;

…………可用性问题用户比开发或测试人员在接触界面上要花费更多时间。错误和低效的用户界面的影响会变得越来越大,最终甚至会掩盖了产品有用的方面。下面是一些用户界面错误的例子:1.输入无合法性检查和值域检查,允许用户输入错误的数据类型(有时只需要选择合适的输入控件即可,比如日期用专门的日期输入控件),并导致不可逆料的后果;2.界面中的信息不能及时更新,不能正确反映数据状态,甚至对用户产生错误的误导(如:记录个数、参数设置对话框中的缺省值等);可用性问题(续)下面是一些低效的用户界面的例子:1.表达不清或过于模糊的信息提示;2.要求用户输入多余的、本来系统可以自己得到的数据(如:安装后用户要手动修改某些配置文件);3.为了达到某个设置或对话框,用户必须做许多冗余操作(如对话框嵌套层次太多);4.不能记忆用户的设置或操作习惯(如用户每次进入都需要重新操作一次初始环境);5.使用不完善的功能且不给用户以恰当的提示;6.不经用户确认就对系统或数据进行重大修改;稳定性问题往往是在设计时考虑不周而造成的一些问题。1.不可重现的死机,或不断申请但不完全释放资源,系统性能越来越低;2.主系统和子系统使用同样的临界资源而互相不知道(如:使用同样的类名或临时文件名、使用同样的数据库字段名或登录帐号);3.不能重现的错误(如不检查异常情况(如内存申请不成功、网络突然中断或长时间没有响应)导致错误等);其他问题1.文档匮乏:文档不标准;无新功能使用方法;无版本改动说明。我们不仅要认为没有说明文档的产品不是是一个完整的产品,也要认为没有说明或没有正确说明的功能是一个没有完全实现的功能,因为用户无法用得起来。2.运行时不检查内存、数据库或硬盘空间等;3.假设用户环境(硬件/网络环境、软件环境等、配置等);4.安装困难,或根本无法安装等;5.提供的应用程序带有病毒;6.程序不经调试,或提供Debug版本给测试组或测试用户;7.用户现场开发和修改,没有修改记录和保存版本;其他问题(续)8.错误反复出现,改动得不彻底、或版本管理出现混乱;9.改动时不小心,导致错误越改越多;10.版本中部分内容和接口倒退;11.状态没有正确变更(有些选项永远是灰的,有些选项、菜单项在该灰时还不灰);12.资源没有和代码分离,不同语言版本间不能平滑转换;13.模块(子系统)间接口不一致;

…………开发人员和测试人员的心理:开发人员:我不会犯错——任何人都可能犯错这种错误不能算作错误——质量是由用户来评价的发现我的错误是对我工作的否定——是对我的工作的帮助测试人员:责任心不够,反正测试是不可能发现所有错误的——职业教育+激励措施没有创造性、枯燥——总结经验,培养敏锐度,提升个人价值和权威技术比开发人员差,自信心不足——代表用户,决定成功的是用户满意度九、软件测试工程师的职业特点和要求小插曲:开发人员和测试人员的矛盾

开发人员对自己的程序往往做不到“无情”。但如果测试人员真的做到了“无情”却会引起开发人员的愤怒,遭人白眼。由于开发与测试存在“对立”关系,开发人员与测试人员很容易产生矛盾,这对项目而言是一种伤害。小插曲:开发人员和测试人员的矛盾测试人员的注意事项:(1)发现缺陷时不要嘲笑开发人员,别说他的程序真臭、到处是Bug。(2)在开发人员压力太大时或心情不好时不要火上浇油,发现缺陷时别大声嚷嚷。

小插曲:开发人员和测试人员的矛盾

还要注意的是,如果测试人员与开发人员的关系非常好,可能会导致在测试的时候“手下留情”,这对项目也是一种伤害!优秀的软件测试人员应该具备的素质?基本素质:打破砂锅问到底1.探索精神:软件测试员不会害怕进入陌生环境。2.实事求是:实际的操作是怎样进行的,一定要如实记录,不能想当然的添加和删除。3.不懈努力:软件测试员总是不停尝试。他们可能会碰到转瞬即逝或者难以重现的软件缺陷;他们不会心存侥幸,而是尽一切可能去寻找。4.创造性:

想出富有创意甚至超常的手段来寻找软件缺陷。

5.追求完美:

他们力求完美,但是知道某些无法企及时,不去苛求,而是尽力接近目标。

6.判断准确:

软件测试员要决定测试内容、测试时间,以及看到的问题是否算作真正的缺陷。

7.老练稳重:

软件测试员不害怕坏消息。

8.交流能力和说服力:

软件测试员要善于表达观点,表明软件缺陷为何必须修复,并通过实际演示力陈诉观点。

9.好的记忆力在测试的过程中,问题往往会在不经意中出现。所以当一个BUG突然出现时,必须能够马上回忆出之前的具体操作步骤(最好是在第一时间把操作步骤写下来),然后重复测试多次,使问题重现,以进一步确认出现这个问题的具体条件。10.分析问题的能力如果BUG不能重现,或者不是每次都会出现,可以适当改变测试用例和操作的方法,在不同的组合情况下再测试。因为这些是临时设计的操作方法,所以每次操作前都必须把步骤清楚的记录下来。这些记录将作为这个BUG的详细描述资料。分析问题的能力对测试人员是一个较高的要求了,如果能尽可能的提供更多的有效信息给开发人员,就可以减少他们查找BUG原因的时间,从而使他们有更多的时间来修改BUG,提高整体的工作效率。十、软件测试的流程补充、软件测试的分类单元测试集成测试系统测试确认测试验收测试白盒测试黑盒测试灰盒测试单元测试单元测试又称模块测试是针对软件设计的最小单元——程序模块进行正确性检验的测试工作其目的在于检查每个程序单元能否实现详细设计说明中的模块功能、性能、接口和设计约束等要求,发现各模块内部可能存在的错误集成测试集成测试,也叫组装测试或联合测试在单元测试的基础上,将所有模块按照设计要求)如根据结构图〕组装成为子系统或系统,进行集成测试集成测试是检验程序单元和部件的接口关系实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现系统测试

系统测试是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试,其目的是通过与系统的需求相比较,发现所开发的系统与用户需求不符或矛盾的地方

系统测试的任务是近可能彻底的检查出程序中的错误,提高软件系统的可靠性,其目的是检验系统"做得怎样?"确认测试确认测试的目的是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是确认测试的任务,即软件的功能和性能如同用户所合理期待的那样确认测试又称有效性测试。有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论