软件试测础教程
杜基文 洁秀景丽 编
主中国
利水水出电版
社
1.
1 软件测试含义的 12 软.测试的目的与件则 1原.软件3测试的命生期周1. 4软件测试 软与开件的关系发习
题软件�测的发试历史及其现状 �展软件试测定义 的�测试的目 测试�则原� 测试的命生期周 �件软试测与软开件发关的
系
1
..1软件缺陷 1.11.2软件测 试技术发的历史及展现状
件的质量软是就件软生的,命了为证保件的质量,软人们在 长期的发过开中程积了许累经验多并成形许了多行之效的方有法。但 借是这些助法方我,只能们量尽少减软中件的错和误不足,却能 不完全免所避的有错。误 如把果开所出来发软的件看一作企个生产的产品业那, 软件测么就试当于相企业的质量检测该分部简单地。说,我在们编写完 一段码代之,后查检其是如否们所我期预那的运行样这 个,动就可以活作是一看种件测软工试作新。测的理试、测试方论法、 试测技手术段不断在出,软件涌试机测和组构也在织迅速产 和发生,由展此软件试测技职术业同步也完和健全善来起
。
.1软件缺陷案例 们常常不人把件软回事当,没有正真意识到它经深入已透渗到们 的日我常活中,软件在电生子息信领域无里不处。在在有现许人如多一果 不上网查天电看子邮,件直简就没过法去下。我已经离们开不24时小包 裹投服务、长途电递服务话最先进的医疗和务了。 服然而软件由人是写编开发的,一种是辑逻维的产品思尽管,现在软 件发开者取了采一系有列措施效不,地断提高件软发开量质,但仍 然法无完全免避软(产品件)会在各存种样的缺陷。各
下
以面例来说实明 (。1迪斯尼的)狮王游戏软件子陷。缺 194年秋9天迪斯,尼司公布发第一了面向个儿的童多体光盘媒游 —戏狮—子动画王事故书T(h eioL ning KAimnteda tSrybook )o尽管。 已有许多经其他公司在童游戏儿市上运场多年作,但这次是是迪尼 斯公司首次进这军个场,市以所进行了大量促销传宣结果,销售。额非常 观,该游可成戏为孩子们年节那假的日“必买戏”。然游后来却而 飞横祸。1来月226日,诞节圣的一天,迪斯后尼司公客户的持电话开 始响支不个停很。快,电话持支术员技就淹没们在自于愤怒来家长的并 随伴玩着不游成的戏子们哭孩的电叫话之。中纸和报电视新闻进了行 大量的道。报
后证来实迪斯,公司尼能对市未上面入投使的用许多不类同 的PC型机型进广行的测试泛软。件极少在系数统中作工正常— 如在例迪尼斯程序员来用发开游戏的系统 中—但—大多在数众公 使的用系中却统不能行。运
(2)
国爱者导防弹系统御缺陷 爱
国者弹防导系御是里根总统提统的战略防御出计(即星划球 战计划)大的缩版本,它略次应用在首海湾争中战对抗拉伊飞克腿毛导 的防御战弹中尽管对系统赞。的誉报道绝于不耳,但它是实确在对抗 枚导弹几失中,利括包一在沙次阿拉特的伯多击哈了毙8名美 2国兵士。析分现症发在于一结个件软缺陷,统系钟的一时个很的 计小时误错积起来到累1小4时,后踪系统不跟准再。确多在哈的这 次击中袭,统已经运系行了10多个小0时
(。)千年3虫题 问2世0纪0年7代期的某早时个,间位程序某正在为员公本设计司发开工 系资统。他使用的算机存计储空间小,迫使他很量尽省每节一个字节 他将。自己程序压缩的得比他其任人何都紧。使凑用的中一个方其 法是把位4数份年例,1如79年,缩减3为位数2,3。因7工为系资统 当信相于日赖期处的,所理需要节省大量以的存储空间他简。单的认为 有只到达20在0年0那,他的程序开时始计算000或这1样的年份问题时才 会生产虽然。知道他出这会的问样,但题他是认在定25之年内序 肯定程会升级或替换,且眼前而任务的现比计划在不遥可及未来的加更 要。重然而一这天毕竟到了。来1959他的程序年仍在然用使而他退 休了,谁,不也想会如到深入何程序中到查2检00年兼0容题问更,不 用说去改修。了估计全球 各更地或换级类似的前者升序以解决潜在程2000问的的 题用已经达费数千亿元美。
(4)美
国航局火天星登陆探器测缺 1999年1陷2月3日美,国天局的火航星地登陆极者探号器测图在试火星表 着面陆时失踪。一故障个评估委员调查会了故障,定认出现故障 的因原极能可一是数个位据被外置意位最。令警人醒的问是题什为没么有 内部测在时试现呢。 发理论上看从,着陆计划的这是样:当的探测器火向星面降表落, 时它打开降将落减缓伞测探的器降下速。度降伞落开几打秒后, 探钟 器测三条的腿迅将速撑,并锁定开置位,备着准。当探陆器测地离 1面00米8,时它将丢弃降落,伞燃着点推进器,缓陆地缓降到落面。地 美国航天局了为钱,简省了确定化何关时着闭推陆器进的置装。为了替代 他太空船其使上的贵重雷达用,他在们测器探脚部装的了个 一廉价的触开关,点计在机算中置一个数设据位来制控点触关开闭燃 料。很简关,探单器测的动发需机要一直火工点,直到脚作“着”为地止。
遗憾
是的故,评障委估会员测试在发中现许多,况情下当探,测 器脚迅的速撑开备着准陆,时械震动机会也触发着触陆开点关,设 置命致的错误据数位。想探设器测开着始时陆,计算极机可能关有 着陆推进闭器,样这火
星极登陆者号地测器探飞下船坠8100之后 米冲地面,撞向碎片。成 果结灾是难的性但背后的原,却因简很。登陆单探器经过了多测个小组 测试。中一其个组小测飞船试脚的折过叠程另,一小个组测试此 后着的过陆程。一个前组不去小注着地意数是否据置——位这不是他们负 责的围;后范一小组个是总在始复位开前之复计位算机 清,数据位。双除方立工独都做作很好得,但在一合就起是不这样了
()金5词山缺陷 霸在内国“,山金词霸”一个很著是的词典软件,名应范用围极 大对,用中文使操作用的帮助很户,但大它也在存少缺陷不。如 例入“输ucbe,词霸”在会示中例显3示=93的误;又错如,果用如标鼠取 “词dyamncaill”(力学,y动学),力词霸会出现其他同不单词 的d“yanitmen. 药炸”的示显误错。
(6
)英 尔特奔浮腾除点缺法陷 在计算的“机计器”程算中输入以下序式算 (:195435/31847275 )3*157472-491535 8如果答案是,0说明就计机算问题没如。果得别的结出果就,表计示算 使用机的是有浮带除点法软缺陷的老式英特尔奔件处腾理器—— 个这软缺陷件被录烧在一个计算芯片机中并,在制过程作反复中产生 1。94910月30年,日吉利弗州亚ynLchubr 学g的Th院moas R .Ncilye博士 他的在一实验个中,用奔P腾C机决一个除法问题时,解录记了个一想不到的 果,结得了错出误结的。他论发现的把问放题因到网特上 随,引发后了一风场,暴千成上万的发人了同样现问题,并且的现发 在另外一情形下些会也出错误得结的果万。的是,这幸种情很况见少, 仅仅进在精行要求很高度数学、科的和学程工算计中才会导致错误。大 数多来进用行税处务和理商应务用的用根户不本遇会此类到问题
。这件事
情引人关的注并是这个软件缺陷不而,是特尔公英解司决问题的方式: • 们他软的件测试程工师在片芯发之布前进行部内试测时已经现发 了这问题。个特英的管尔理认层为这有严重到要没保修正证甚至, 公开程的。 • 当度软缺件陷发现时被,英特尔过新闻通发和布公开明试图弱化声 这问题的已个严知性重 。受到力压,英特尔时诺承换有更题问芯片,的要但用求必户证 明须己自到缺受的陷响。
影2软件缺陷的定义 .上从的述例案可中以到软件看生错误发将造成时灾性难害危或 对户用生各种影响产软。件缺陷bug),即(计算系机统者或序 程存在的任中一种何坏破正运行常力能问的、题误错或,者隐藏的功能缺陷 瑕疵。、缺陷导致会件软产品某在种度上程能满足不 户的需要。用 对软件于缺陷的确准义定通常有,以5条下述描 :(1软)件实未现品产说书明要
求的能功 (。2)件软出了现产品说明指书明会出现的错误。 (3不)件超软出实现产品说了书提明的功能。到( )软4实件现产了说明品书虽未确明出但指该实现应的标目 。5)(件软难以解,不易理使用运行缓,慢或者终用户端认不好 。
为
了更好地为理每一解条则规我,以们算器为例计行说进。明计算器 产的说品明书称它能声够确准误无进地加、减行乘、、除运。算当 拿到你算计后,按下(器)+键结,果么什应也没有反根,第据1 条规,这是一个则陷缺假。得如到误答案错根据第,条1规,则同这样 是一缺陷。个 产品说明若书声称算计器永不远崩溃、会锁死者停止反或。应当任意你 敲键盘计,器停止接算受入输根,据第条2则规这,是一缺陷。个若 计算用器进测行,发试除现了、加、减、除之乘它外可还求以平方根 说明书,从没中到提这功一,根据第3能规条,则这是软件陷缺软件 实现。产品说了明书提未到功能 的若在试计测算器时会,发现电没电会池导致计算正不确,但产品说明书 指未这个出题问。根据第4条规,这则是缺陷。 第个5条规则全面的是如。软果件测试员发某现些方地对不劲,无论什 么因,都原要认为缺陷定如。“”键=置布位的置使其其极好按;不在或亮明光 显示屏下以看难清。据第5条根规,这些则都缺陷是
3.软件缺陷。种的类软 缺陷件表现形式有的多种,不仅仅现体功在的失能效方,还面 体在其他方面现软。缺陷的件主要型有类:• 能、功性特没实有现或部分现。 实 •设不合计,存在理缺。陷• 实际 果和结期预果不一致。结 •运行错出,括包运行断、中系崩溃、界面混乱统。 数据•果结不正、确度精够不。用 不户接能受其他问的,如存取题时间长、过界不面美观
。
4软件.陷缺的级别及件缺陷的软态 状1)(件缺陷软的级别 作为件测软员,可试所发现的能多大问数不是题么明那、严显,而重难以觉是察 的单而细微的错简误,些是真正的错有,也有误不些是。般一说来问,越严重题的, 优其先级高,越要得越到及的纠正时。软件司公对缺陷严重性别的定义不级 尽同,但一相般以概括为 可种级4别 •致:的命:致的命错,误造系成统应用程序崩或、溃机、系死悬统挂,或造成数据丢 、主要功失能全完丧失。 •等严重:的严重误错指,能或特性功没有实现主要,功能分部失丧,要功能完全 丧失,次致命的错误或声。明 一•的般不:严重太的错,这样误的软缺件虽陷不影响系然的基统本用使,没但有很 地实好现能,没有功达预到效果期如。要次功丧能,提失示信不息太确准, 或
用户界差面操作,时间等。长•微 的小一:小问些题,功能几对没乎有影响产,及属性品仍可用使如有,别错个别字、 字文列排整齐等不 。除这 了种4之,外有需要时 “议”级别来建处测理人员试提出所建的或议质疑如,建议程 做适序当的修改来改,善序程行运状,态或设对不计理合不、白明地方提的 质疑出
(。2).件软陷的缺状态 软件陷除缺了严性之外重还存,在映软件缺陷反于一处种么什样 的态状便于跟踪和管理某个,品的产陷,可以缺义定不的同bug态。 状 •活状激:问态还没题有解,决试人测员新报的ubg,验证或后bg仍u然存 在。• 已修状正:态开人员针发所存对的在缺,修改程陷,认序为解已 问题决或通过单,元试。 关闭或测激非活态:状试测员人证已验经正的b修gu,后确b认u不存g 以后的在状。态
5软.件陷的缺原 软件缺因陷产的,生首是先可不避免。其的我次们以从可件本软, 身队工作团技和问术题多等方面个析,分比容易确较定成造软件缺的陷 因原,纳如归。下•技 问术 •题法算错误 。语法•误错 •。算计和度精问题 •。系结构不合统,理造系统成能性问题。 口参数不匹接出配问题现。
团•工队作 系•分析统时对客户的需不是十分求清楚或,者用和的沟户通存在一些困 难。 不•阶段同开发的人相员理解互不致,软件设计对一需求析分果的结理解 偏差编程,人员系统对设规计格明书说中些某内重容不视够或存在,着误 。解 •计设编程或上的些假一或依赖性定没,有得到分的充通。 沟•软本件 •身档文错、内误容正不或拼确错误写 。•数据考不周虑全起强度或负载引题问。• 对边界考不够周全,虑漏某几掉边界个条造件成错误。的 对•些一时应用系统,实证精保确时的同步间,否则容引起时易上不协间 调不一致、带来性的问。题• 有没考系统虑崩后溃在统系全性安可、靠性隐的。 患硬件或系•统件软存在上错的。 误件软发开准标或程上的错过。
误
6
软.缺陷件的成组我 知道软件缺们是由很陷原多造因成的,果把它们按需如求分结果 —析 —格规说明,系统书设结果,计程的编码等代归类来,比起后较发,结现果 格规明说书软件是陷缺出最现的多方,地见图1-1。
图1-1软件 缺陷构示成图意
1.件测试技软的术展发历 史着随算计机诞的生——在件行软发展业期初就经已始开施实软测件试 ,但这一阶段还没系统有义意上的软测件,更试的是一种类似调多试的 试测测试。是有没划计方和的法测,用试例的设和选取计也都 根是据测人员试经验随机进的的,行大多数测的目试是的为了明系统证可
以正常行。 2运0世纪50代后期年到0世260年纪,各种高代语级言继诞生相测, 试重点的逐步也入到转用使级高语编言的软写件系统中来,但序程的复 杂远性超过远了前以尽。管如此,于受由硬件到的制,在约计机算 统系,中软件然仍于处次位要。置件软确性正把的握仍然主要依于编赖程人员 的术水技。因此平,一时这期件软测试理论的方法发和比展较 缓。
慢
02世纪0年7代以后随,计着机算处理速度提高的存,储器量容快的速增加 ,件软在个计算整机统系中的位地得变越越重要。来随着件 软发技开的成熟术完和善软,件的模规越也越大,复杂来也大大增加度。 因此,件软的可性靠面临着前未有的所机,给危件测软工试带作了 更大来挑的,很多战测理试和论测方试法运应生而逐渐,形了成套完 一整的系,培养和体造了就批批出色的测一人才试 。如今在软产业件化发的大展势下,人们趋对件软量质成本和进, 的要求也越度来高,越质量的控已制经仅仅是不统意义传的软件上测试。传 软件统的试测多是大于基代码运的行并,常且常软件开是发后 的期开始才进,但大量行究研表,设计活动明入引错误的软件开发占过 中程出的所现有错数量误的50~6%5%。因,越来此多越的音呼吁,声要 求一个有范的软件开发规程过而在。整个件开发过软程中测试已,经 不只是基再程于序代码行进的活,动而是一个基整于个软件命生周期 质的量控制动,贯活于穿软件开发各个的阶。段
2.软件测
试现状的 我国,在软测件试可算不能一上真正个产的,业件软发开企业 软对件试测认识淡薄软件,测试员人软与件发人开员往比例往失调 而在发达,家和国地软件测区试已成了一个产业。 我们在软经件测实现方试面不比并国外,差际上优秀国的试测 工,我具们基都有,本这些具工体现所的思想我们也深刻有的解, 理多很大型统在国系内都得了很好的测到。
试
1.软件测
试的义 定件测试就软在软件投是入行运,前对软需求件析分设、规计 格明说编码和的最复终审,软是件质量保的关键步证。骤通对软常测件试的定 义有下如述:描软件测 试是了发现为错误而执程行序过的。或者程,软件测说 是根试据件开软各发段的规格说阶明程和的序内部构结而心精计一设 批测用试例,利并这用测些试例用运去程行,以序现程序错误的发过 程
2.。件测试的目软 的基于同不的场,存在着立种完全两同的测不试的目 从用。户角的度发出,遍希普望过通软件试暴露测件中隐藏的软 错和误缺陷以,虑是否考可接受该以品。产 从件开发者的角度软发出则希,望成表为软件明品
产中不在错 存的过误程,证该软验已正确地实现了用件户要的求,立确人对软 件们质量的心信 。综所述,上软件测试的目的括以下三包:点 1) 测(试程序是执行的过程,的目在发现错于误,能证不明序程 的正确性,限仅处理有于限种情的。况( ) 检查2统是系满否需足,求也这是测试的期望目。标 (3) 个好的一试用例在测发现于还曾未现的错发误成功;的试测是 现发了错误测的试
。
.软3测件的原试则 软测件的目标试是以最想的时间和少力找人软出中件潜的各在错 种和误缺。如陷果功成地实了施试测,能就够发现软件中的误。 根据这错样的试目测的,软件试测原则应该是的 •:应当把 早地和尽不地进断行件软测作为软试件发者开座右铭。的坚持 在软开件的各个发段的技术阶审,这样才评在能开发程中尽早过发 和预防现错,把误出现错误克服在早期,的绝某些隐患,提杜高件软质 量 •。 测试例应由测试输入数用据和与对应之的期输出预果这结部两组 分成。如对测果试入数据输没有给出期预程的序输结出,那果就缺么少了检验 实测果的结基,就有可能准一把似是个非而的误错果结成当 确结正果。程序员 应免检查自避的己序程。果由别人来测试程序员编如写的程 序,可能会更观,更客有,并更效易取得成容功。
•设在计测用试例,应时包当括合的输理入件和条合不理输的入件。条合 的理输入件是指条验证程能正序的输入条确,件不而合的理入输件 是条异常指的,临界的,能可起引问变题异的入条件。因此输软,系件处统 非理法令的能命也必须在测试力受时检验。用不合到的输理条入件试测 程序,时往比用合理的输入往件进行条试测能现更多发错误。的 充分•意测注试的中群集象。现测试不要时以找到了几为错个问题就已 误决解不,继需续试了。测当应错误群集的程序段对行进重测点,试提以高 测试投的效资益 • 严。格行执测计试,排划除测的试随意性。对测于计划,试明确规要, 不定随要解意释 •。应当 对每一个测结试做果面全查。检是一这条明显最原的则,常但被 常视。忽必对须预的输出结期果明定确义,对实的测果仔细结析检查分抓 住关键,,暴错露。误 •妥 善存保试测划计,试用测,例错统出和最终分计析告,报为维提供 方便。护
4
软件.试测分类的从不同的 度,可以角把件测试软术分技不成种类同 。1(从)是需否执要行被软测的角件度分类 是否需要从行被执测软件的度角,可为静态测试(Sta分it cTsteni)g 和态测动试Dy(nami cesTtni) g顾。名思,义态测静试是通过就对被 测序的程态审静查发现,码中
代潜在错误。的一它般用工人式脱方机 成,完故亦称工人测试代或评审(C码de oeRveiw ;也)借可于静助分 析器在态机上以自动器式方进检行查,不要但求序本程身机器上在行运。 按评照审不的组织形同,代码式审评可分为又代码会审,走以及 查公桌检办查,行同评4分种。某对个具的程序体,常只使通一用评种 方审式。 态测动试对象的必是须能由够计机真正运算的被测试的程行序。 它分黑为测试和盒白盒试,也是测们下面将要介我绍的内。容
2(从)软件测试用设例计方的法角分类度 从件测试软用设例方法的计度角可,分为黑测试(B盒alkcBox- esTingt)和盒白测试Wh(tieB-ox esTtin g)。黑盒测试是一 种从户观用出发的点测,试称又为功测试,数能驱 动据测试和基于格规明说测试。的若试用测例设的计基于是品的功能 产,目的是检程序各查个能是否功现,并实检查其的中功错能误,则 这种试方法测称黑盒为 。白测盒试于基产的内部结品构来进行试测,查内部操检作否按是规定 行执软件各,个分功能部否得到是充分用利白。盒试又测称结为 构试测,辑逻驱测动或基于试序的测程。即根试被据测程的内部结序 设构测计用试,测例者试需先了解事测试被序的程构结。
()从3件测软的策略试和过程的角度分。类按照软 件试测的策略过和程分,类软测试可分件单为元测(U试nt iTesingt),成集试测(nItgreaton Teisitg n,确)测试认Va(iladitonT estngi) ,统系试测Sy(stme esTint )g和验收测(试eriVfcation ieTtisg )n 单元测试是.对针每个元单的测试是软,测试件最的小单位。确它保 每个块模正能工常作单元。测试数多使白盒用测试用,发以现部内误错 集成测试是。已测对过试的块进行模装组进行集,测成试目的的要主在 检验于软与件计设关的程序结相问构。题集成测一般通过黑试盒试测 法来方完成。确认测试是 检验所发的软件开能满足所否有能和功能需求的最后手 性,通段常用采黑盒测方法试。 统测试系的要主务任检是测测被软件与统的其系部分他的协调。 性收测试是软验件品质量的产最后一关这一。节环,测试主从用户要的角 着手度,参与其主者要是户用和少量的程开序人发。员
图
1-给出2软了件测生命周期试模的型把.试测生命周的期分为几个阶段 .3前个阶段是入引程错序阶段,也误是开就发过程 中需的求格规明说设计、、编阶段,码时此易引极入误或者错导致开 过发程中他阶段其生错产。然后是误通测试发过错现误的阶段这 需要,通过用使些一适的测当试术技和法方共同来完成后。个阶段3是清除 序程误的阶段。错其主任要是进务缺
行陷分类缺、陷离隔 和解缺陷。决中在修复旧缺陷其时候很的能引可新进的误,导错致 原能够正来确行执的序程出现新缺的。陷
图
-2软件测1生命试期
周在件软试测生周命期的每个阶段要都成一完确些的定任,在务 执每行阶个的段务任,可以时用行采之效的有构分结设析技计和术 适的当辅助具工在;结束个阶段的任务每都进行时严的技术格查审 和理复管。审后提交最最终件配置软一个或的几个成(分文档或程序) 。
1测.与软试件开发各段的关系阶 软件发开程过一个自顶向下,是逐细步化过程,首的在软先计划 件段定义了阶软的作用件域然,进行软后需求件析,分建立件软的据数 、域能功和性需求、能约和一束些有性效准。则着进接入件软开发 首先是软,件计,设后然再把计设某用程序种设语言计转换程序成代码 。而试测过程是则相依的反序安排顺自的底向上,逐步集成过程的, 低一测级试为上级一测试准备条。件外此有还者平行两地行进试测。如图 -1,3首对先一每个程序模块进单元行测,消除程序模块内部 试在辑逻上功能和的上错误和缺。再对照软件陷设进行计集成测试,检 测排除子和系(统系统)或结上构错的。随误后对照需求,进行确 再认试测最。后系统从体全发,运行系统出看,否是足满要。
求
图1-
软件测3与试件软开发过程关系的
.2测试开发与的并性行 在件软的需得求确认到通过评并后,概要审计工设和测作计 划制定试设工计作要并就行行。进果系统如模块经建立,已各对个 模块详细的计、编设码单、测元试等作又可并工。待每个行模完成块 ,可以进行集后测试、成系测统试并行。程如图1-流4所。示
1-图4软 测件与软试开发件的并行
性
3.试与测开发模型软件测试 仅仅不执行测试,是而是个包含很一多复杂动活过程的 ,且这并过程应该贯些穿整于软个开件过发。在程件软发过开程,应 该中什时么候行测进,试何如更地把好件开软和发测活动集成试一起 ?其到这实也是软件测工试作员人须必虑的考题,因问只有为样这才 能提,高件测软工作试效的率,提高软件品的质量产最,限度大地降低软 件开与测试的成本发减,重复劳少动。如1-5所图,示即软件为 试测开发与的整流完程。
图-15软 测件与开试的发整流完程
1.名
词解释:软件 缺、陷软件测、试态静试、测动态试测黑盒、测试、盒测试 白、元单试测、集测试。 成.2述缺陷简生产原的因。3 简.软述件测试展历史发及软测试的件现。 状.简述软4测试件的目的 。.5述软件测简试原的则。6 简述软件.试测软与件发开的系。关 7.谈你谈对件测
软试重要性理解的。
软件试测础教程
杜基文 洁秀景丽 编
主中国
利水水出电版
社
1.
1 软件测试含义的 12 软.测试的目的与件则 1原.软件3测试的命生期周1. 4软件测试 软与开件的关系发习
题软件�测的发试历史及其现状 �展软件试测定义 的�测试的目 测试�则原� 测试的命生期周 �件软试测与软开件发关的
系
1
..1软件缺陷 1.11.2软件测 试技术发的历史及展现状
件的质量软是就件软生的,命了为证保件的质量,软人们在 长期的发过开中程积了许累经验多并成形许了多行之效的方有法。但 借是这些助法方我,只能们量尽少减软中件的错和误不足,却能 不完全免所避的有错。误 如把果开所出来发软的件看一作企个生产的产品业那, 软件测么就试当于相企业的质量检测该分部简单地。说,我在们编写完 一段码代之,后查检其是如否们所我期预那的运行样这 个,动就可以活作是一看种件测软工试作新。测的理试、测试方论法、 试测技手术段不断在出,软件涌试机测和组构也在织迅速产 和发生,由展此软件试测技职术业同步也完和健全善来起
。
.1软件缺陷案例 们常常不人把件软回事当,没有正真意识到它经深入已透渗到们 的日我常活中,软件在电生子息信领域无里不处。在在有现许人如多一果 不上网查天电看子邮,件直简就没过法去下。我已经离们开不24时小包 裹投服务、长途电递服务话最先进的医疗和务了。 服然而软件由人是写编开发的,一种是辑逻维的产品思尽管,现在软 件发开者取了采一系有列措施效不,地断提高件软发开量质,但仍 然法无完全免避软(产品件)会在各存种样的缺陷。各
下
以面例来说实明 (。1迪斯尼的)狮王游戏软件子陷。缺 194年秋9天迪斯,尼司公布发第一了面向个儿的童多体光盘媒游 —戏狮—子动画王事故书T(h eioL ning KAimnteda tSrybook )o尽管。 已有许多经其他公司在童游戏儿市上运场多年作,但这次是是迪尼 斯公司首次进这军个场,市以所进行了大量促销传宣结果,销售。额非常 观,该游可成戏为孩子们年节那假的日“必买戏”。然游后来却而 飞横祸。1来月226日,诞节圣的一天,迪斯后尼司公客户的持电话开 始响支不个停很。快,电话持支术员技就淹没们在自于愤怒来家长的并 随伴玩着不游成的戏子们哭孩的电叫话之。中纸和报电视新闻进了行 大量的道。报
后证来实迪斯,公司尼能对市未上面入投使的用许多不类同 的PC型机型进广行的测试泛软。件极少在系数统中作工正常— 如在例迪尼斯程序员来用发开游戏的系统 中—但—大多在数众公 使的用系中却统不能行。运
(2)
国爱者导防弹系统御缺陷 爱
国者弹防导系御是里根总统提统的战略防御出计(即星划球 战计划)大的缩版本,它略次应用在首海湾争中战对抗拉伊飞克腿毛导 的防御战弹中尽管对系统赞。的誉报道绝于不耳,但它是实确在对抗 枚导弹几失中,利括包一在沙次阿拉特的伯多击哈了毙8名美 2国兵士。析分现症发在于一结个件软缺陷,统系钟的一时个很的 计小时误错积起来到累1小4时,后踪系统不跟准再。确多在哈的这 次击中袭,统已经运系行了10多个小0时
(。)千年3虫题 问2世0纪0年7代期的某早时个,间位程序某正在为员公本设计司发开工 系资统。他使用的算机存计储空间小,迫使他很量尽省每节一个字节 他将。自己程序压缩的得比他其任人何都紧。使凑用的中一个方其 法是把位4数份年例,1如79年,缩减3为位数2,3。因7工为系资统 当信相于日赖期处的,所理需要节省大量以的存储空间他简。单的认为 有只到达20在0年0那,他的程序开时始计算000或这1样的年份问题时才 会生产虽然。知道他出这会的问样,但题他是认在定25之年内序 肯定程会升级或替换,且眼前而任务的现比计划在不遥可及未来的加更 要。重然而一这天毕竟到了。来1959他的程序年仍在然用使而他退 休了,谁,不也想会如到深入何程序中到查2检00年兼0容题问更,不 用说去改修。了估计全球 各更地或换级类似的前者升序以解决潜在程2000问的的 题用已经达费数千亿元美。
(4)美
国航局火天星登陆探器测缺 1999年1陷2月3日美,国天局的火航星地登陆极者探号器测图在试火星表 着面陆时失踪。一故障个评估委员调查会了故障,定认出现故障 的因原极能可一是数个位据被外置意位最。令警人醒的问是题什为没么有 内部测在时试现呢。 发理论上看从,着陆计划的这是样:当的探测器火向星面降表落, 时它打开降将落减缓伞测探的器降下速。度降伞落开几打秒后, 探钟 器测三条的腿迅将速撑,并锁定开置位,备着准。当探陆器测地离 1面00米8,时它将丢弃降落,伞燃着点推进器,缓陆地缓降到落面。地 美国航天局了为钱,简省了确定化何关时着闭推陆器进的置装。为了替代 他太空船其使上的贵重雷达用,他在们测器探脚部装的了个 一廉价的触开关,点计在机算中置一个数设据位来制控点触关开闭燃 料。很简关,探单器测的动发需机要一直火工点,直到脚作“着”为地止。
遗憾
是的故,评障委估会员测试在发中现许多,况情下当探,测 器脚迅的速撑开备着准陆,时械震动机会也触发着触陆开点关,设 置命致的错误据数位。想探设器测开着始时陆,计算极机可能关有 着陆推进闭器,样这火
星极登陆者号地测器探飞下船坠8100之后 米冲地面,撞向碎片。成 果结灾是难的性但背后的原,却因简很。登陆单探器经过了多测个小组 测试。中一其个组小测飞船试脚的折过叠程另,一小个组测试此 后着的过陆程。一个前组不去小注着地意数是否据置——位这不是他们负 责的围;后范一小组个是总在始复位开前之复计位算机 清,数据位。双除方立工独都做作很好得,但在一合就起是不这样了
()金5词山缺陷 霸在内国“,山金词霸”一个很著是的词典软件,名应范用围极 大对,用中文使操作用的帮助很户,但大它也在存少缺陷不。如 例入“输ucbe,词霸”在会示中例显3示=93的误;又错如,果用如标鼠取 “词dyamncaill”(力学,y动学),力词霸会出现其他同不单词 的d“yanitmen. 药炸”的示显误错。
(6
)英 尔特奔浮腾除点缺法陷 在计算的“机计器”程算中输入以下序式算 (:195435/31847275 )3*157472-491535 8如果答案是,0说明就计机算问题没如。果得别的结出果就,表计示算 使用机的是有浮带除点法软缺陷的老式英特尔奔件处腾理器—— 个这软缺陷件被录烧在一个计算芯片机中并,在制过程作反复中产生 1。94910月30年,日吉利弗州亚ynLchubr 学g的Th院moas R .Ncilye博士 他的在一实验个中,用奔P腾C机决一个除法问题时,解录记了个一想不到的 果,结得了错出误结的。他论发现的把问放题因到网特上 随,引发后了一风场,暴千成上万的发人了同样现问题,并且的现发 在另外一情形下些会也出错误得结的果万。的是,这幸种情很况见少, 仅仅进在精行要求很高度数学、科的和学程工算计中才会导致错误。大 数多来进用行税处务和理商应务用的用根户不本遇会此类到问题
。这件事
情引人关的注并是这个软件缺陷不而,是特尔公英解司决问题的方式: • 们他软的件测试程工师在片芯发之布前进行部内试测时已经现发 了这问题。个特英的管尔理认层为这有严重到要没保修正证甚至, 公开程的。 • 当度软缺件陷发现时被,英特尔过新闻通发和布公开明试图弱化声 这问题的已个严知性重 。受到力压,英特尔时诺承换有更题问芯片,的要但用求必户证 明须己自到缺受的陷响。
影2软件缺陷的定义 .上从的述例案可中以到软件看生错误发将造成时灾性难害危或 对户用生各种影响产软。件缺陷bug),即(计算系机统者或序 程存在的任中一种何坏破正运行常力能问的、题误错或,者隐藏的功能缺陷 瑕疵。、缺陷导致会件软产品某在种度上程能满足不 户的需要。用 对软件于缺陷的确准义定通常有,以5条下述描 :(1软)件实未现品产说书明要
求的能功 (。2)件软出了现产品说明指书明会出现的错误。 (3不)件超软出实现产品说了书提明的功能。到( )软4实件现产了说明品书虽未确明出但指该实现应的标目 。5)(件软难以解,不易理使用运行缓,慢或者终用户端认不好 。
为
了更好地为理每一解条则规我,以们算器为例计行说进。明计算器 产的说品明书称它能声够确准误无进地加、减行乘、、除运。算当 拿到你算计后,按下(器)+键结,果么什应也没有反根,第据1 条规,这是一个则陷缺假。得如到误答案错根据第,条1规,则同这样 是一缺陷。个 产品说明若书声称算计器永不远崩溃、会锁死者停止反或。应当任意你 敲键盘计,器停止接算受入输根,据第条2则规这,是一缺陷。个若 计算用器进测行,发试除现了、加、减、除之乘它外可还求以平方根 说明书,从没中到提这功一,根据第3能规条,则这是软件陷缺软件 实现。产品说了明书提未到功能 的若在试计测算器时会,发现电没电会池导致计算正不确,但产品说明书 指未这个出题问。根据第4条规,这则是缺陷。 第个5条规则全面的是如。软果件测试员发某现些方地对不劲,无论什 么因,都原要认为缺陷定如。“”键=置布位的置使其其极好按;不在或亮明光 显示屏下以看难清。据第5条根规,这些则都缺陷是
3.软件缺陷。种的类软 缺陷件表现形式有的多种,不仅仅现体功在的失能效方,还面 体在其他方面现软。缺陷的件主要型有类:• 能、功性特没实有现或部分现。 实 •设不合计,存在理缺。陷• 实际 果和结期预果不一致。结 •运行错出,括包运行断、中系崩溃、界面混乱统。 数据•果结不正、确度精够不。用 不户接能受其他问的,如存取题时间长、过界不面美观
。
4软件.陷缺的级别及件缺陷的软态 状1)(件缺陷软的级别 作为件测软员,可试所发现的能多大问数不是题么明那、严显,而重难以觉是察 的单而细微的错简误,些是真正的错有,也有误不些是。般一说来问,越严重题的, 优其先级高,越要得越到及的纠正时。软件司公对缺陷严重性别的定义不级 尽同,但一相般以概括为 可种级4别 •致:的命:致的命错,误造系成统应用程序崩或、溃机、系死悬统挂,或造成数据丢 、主要功失能全完丧失。 •等严重:的严重误错指,能或特性功没有实现主要,功能分部失丧,要功能完全 丧失,次致命的错误或声。明 一•的般不:严重太的错,这样误的软缺件虽陷不影响系然的基统本用使,没但有很 地实好现能,没有功达预到效果期如。要次功丧能,提失示信不息太确准, 或
用户界差面操作,时间等。长•微 的小一:小问些题,功能几对没乎有影响产,及属性品仍可用使如有,别错个别字、 字文列排整齐等不 。除这 了种4之,外有需要时 “议”级别来建处测理人员试提出所建的或议质疑如,建议程 做适序当的修改来改,善序程行运状,态或设对不计理合不、白明地方提的 质疑出
(。2).件软陷的缺状态 软件陷除缺了严性之外重还存,在映软件缺陷反于一处种么什样 的态状便于跟踪和管理某个,品的产陷,可以缺义定不的同bug态。 状 •活状激:问态还没题有解,决试人测员新报的ubg,验证或后bg仍u然存 在。• 已修状正:态开人员针发所存对的在缺,修改程陷,认序为解已 问题决或通过单,元试。 关闭或测激非活态:状试测员人证已验经正的b修gu,后确b认u不存g 以后的在状。态
5软.件陷的缺原 软件缺因陷产的,生首是先可不避免。其的我次们以从可件本软, 身队工作团技和问术题多等方面个析,分比容易确较定成造软件缺的陷 因原,纳如归。下•技 问术 •题法算错误 。语法•误错 •。算计和度精问题 •。系结构不合统,理造系统成能性问题。 口参数不匹接出配问题现。
团•工队作 系•分析统时对客户的需不是十分求清楚或,者用和的沟户通存在一些困 难。 不•阶段同开发的人相员理解互不致,软件设计对一需求析分果的结理解 偏差编程,人员系统对设规计格明书说中些某内重容不视够或存在,着误 。解 •计设编程或上的些假一或依赖性定没,有得到分的充通。 沟•软本件 •身档文错、内误容正不或拼确错误写 。•数据考不周虑全起强度或负载引题问。• 对边界考不够周全,虑漏某几掉边界个条造件成错误。的 对•些一时应用系统,实证精保确时的同步间,否则容引起时易上不协间 调不一致、带来性的问。题• 有没考系统虑崩后溃在统系全性安可、靠性隐的。 患硬件或系•统件软存在上错的。 误件软发开准标或程上的错过。
误
6
软.缺陷件的成组我 知道软件缺们是由很陷原多造因成的,果把它们按需如求分结果 —析 —格规说明,系统书设结果,计程的编码等代归类来,比起后较发,结现果 格规明说书软件是陷缺出最现的多方,地见图1-1。
图1-1软件 缺陷构示成图意
1.件测试技软的术展发历 史着随算计机诞的生——在件行软发展业期初就经已始开施实软测件试 ,但这一阶段还没系统有义意上的软测件,更试的是一种类似调多试的 试测测试。是有没划计方和的法测,用试例的设和选取计也都 根是据测人员试经验随机进的的,行大多数测的目试是的为了明系统证可
以正常行。 2运0世纪50代后期年到0世260年纪,各种高代语级言继诞生相测, 试重点的逐步也入到转用使级高语编言的软写件系统中来,但序程的复 杂远性超过远了前以尽。管如此,于受由硬件到的制,在约计机算 统系,中软件然仍于处次位要。置件软确性正把的握仍然主要依于编赖程人员 的术水技。因此平,一时这期件软测试理论的方法发和比展较 缓。
慢
02世纪0年7代以后随,计着机算处理速度提高的存,储器量容快的速增加 ,件软在个计算整机统系中的位地得变越越重要。来随着件 软发技开的成熟术完和善软,件的模规越也越大,复杂来也大大增加度。 因此,件软的可性靠面临着前未有的所机,给危件测软工试带作了 更大来挑的,很多战测理试和论测方试法运应生而逐渐,形了成套完 一整的系,培养和体造了就批批出色的测一人才试 。如今在软产业件化发的大展势下,人们趋对件软量质成本和进, 的要求也越度来高,越质量的控已制经仅仅是不统意义传的软件上测试。传 软件统的试测多是大于基代码运的行并,常且常软件开是发后 的期开始才进,但大量行究研表,设计活动明入引错误的软件开发占过 中程出的所现有错数量误的50~6%5%。因,越来此多越的音呼吁,声要 求一个有范的软件开发规程过而在。整个件开发过软程中测试已,经 不只是基再程于序代码行进的活,动而是一个基整于个软件命生周期 质的量控制动,贯活于穿软件开发各个的阶。段
2.软件测
试现状的 我国,在软测件试可算不能一上真正个产的,业件软发开企业 软对件试测认识淡薄软件,测试员人软与件发人开员往比例往失调 而在发达,家和国地软件测区试已成了一个产业。 我们在软经件测实现方试面不比并国外,差际上优秀国的试测 工,我具们基都有,本这些具工体现所的思想我们也深刻有的解, 理多很大型统在国系内都得了很好的测到。
试
1.软件测
试的义 定件测试就软在软件投是入行运,前对软需求件析分设、规计 格明说编码和的最复终审,软是件质量保的关键步证。骤通对软常测件试的定 义有下如述:描软件测 试是了发现为错误而执程行序过的。或者程,软件测说 是根试据件开软各发段的规格说阶明程和的序内部构结而心精计一设 批测用试例,利并这用测些试例用运去程行,以序现程序错误的发过 程
2.。件测试的目软 的基于同不的场,存在着立种完全两同的测不试的目 从用。户角的度发出,遍希普望过通软件试暴露测件中隐藏的软 错和误缺陷以,虑是否考可接受该以品。产 从件开发者的角度软发出则希,望成表为软件明品
产中不在错 存的过误程,证该软验已正确地实现了用件户要的求,立确人对软 件们质量的心信 。综所述,上软件测试的目的括以下三包:点 1) 测(试程序是执行的过程,的目在发现错于误,能证不明序程 的正确性,限仅处理有于限种情的。况( ) 检查2统是系满否需足,求也这是测试的期望目。标 (3) 个好的一试用例在测发现于还曾未现的错发误成功;的试测是 现发了错误测的试
。
.软3测件的原试则 软测件的目标试是以最想的时间和少力找人软出中件潜的各在错 种和误缺。如陷果功成地实了施试测,能就够发现软件中的误。 根据这错样的试目测的,软件试测原则应该是的 •:应当把 早地和尽不地进断行件软测作为软试件发者开座右铭。的坚持 在软开件的各个发段的技术阶审,这样才评在能开发程中尽早过发 和预防现错,把误出现错误克服在早期,的绝某些隐患,提杜高件软质 量 •。 测试例应由测试输入数用据和与对应之的期输出预果这结部两组 分成。如对测果试入数据输没有给出期预程的序输结出,那果就缺么少了检验 实测果的结基,就有可能准一把似是个非而的误错果结成当 确结正果。程序员 应免检查自避的己序程。果由别人来测试程序员编如写的程 序,可能会更观,更客有,并更效易取得成容功。
•设在计测用试例,应时包当括合的输理入件和条合不理输的入件。条合 的理输入件是指条验证程能正序的输入条确,件不而合的理入输件 是条异常指的,临界的,能可起引问变题异的入条件。因此输软,系件处统 非理法令的能命也必须在测试力受时检验。用不合到的输理条入件试测 程序,时往比用合理的输入往件进行条试测能现更多发错误。的 充分•意测注试的中群集象。现测试不要时以找到了几为错个问题就已 误决解不,继需续试了。测当应错误群集的程序段对行进重测点,试提以高 测试投的效资益 • 严。格行执测计试,排划除测的试随意性。对测于计划,试明确规要, 不定随要解意释 •。应当 对每一个测结试做果面全查。检是一这条明显最原的则,常但被 常视。忽必对须预的输出结期果明定确义,对实的测果仔细结析检查分抓 住关键,,暴错露。误 •妥 善存保试测划计,试用测,例错统出和最终分计析告,报为维提供 方便。护
4
软件.试测分类的从不同的 度,可以角把件测试软术分技不成种类同 。1(从)是需否执要行被软测的角件度分类 是否需要从行被执测软件的度角,可为静态测试(Sta分it cTsteni)g 和态测动试Dy(nami cesTtni) g顾。名思,义态测静试是通过就对被 测序的程态审静查发现,码中
代潜在错误。的一它般用工人式脱方机 成,完故亦称工人测试代或评审(C码de oeRveiw ;也)借可于静助分 析器在态机上以自动器式方进检行查,不要但求序本程身机器上在行运。 按评照审不的组织形同,代码式审评可分为又代码会审,走以及 查公桌检办查,行同评4分种。某对个具的程序体,常只使通一用评种 方审式。 态测动试对象的必是须能由够计机真正运算的被测试的程行序。 它分黑为测试和盒白盒试,也是测们下面将要介我绍的内。容
2(从)软件测试用设例计方的法角分类度 从件测试软用设例方法的计度角可,分为黑测试(B盒alkcBox- esTingt)和盒白测试Wh(tieB-ox esTtin g)。黑盒测试是一 种从户观用出发的点测,试称又为功测试,数能驱 动据测试和基于格规明说测试。的若试用测例设的计基于是品的功能 产,目的是检程序各查个能是否功现,并实检查其的中功错能误,则 这种试方法测称黑盒为 。白测盒试于基产的内部结品构来进行试测,查内部操检作否按是规定 行执软件各,个分功能部否得到是充分用利白。盒试又测称结为 构试测,辑逻驱测动或基于试序的测程。即根试被据测程的内部结序 设构测计用试,测例者试需先了解事测试被序的程构结。
()从3件测软的策略试和过程的角度分。类按照软 件试测的策略过和程分,类软测试可分件单为元测(U试nt iTesingt),成集试测(nItgreaton Teisitg n,确)测试认Va(iladitonT estngi) ,统系试测Sy(stme esTint )g和验收测(试eriVfcation ieTtisg )n 单元测试是.对针每个元单的测试是软,测试件最的小单位。确它保 每个块模正能工常作单元。测试数多使白盒用测试用,发以现部内误错 集成测试是。已测对过试的块进行模装组进行集,测成试目的的要主在 检验于软与件计设关的程序结相问构。题集成测一般通过黑试盒试测 法来方完成。确认测试是 检验所发的软件开能满足所否有能和功能需求的最后手 性,通段常用采黑盒测方法试。 统测试系的要主务任检是测测被软件与统的其系部分他的协调。 性收测试是软验件品质量的产最后一关这一。节环,测试主从用户要的角 着手度,参与其主者要是户用和少量的程开序人发。员
图
1-给出2软了件测生命周期试模的型把.试测生命周的期分为几个阶段 .3前个阶段是入引程错序阶段,也误是开就发过程 中需的求格规明说设计、、编阶段,码时此易引极入误或者错导致开 过发程中他阶段其生错产。然后是误通测试发过错现误的阶段这 需要,通过用使些一适的测当试术技和法方共同来完成后。个阶段3是清除 序程误的阶段。错其主任要是进务缺
行陷分类缺、陷离隔 和解缺陷。决中在修复旧缺陷其时候很的能引可新进的误,导错致 原能够正来确行执的序程出现新缺的。陷
图
-2软件测1生命试期
周在件软试测生周命期的每个阶段要都成一完确些的定任,在务 执每行阶个的段务任,可以时用行采之效的有构分结设析技计和术 适的当辅助具工在;结束个阶段的任务每都进行时严的技术格查审 和理复管。审后提交最最终件配置软一个或的几个成(分文档或程序) 。
1测.与软试件开发各段的关系阶 软件发开程过一个自顶向下,是逐细步化过程,首的在软先计划 件段定义了阶软的作用件域然,进行软后需求件析,分建立件软的据数 、域能功和性需求、能约和一束些有性效准。则着进接入件软开发 首先是软,件计,设后然再把计设某用程序种设语言计转换程序成代码 。而试测过程是则相依的反序安排顺自的底向上,逐步集成过程的, 低一测级试为上级一测试准备条。件外此有还者平行两地行进试测。如图 -1,3首对先一每个程序模块进单元行测,消除程序模块内部 试在辑逻上功能和的上错误和缺。再对照软件陷设进行计集成测试,检 测排除子和系(统系统)或结上构错的。随误后对照需求,进行确 再认试测最。后系统从体全发,运行系统出看,否是足满要。
求
图1-
软件测3与试件软开发过程关系的
.2测试开发与的并性行 在件软的需得求确认到通过评并后,概要审计工设和测作计 划制定试设工计作要并就行行。进果系统如模块经建立,已各对个 模块详细的计、编设码单、测元试等作又可并工。待每个行模完成块 ,可以进行集后测试、成系测统试并行。程如图1-流4所。示
1-图4软 测件与软试开发件的并行
性
3.试与测开发模型软件测试 仅仅不执行测试,是而是个包含很一多复杂动活过程的 ,且这并过程应该贯些穿整于软个开件过发。在程件软发过开程,应 该中什时么候行测进,试何如更地把好件开软和发测活动集成试一起 ?其到这实也是软件测工试作员人须必虑的考题,因问只有为样这才 能提,高件测软工作试效的率,提高软件品的质量产最,限度大地降低软 件开与测试的成本发减,重复劳少动。如1-5所图,示即软件为 试测开发与的整流完程。
图-15软 测件与开试的发整流完程
1.名
词解释:软件 缺、陷软件测、试态静试、测动态试测黑盒、测试、盒测试 白、元单试测、集测试。 成.2述缺陷简生产原的因。3 简.软述件测试展历史发及软测试的件现。 状.简述软4测试件的目的 。.5述软件测简试原的则。6 简述软件.试测软与件发开的系。关 7.谈你谈对件测
软试重要性理解的。