Ch1-软件测试概述

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1软件测试方法和技术-Ch.1软件测试概述2008年2机遇和挑战并存TestEngineerQA/SupervisorProject/QualityManager目前国内软件业的弱点正是发展的前沿321世纪什么最贵——软件测试工程师软件测试工程师,目前IT行业极端短缺的金贵人才,未来5年IT行业最炙手可热的高薪职位。中国软件业每年新增约20万测试岗位就业机会,而企业、学校培养出的测试人才却不足需求量的1/10,这种测试人才需求与供给间的差距仍在拉大。软件测试——产品质量的保证软件测试——控制成本的关键软件测试——软件可靠性确认软件测试——让企业具备国际竞争的实力著名软件测试专家、清华大学教授郑人杰表示:软件测试工程师是一个越老越吃香的职业。4人力市场的测试人员位置?1800虚位以待…Onlyinonewebsite-51job.cob5课程目标本课程是计算机或软件专业课程,重在培养学生的实践能力,适应软件企业的工作环境和业界标准,并和国际先进的软件开发理念和测试技术保持同步。通过本课程的学习,了解并掌握软件产品质量保证的基本思想和科学体系、软件测试技术的基本内容,以及软件测试的方法、技术和工具的使用,为全面掌握软件测试技术和软件测试项目管理打下坚实的基础。6课程目标通过本课程的学习,还可以了解并掌握:有效的测试策略、方法和技术测试计划和测试用例的设计测试自动化的引入、应用测试团队的建立和测试项目的管理更清楚、准确地报告测试缺陷对软件产品质量的正确评估软件测试和质量保证的关系和区别……7课程服务于-测试工程师Testengineer-QA工程师/经理QAEngineer/Manager-软件工程过程组成员ThememberofSEPG-项目经理Projectmanager-程序员Programmer-软件分析师SoftwareAnalyst-软件咨询顾问SoftwareConsultant-……8课程内容概览课程名称:软件测试技术学时:36学时,讲授:24学时,上机实验:12学时考核方式:考试成绩:平时成绩×20%+考试成绩×80%(三次点名不到,1/3作业不交和上机不到,无成绩)教材:朱少民编著,软件测试方法和技术,清华大学出版社参考书:郑人杰主编,计算机软件测试技术,清华大学出版社古乐编著,软件测试技术概论,清华大学出版社9课程安排周次教学章节教学内容学时1第1章软件测试概述1软件的含义2软件开发过程的特性3软件测试的重要性22第2章软件测试基本概念1软件质量内涵2软件缺陷(Bug)是什么3软件测试的误区4软件测试的原则23第3章软件测试方法与测试用例1软件测试的基本方法2软件测试用例设计概述3白盒测试用例设计方法4黑盒测试用例设计方法5测试用例的案例310课程安排(2)周次教学章节教学内容学时4第4章软件测试的过程和管理1软件测试的分类和阶段2软件测试的工作范畴3软件测试项目管理4软件测试项目的过程管理5软件测试项目的其他管理25第5章软件测试质量保证和测试策略1软件测试质量保证2软件测试策略3软件测试计划4软件质量的可靠性评估16第6章软件测试依据和规范1软件测试质量标准2软件测试相关规范3CMM思想和结构体系4建立软件测试管理和评判体系211课程安排(3)周次教学章节教学内容建议学时7第7章单元测试与验收测试1单元测试的概念2单元测试的技术与方法3验收测试的概念4验收测试的过程28第8章集成测试和系统测试1系统集成的模式与方法2功能测试3系统测试4压力测试、容量测试和性能测试5安全性、可靠性和容错性测试29第9章基于应用服务器的测试1应用服务器的分类和特征2基于Web服务器应用的测试3基于数据库应用服务器的测试4其他应用服务器应用的测试212课程安排(4)周次教学章节教学内容学时10第10章面向对象软件测试和软件本地化测试1面向对象测试基本概念2面向对象测试过程3软件本地化测试概念4软件本地化测试技术211第11章软件测试环境与软件测试自动化第1节测试环境与软件测试自动化1测试环境的概念2建立测试实验室3测试环境的维护和管理第2节软件测试自动化1测试自动化的内涵2测试工具的分类和选择3IBM-Rational产品的整体解决方案212第12章软件测试的组织和质量分析第3节测试的组织1测试团队的构成2测试团队的管理和发展第4节测试的质量分析1软件质量的度量213第一章软件测试概述1软件的含义2软件开发过程的特性3软件测试的重要性4软件测试的认识与发展141软件的含义1)软件的定义•能够完成预定功能和性能的、可执行的指令(计算机程序);•使得程序能够适当地操作信息的数据结构;•描述程序的操作和使用的文档。软件=程序+数据(库)+文档+服务152)软件组成1.客户需求-CustomerRequirements2.市场需求文档-MRD(MarketingRequirementDocument)3.软件规格说明书-Specifications4.技术设计文档–TechnicalDesignDocs5.测试文档TestDocuments6.在线帮助-Onlinehelp7.产品发布注释-ReleaseNotes/ReadMe8.产品软件包-ReleasepackagesReturn16软件产品的其他内容•帮助文件Helpfiles•示例Samplesandexamplestoillustratepoints•产品支持文档Productsupportinformation•错误信息Errormessages•安装手册Setupandinstallationinstructions•用户手册Usermanual(s)•产品标签Labelandstickers•产品广告或宣传材料Adsandmarketingmaterial•……173)软件特点软件是逻辑的、知识性的产品集合,是对物理世界的一种抽象,或者是某种物理形态的虚拟化。•软件是硬件的灵魂,硬件是软件的基础•软件,是智慧和知识的结晶•软件不会“磨损”,而是逐步完善.18硬件和软件的维护差别从另一个侧面看,硬件和软件的维护差别很大:硬件磨损可以用另一个零件替换,但软件不存在替换,而是通过开发补丁程序不断地解决适用性问题,或扩充其功能;软件维护要比硬件维护复杂得多,而且软件的维护周期要长得多;软件是通过不断地维护,改善功能,增加新功能,来提高软件系统的稳定性和可靠性。192软件开发过程的特性1)软件开发的基本过程2)软件开发过程模型3)UML代表着软件建模的发展趋势201)软件开发的基本过程21软件开发过程①需求分析:根据客户的要求,清楚了解客户需求中的产品功能、特性、性能、界面和具体规格等,然后进行分析,确定软件产品所能达到的目标。②设计:根据需求分析的结果,考虑如何在逻辑、程序上去实现所定义的产品功能、特性等,可以分为概要设计和详细设计,也可分为数据结构设计、软件体系结构设计、应用接口设计、模块设计、界面设计等。③编程:将设计转换成计算机可读的形式。④测试:对设计、编程进行验证和用户需求确认的过程⑤维护:维持软件运行,修改软件缺陷、增强已有功能、增加新功能、升级等。222)软件开发过程模型瀑布模型原型模型快速应用开发(RAD)模型改进的V模型螺旋模型增量模型和迭代模型构件组装模型并发模型XP模型23瀑布模型Return24原型模型25RequirementsAnalysisSystemDesignProgramDesignCodingUnitTestIntegrationTestingSystemTestingAcceptanceTestingOperationmaintenancePrototypingUser/Customer原型+瀑布模型26快速应用开发RAD(RAPAPPLICATIONDEVELOPMENT)27快速应用开发(RAD)–V模型使用基于构件的开发方法强调复用(重用)开发阶段:业务建模数据建模处理建模应用生成测试及反复28RAD-VModel(改进)30螺旋模型Return31阶段开发模型原因:市场的压力和竞争策略的需要、产品开发预算是有限的、由于软件的复杂程度而需降低风险、由于软件的复杂程度而需要通过分解逐步实现。32分阶段开发模型---增量和迭代模型增量开发迭代开发333)UML代表着软件建模的发展趋势UML(UnifiedModelingLanguage,统一建模语言)可以说代表软件建模的今后5到10年的发展方向,成为面向对象技术领域内占主导地位的标准建模语言,支持从需求分析开始的软件开发的全过程。总的来说,UML是一种定义良好、易于表示、功能强大且普遍实用的建模语言。573软件测试的重要性1)软件所带来的悲剧2)其他一些例子3)测试是软件开发重要环节之一581)千年虫(Y2K)在上个世纪70年代,程序员为了节约非常宝贵的内存资源和硬盘空间,在存储日期时,只保留年份的后两位,如“1980”被存为“80”。当2000年到来的时候,问题就会出现,比如银行存款程序在计算利息时,应该用现在的日期“2000年1月1日”减去当时存款的日期,比如“1989年1月1日”,结果应该是21年,如果利息是3%,银行要付给顾客每100元,大约86元利息。如果程序没有纠正年份只存储两位的问题,其存款年数就变为-89年,变成顾客反要付银行1288元的巨额利息。就是为了这样一个简单的设计缺陷,全世界付出几十亿美元。59奔腾芯片缺陷(4195835/3145727)*3145727–41958350$450million–4.5亿美元损失.2000年另外一个缺陷发生在1.13MHzPentiumIII602)其他一些例子•“冲击波”计算机病毒[11]•火星登陆事故•爱国者导弹防御系统•迪斯尼的圣诞节礼物•Windows2000安全漏洞61Bug、Debug1945年夏在美国弗吉尼亚某海军基地水上武器研究中心运行着MarkⅡ计算机,这是以继电器为元件的老式计算工具。由于没有空调设备,计算机突然停止了工作,在多方查找后发现是一只飞蛾从窗外进入落在继电器上,致使电路中断而停机。机务人员排除了这一问题,并记载了这一情况。Hooper为此创一新词,把排除机器运行的故障统称为“捉虫”----debugging。62问题在哪里?•没有足够测试•缺乏测试平台•不正确的测试环境•缺少集成测试•缺少性能测试•缺少强度测试•缺少可靠性测试•……633)测试的重要性软件测试的意义:根据Boehm的统计,软件开发总成本中,用在测试上的开销要占30%到50%。程序测试与软件测试:“程序测试是为了发现错误而执行程序的过程”软件测试范围更宽、更广:对软件质量的判断决不只限于程序本身。通常把测试阶段的工作分成若干步骤进行:模块测试、集成测试、确认测试和系统测试。64程序测试的目的“程序测试是为了发现错误而执行程序的过程”。测试的目的是发现程序中的错误,是为了证明程序有错,而不是证明程序无错。在软件开发过程中,分析、设计与编码等工作都是建设性的,惟独测试是带有“破坏性”,测试可视为分析、设计和编码3个阶段的“最终复审”,在软件质量保证中具有重要地位。65广义的测试概念贯穿在整个开发各阶段的复查、评估与检测活动,统称为确认、验证与测试活动。(V,V&T---Validation,VerificationandTesting)验证:是指如何决定软件开发的每个阶段、每个步骤的产品是否正确无误,并与其前面的开发阶段和步骤的产品相一致。确认和验证的区别:确认是回答正在开发一个正确无误的软件产品吗?验证是回答正在开发的软件产品是否正确无误?66确认、验证与测试活动分类确认、验证与测试活动分为三类:完整性检验:验证每一开发阶段中产品的完整性;进展检验:保证各个开发阶段之间其规格说明书的完全性和一致性;适用性与充分性检验:把取得的结果与对问题的理解作比较,保证所完成的结果是必要而充分的。67例子---测试对算法的影响求一元二次方程的解:AX2+BX+C

1 / 55
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功