版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
物联网测试技术第2讲软件测试基础第一页,共49页。第2章软件测试基础2.1软件测试的含义2.2软件测试模型2.3软件测试过程2.4软件测试基本理论2.5软件质量2.6软件可靠性第二页,共49页。2.1软件测试的含义软件测试的定义:G.J.Myers提出:
测试是为了证明程序有错,而不是证明程序无错误;
一个好的测试用例是在于它能发现至今未发现的错误;
一个成功的测试是发现了至今未发现的错误的测试。第三页,共49页。2.1软件测试的定义软件测试的定义:1983年IEEE:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。第四页,共49页。2.1软件测试的定义
软件测试的定义为:
1990年IEEE:在特定的条件下运行系统或构件,观察或记录结果,对系统的某个方面做出评价;分析某个软件项以发现现存的与要求的条件之差别(即错误)并评价此软件项的特征。第五页,共49页。2.1.1软件测试的发展20世纪50年代后期至60年代,1957年,软件测试首次作为发现缺陷的活动。70年代,北卡罗莱纳大学,JohnGoodEnough和SusanGerhart发表了《测试数据选择的原理》一文,确定软件测试的地位。90年代后,测试贯穿于基于整个软件生命周期的质量控制活动,贯穿于软件开发的各个阶段。第六页,共49页。2.1.2软件测试的原则应当把“尽早和不断地测试”作为测试者的座右铭。程序员应该避免检查自己的程序,测试工作应该由独立的专业的软件测试机构来完成。设计测试用例时,应该考虑到合法的输入和不合法的输入,以及各种边界条件,特殊情况下要制造极端状态和意外状态,比如网络异常中断、电源断电等情况。一定要注意测试中的错误集中发生现象,这和程序员的编程水平和习惯有很大的关系。第七页,共49页。对测试错误结果一定要有一个确认的过程。一般有A测试出来的错误,一定要有一个B来确认,严重的错误可以召开评审会进行讨论和分析。制定严格的测试计划,并把测试时间安排得尽量宽松,不要希望在极短的时间内完成一个高水平的测试。所有的测试都应该追溯到用户需求。妥善保存一切测试过程文档,意义是不言而喻的,测试的重现性往往要靠测试文档。不可能完全测试2.1.2软件测试的原则第八页,共49页。2.1.3与软件开发关系项目规划阶段:负责从单元测试到系统测试的整个测试阶段的监控。需求分析阶段:确定测试需求分析、系统测试计划的制定、评审后成为管理项目。详细设计和概要设计阶段:确保集成测试计划和单元测试计划完成。编码阶段:由开发人员进行自己负责部分的测试代码。在项目较大时,由专人进行编码阶段的测试任务。测试阶段:依据测试代码进行测试,并提交相应的测试状态报告和测试结束报告。第九页,共49页。软件测试和缺陷修复的代价第十页,共49页。2.2软件测试模型1.V模型V模型的局限性是把测试作为编码之后的最后一个活动,需求分析等前期产生错误,最后才能发现。第十一页,共49页。2.2软件测试模型1.W模型W模型中增加了软件各个开发阶段同步测试。其局限在于无法支持迭代、自发性以及变更调整第十二页,共49页。2.2软件测试模型1.H模型H模型中演示了在生命期中某个层次上的微循环测试。第十三页,共49页。2.3软件测试过程单元测试单元测试单元测试被测模块被测模块被测模块集成测试系统测试验收测试验收测试设计信息软件需求其他系统元素用户需求规范已测模块已测集成已确认已测验证第十四页,共49页。单元测试
又称为模块测试,属于最低层次的测试活动。它对软件测试的最小单位程序模块进行的测试活动,其目的在于发现程序模块内部可能存在的差错。它的特点如下:针对的是软件设计的最小单位程序模块进行。单元测试的执行率是100%。提升了软件系统的可信度。包括对可能出现的代码进行排查。准确反映了代码的变化便于后期的维护。2.3软件测试过程第十五页,共49页。集成测试
又称为组装或联合测试,把多个模块组合形成更大的单元。实践发现,单元模块能够独立正常工作,并不能保证一些模块能够连接起来后正常运行,也就说局部正常,但不是说全局正常。
集成测试又可为分为非渐增和渐增式集成。非渐增式先分别测试每一个模块,再把所有模块组装在一起形成程序。渐增式集成把下一个要测试的模块同一个已经测试号的模块结合在一起进行测试。渐增式又分为自底向上集成方法和自顶向下集成和三明治集成测试等。2.3软件测试过程第十六页,共49页。系统测试
对整个产品系统进行的测试,其目的是验证系统能否满足需求规格的定义,找出与需求规格不相符合或与之矛盾的地方。它不仅针对所需测试的软件产品,还包括所需的硬件、外设或者其他配合软件组件等。一般系统测试分为5个阶段:测试计划阶段测试用例分析和设计阶段测试实施阶段测试执行阶段分析和评估阶段2.3软件测试过程第十七页,共49页。确认测试
又称为有效性测试或合格性测试,其目的是对软件产品进行评估以确定其是否满足软件需求的过程。它一般通过一系列黑盒测试来实现软件确认。它一般由软件企业中独立的部门或第三方测试机构来完成。2.3软件测试过程第十八页,共49页。验收测试VerificationTesting通过测试发现错误,报告异常情况,提出批评意见,然后再进行改错和完善、并修正。
其目的在于向用户表明所开发的软件系统能够向用户所预定的那样工作。它往往是最后一个阶段,也成为交付测试。
它的主要任务有:明确规定验收测试通过的标准。确定验收测试方法确定验收测试的组织和可利用的资源。2.3软件测试过程第十九页,共49页。验收测试
它的主要任务有(续):确定测试结果的分析方法。制定测试计划并进行评审设计验收测试的测试用例。审查验收测试的准备工作。执行验收测试。分析测试结果,决定是否验收。2.3软件测试过程第二十页,共49页。2.4软件测试理论按照软件测试用例的设计方法而论,软件测试可分为白盒测试法和黑盒测试法;按照软件测试是否执行程序而论,软件测试又可以分为静态测试和动态测试;按照软件设计方法是否采用面向对象设计技术而论,软件测试又可以分为传统测试方法和面向对象测试方法;按照网络环境下C/S应用结构的特定环境而论,软件测试又有其相应的方法。这些都是软件测试具体的测试方法。第二十一页,共49页。2.4.1软件测试用例设计如何测试一个电子邮箱登陆的功能?1.输入正确信息,登陆成功?2.输入了错误的密码,登陆失败?3.输入错误用户,登陆失败?4.用户和密码都错误,登陆失败?5.不输入信息,登陆失败?......上述每一种用户、密码和验证码的组合都是一个测试用例,做测试首先就是要设计好测试用例。第二十二页,共49页。2.4.1软件测试用例设计测试用例的概念testcase:对一项特定的软件产品进行测试任务的描述,体现测试方案,方法、技术和策略。内容包括测试目标,测试环境,输入数据,测试步骤,预期结果,测试结果以及形成的文档。第二十三页,共49页。2.4.1软件测试用例设计测试用例的准则测试用例的代表性。测试用例的非重复性。测试结果的可判定性。测试结果的可再现性。第二十四页,共49页。2.4.1软件测试用例设计测试用例的设计方法白盒技术语句覆盖判定覆盖条件覆盖判定/条件覆盖条件组合覆盖路径覆盖第二十五页,共49页。2.4.1软件测试用例设计测试用例的设计方法黑盒技术等价类划分边界值划分因果分析法……第二十六页,共49页。2.4.1软件测试用例设计测试用例的设计误区必需完全覆盖测试需求,而不针对单个用例评判好坏应该给出所有操作信息,使得一个没有接触过系统的人也能进行测试是一个一劳永逸的事情好的用例是能发现未知bug信息让新手设计用例即可。第二十七页,共49页。2.4.2软件测试方法静态测试方法是指测试时不运行的部分,例如测试产品说明书,对此进行检查和审阅。仅通过分析或检查源程序的文法,结构,接口,过程等检查正确性。静态方法用来检查出来可疑性。目前常用的工具有LogiScope、testWork等。检查内容有:1)程序缺陷审查不匹配的参数不适当的循环嵌套和分支嵌套空指针的引用或可疑计算……
2)可能发现潜在的问题:未使用过的变量……第二十八页,共49页。2.4.2软件测试方法动态测试方法动态测试是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程,所以判断一个测试属于动态测试还是静态测试。区分它们的标准是查看程序代码是否运行。
动态测试是通过观察代码运行时的动作,来提供执行跟踪、时间分析以及测试覆盖度方面的信息。动态测试通过真正运行程序发现错误。第二十九页,共49页。2.4.2软件测试方法白盒测试方法又称为结构测试或逻辑驱动测试。它把对象开成一个打开的盒子,进行测试时候,检查内部的结构和处理过程,通常无须测量软件产品的功能。
白盒测试需要注意覆盖标准,包括前面所述的逻辑覆盖,循环覆盖等。
白盒测试通常有软件产品内部程序人进行,也有常用的测试工具:Jtest、C++Test、Logiscope。第三十页,共49页。2.4.2软件测试方法黑盒测试方法又称为功能测试或数据驱动测试。它根据软件的规格对软件进行测试,这类测试不考虑软件内部的运作原理,因此软件对用来说就像一个黑盒子。它从用户的角度,输入各种数据,观察软件的各种输出发现软件存在的缺陷,而不关心软件程序是怎么实现的,工具有WinRunner,LoadRunner。第三十一页,共49页。2.4.3软件测试的误区测试与调试程序是一个事情忽视需求阶段的参与软件开发完成后进行软件测试通过短期增加软件测试投入,迅速达到零缺陷规范化软件测试使项目成本增加。期望用自动化测试代替人工劳动第三十二页,共49页。2.4.3软件测试的误区软件测试是技术要求的岗位软件发布以后,如果发现质量问题,那是软件测试人员的错误。软件测试是测试人员的事情,与程序员无关。项目进度吃紧时可以少做些测试,等到时间富裕时再多些测试通过软件测试发现所有问题通过测试证明软件的正确性。第三十三页,共49页。2.5软件质量软件质量保证(SQA)。软件能力成熟度模型CMM。第三十四页,共49页。2.5.1软件质量SQA1979年Fisher和Light:表征计算机系统卓越程度的所有属性的集合。1982年改为:软件产品满足明确需求一组属性的集合。ANSI/IEEE729:软件产品能满足规定的和隐含的与定义的需求有关的全部特征和特性。软件质量是各种特性的复杂组合。它随着应用的不同而不同,随着用户提出的质量要求不同而不同。软件质量特性,反映了软件的本质。讨论一个软件的质量,问题最终要归结到定义软件的质量特性。人们通常把影响软件质量的特性用软件质量模型来描述。第三十五页,共49页。2.5.1软件质量SQA软件质量特性定义成分层模型最基本的叫做基本质量特性,它可以由一些子质量特性定义和度量。二次特性在必要时又可由它的一些子质量特性定义和度量。1976年Boehm质量模型1979年McCall质量模型1985年
ISO质量模型第三十六页,共49页。第三十七页,共49页。Boehm质量模型第三十八页,共49页。ISO的软件质量评价模型按照ISO/TC97/SC7/WG3/1985-1-30/N382,软件质量度量模型由三层组成软件质量需求评价准则(SQRC)软件质量设计评价准则(SQDC)软件质量度量评价准则(SQMC)高层和中层建立国际标准,低层可由各使用单位视实际情况制定第三十九页,共49页。第四十页,共49页。CMM软件过程管理对软件开发全过程规范化及标准化的管理软件过程管理技术包括:软件管理学和软件工程经济学目前,国外普遍采用的软件过程管理方法是:美国卡内基•梅隆大学软件工程研究所(SEI)提出的软件能力成熟度模型(SW-CMM)目的:研究如何有效地对软件开发项目进行管理,以便按照进度和预算完成软件项目计划,实现预期的经济效益和社会效益包括:成本估计、进度计划、人员组织、质量保证等第四十一页,共49页。软件产业与CMM的提出软件产业的发展软件产业发展过程Continue第四十二页,共49页。CMM的发展过程CMM的发展1987年9月SEI软件能力成熟度框架和软件成熟度问卷1991年SEI推出了CMM1.0版本1993年SEI推出了CMM1.0版本目前CMMI(CapabilityMaturityModelIntegrati
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国北斗应急预警通信行业资本规划与股权融资战略制定与实施研究报告
- 2025-2030年中国电气化铁路接触网行业资本规划与股权融资战略制定与实施研究报告
- 2025-2030年中国消费性服务行业营销创新战略制定与实施研究报告
- 2025-2030年中国工艺品行业并购重组扩张战略制定与实施研究报告
- 自动售卖机创业计划书
- 建设生态文明-推进科学发展
- 新员工入职培训课件12
- 2024年幼儿园成长手册寄语
- 狗狗护主知识培训课件
- 2025年中国头孢拉定行业发展监测及投资战略研究报告
- 【MOOC】药理学-华中科技大学 中国大学慕课MOOC答案
- 脑卒中抗血小板治疗
- 机器人操作系统ROS原理及应用 课件 07 ROS简介
- 螺杆压缩机安装施工方案
- 杭州宋韵文化课程设计
- 营销课件教学课件
- 2024时事政治考试100题及参考答案
- (赛斯资料)健康之道(全本)
- 汽车常识课件教学课件
- GB/T 5267.5-2024紧固件表面处理第5部分:热扩散渗锌层
- 装配式叠合板安装施工方案
评论
0/150
提交评论