版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,软 件 测 试 技 术,2,【软件测试行业是如何产生的?】 软件测试岗位的出现,“源自信息产业的发展以及软件企业自身、用户成熟度的不断加深。” 清华大学 郑人杰 计算机使用越来越普及,越来越多的领域使用了计算机,特别是一些重要领域如国防、银行、金融、通讯、航天等,对软件质量要求很高。同时一些重大事故的发生,也引发了人们对软件质量的关注。如2002年欧洲载重10吨的阿丽亚娜5型火箭发射失败,最后证实是软件质量问题;还有国内的一些银行金融系统,因软件质量问题不得不暂停营业。毋庸置疑,在经历了长期的不为人知和可有可无后,软件测试工程师目前已变的炙手可热。,3,【软件测试行业的现状】 中国软件产业
2、存在着“重开发、轻测试”的倾向,在造成软件产品质量问题日渐突出的同时,也突显了中国软件测试人才的极度匮乏。制约着软件整体质量的提高,同时也加重了软件产业的开发和服务成本负担。 在中国一百二十多万软件从业人员中,真正能担当软件测试职责的不超过 5 万人。在软件业发达国家,软件测试人员与开发人员之比接近 1:1 ,在中国该比例仅为 1:8 左右,很多企业没有专门的测试职位。随着中国加入 WTO 后,相信不久的将来,国内软件测试人员与开发人员的比例将会达到甚至超出 1:1 。,4,为了同国际 IT 行业接轨,软件测试行业近几年有了飞速的发展,以前人们认为的“重开发、轻测试”倾向有了很大的改观,测试人
3、员的缺口也越来越大,下面这个图标分析了近四年国内软件测试人才的需求。,5,【软件测试前景如何?】 随着中国软件市场的发展,越来越多的国外资金投向中国软件行业。据报道,中国软件外包市场的潜力和机会已远远超过软件王国印度,不过由于软件人才的严重不足致使我国软件发展遭遇“瓶颈”。国家为了大力培养软件人才,不断采取积极有效的措施。 软件测试就业市场行情也十分乐观,最近,在北京的一次IT人才招聘会上,有20多家软件企业亮出底薪8000元招软件测试工程师的诱人广告。,6,【软件测试是青春饭吗?】 软件测试工作是对质量的把关,其中包含技术及管理等方面的工作,工作相对稳定,对年龄没有限制。而且随着项目经验的不
4、断增长和对行业背景的深入了解,会越老越吃香。 软件测试员的一生如同一名医生的一生,随着职业阅历和临床经验的丰富累积,到一定的年龄他们通过“望闻问切”就能知道毛病出在什么地方。因此,有人说软件测试员和医生是最不需要用“青春”来保证和延续自己职业寿命的职业。 由于软件测试人才更强调经验积累,在几年的测试经验背景下,可以逐步转向管理或者资深测试工程师,担当测试经理或者QA部门主管,所以职业寿命更长;另一方面,由于国内软件测试工程师人才奇缺,并且一般只有大中型企业才会单独设立软件测试部门,所以很有保障,待遇普遍较高。,7,软件测试工程师的进阶之路 初级测试工程师 测试工程师/程序分析员 高级测试工程师
5、/程序分析员 测试组负责人 测试/编程负责人 测试/质量保证/开发(项目)经理 计划经理 软件测试人员的三大发展方向 一是走软件测试的技术路线,成长为高级软件测试工程师。 二是向管理方向发展,从测试工程师到组长,再到测试经理,以至更高的职位。 三是可以换职业,做项目管理或做开发人员。,具有12年经验的测试工程师或程序员。编写自动测试脚本程序并担任测试编程初期领导工作。拓展编程语言、操作系统、网络与数据库技能。,刚入门拥有计算机科学学位的个人或具有一些手工测试经验的个人。开发测试脚本并开始熟悉测试生存周期和测试技术。,具有34年经验的测试工程师或程序员。帮助开发或维护测试或编程标准与过程,负责同
6、级的评审,并为其他初级的测试工程师或程序员充当顾问。,具有46年经验的测试工程师或程序员。负责管理1至3名测试工程师或程序员。担负一些进度安排和工作规模/成本估算职责。,具有610年经验的测试工程师或程序员。负责管理8至10名技术人员。负责进度安排、工作规模/成本估算、按进度表和预算目标交付产品。,具有10多年的工作经验。管理8名或更多的人员参加的1个或多个项目。负责这一领域(测试/质量保证/开发)内的整个开发生存周期业务。,具有15年以上开发与支持(测试/质量保证)活动方面的经验。管理从事若干项目的人员以及整个开发生存周期。负责把握项目方向与盈亏责任。,8,第一章 软件测试基础知识,1.1关
7、于软件测试课程 1.2 软件开发过程 1.3 软件质量保证 1.4 理解软件测试 1.5 软件测试的分类 1.6 软件测试工作流程 1.7 软件测试的职业要求,9,编程大师说:“任何一个程序,无论它多么小,总存在着错误。” 初学者不相信大师的话,他问:“如果一个程序小得只执行一个简单的功能,那会怎样?” “这样的一个程序没有意义,”大师说,“但如果这样的程序存在的话,操作系统没有意义最后将失效,产生一个错误。” 但初学者不满足,他问:“如果操作系统不失效,那么会怎样?” “没有不失效的操作系统,”大师说,“但如果这样的操作系统存在的话,硬件最后将失效,产生一个错误。” 初学者仍不满足,再问:“
8、如果硬件不失效,那么会怎样?” 大师长叹一声道:“没有不失效的硬件。但如果这样的硬件存在的话,用户就会想让那个程序做一件不同的事,这件事也是一个错误。”,没有错误的程序世间难求,10,1.1 关于软件测试课程,有关测试的思考题: 软件测试是一门非常重要的学科,主要研究内容是什么? 软件测试需要什么样的专业基础? 软件质量到底是什么? 测试的目标是什么? 开发一个测试系统之前你是否明白:,测试什么? 怎么测试? 测试效果如何?,11,1.2 软件开发过程,软件开发过程几个主要阶段: 定义:明确软件开发的目标、软件的需求 计划:制订软件开发所涉及的各种计划 实现:进行设计、编码、文档编写工作 稳定
9、化:以测试和缺陷修复工作为主 部署:安装、提交开发完成的软件,12,软件生命周期模型,软件生存周期 定义、计划、实现、稳定化、部署、运行与维护 软件生存期模型,瀑布模型 原型模型 增量模型 螺旋模型,13,瀑布模型,整个开发包括六个阶段:计划、需求分析、设计、编码、测试、运行维护。六个阶段自上而下、相互衔接,以固定的次序来进行。 特点 阶段的顺序性和依赖性 推迟实现的观点 质量保证 存在问题 不适合需求模糊的系统,14,原型模型,先建立一个能反映用户需求的原型系统,使得用户和开发者可以对目标系统的概貌进行评价和判断,然后对原型进行反复的扩充、改进和求精,最终建立符合用户需求的目标系统。 特点
10、快速开发工具 循环 低成本 种类 渐进型 抛弃型,15,增量模型,增量模型中,在每个阶段都生成软件的一个可发布版本。这些阶段是交错进行的。 在增量模型中,软件版本是逐步完善的。 在原型中,每个阶段是发布一个原型,而在增量模型中,是完成一个正式的版本。,进度,16,螺旋模型,螺旋模型将瀑布模型和快速原型模型结合起来,并且加入了两种模型均忽略的风险分析。 螺旋模型的每一周期都包括制定计划、风险分析、实施工程和评审四个阶段。,17,1.3 软件质量保证,不贪污的官就是好官吗?,“运行正确”的程序就是高质量的程序吗?,也许运行速度很低并且浪费内存; 也许代码写得一塌糊涂,后续很难维护和更新。,软件质量
11、是软件的生命,它直接影响软件的使用与维护。,18,通常软件质量由以下几方面进行评价。 软件需求是衡量软件质量的基础,不符合需求的软件就不具备质量。设计的软件应在功能、性能等方面都符合要求,并能可靠地运行。-能用 软件结构良好,易读、易于理解,并易于修改、维护。-好修 软件系统具有友好的用户界面,便于用户使用。-好用 软件生存周期中各阶段文档齐全、规范,便于配置、管理。-好看,19,一、软件质量定义 软件质量优秀,是因为: 满足用户的需求 合理进度、成本、功能关系 具备扩展性和灵活性,能够适应一定程度的需求变化 能够有效的处理例外的情况 保持成本和性能的平衡,一个系统、组件或过程符合指定要求的程
12、度 一个系统、组件或过程满足客户或用户期望的程度,20,二、软件错误定义 1、什么是软件错误(bug)? 当程序没有实现其最终用户合理预期的功能要求时,就表现为软件错误,2、错误的几种情况: 未将规格说明正确实现。 - 错误百出 规定的或预期的需求未体现在产品中(可能未将规格说明全面实现,也可能在开发过程中追加了需求。) - 缺斤短两 规格说明并未规定的需求被纳入产品,得到实现。- 画蛇添足,21,3、错误一定是由编码引起的吗? 需求分析 软件设计 以上两个阶段中的错误,都有可能是软件错误的根源,22,三、软件质量保证定义 1、什么是软件质量保证(SQA) 为了确保软件开发过程和结果符合预期的
13、要求,而建立的一系列规程,以及依照规程和计划采取的一系列活动及其结果评价。,23,2、建立全程SQA的观点。 为了在软件开发过程中保证软件的质量,软件的质量保证活动应贯穿整个软件生存周期的每一个阶段。 软件质量保证的工作从项目一开始就应介入。 3、SQA的手段 软件的质量保证的措施主要有检查、评审和测试。,24,4、SQA软件质量保证的具体内容 技术方法的应用 正式技术评审的实施 软件测试 标准的执行 修改的控制 度量 记录和记录保存,软件质量保证 不等于 软件测试; 软件的质量也不能完全依赖软件测试;,25,1.3 测试一个小软件,某软件系统的登录界面 用户需求- 用户名和密码放在名为lis
14、t.txt的文件中; 输入正确的用户名和密码,进入系统; 不支持空的用户名和密码;,如何测试? 有何思路?,26,1.4 理解软件测试,排除软件错误的重要手段,软件测试 测试在软件开发中占有重要地位 测试成本占有开发成本的近一半,27,软件开发成本分布,28,1、软件错误的来源 软件开发中,在需求、设计、编码阶段都有可能发生错误。 2、什么是软件测试? 软件测试就是为了发现程序中的错误而分析或执行程序的过程。 软件测试是软件质量保证的重要手段。,1.4.1 基本概念,29,3、软件测试的手段 软件测试有两个基本的手段: 分析:不实际运行软件,包括走查、代码审查、代码评价、桌面检查; - 静态测
15、试 运行:在目标环境中实际运行软件,- 动态测试,30,4、软件测试的功能 软件测试有两个基本的功能: 验证(Verification)- 保证软件正确的实现了特定功能;如:2+3 ?= 5 确认(Validation)- 保证最终产品满足系统需求; 如:MIS系统是否能满足图书馆管理的需求?,31,5、软件测试的时机 是否等软件编码之后,才进行软件测试? 测试和改正活动应在软件生存周期任何阶段进行; 错误被发现的越早,修改成本越小;,32,6、软件测试人员需要具备哪些知识? 软件测试技术 被测应用程序及其相关领域;,33,测试的目的:,测试是程序执行的过程,目的在于发现错误(缺陷) 好的测试
16、用例能有效地发现别的测试用例未发现的错误(缺陷) 成功的测试是发现了未曾发现的错误(缺陷),34,测试的对象,程序测试:发现程序中的错误(缺陷),35,软件测试原则: 测试能提高软件的质量,但是提高质量不能依赖测试 测试只能证明错误存在,不能证明错误不存在 测试的主要困难是不知道如何进行有效地测试,也不知道什么时候可以放心地结束测试 每个程序员都应当测试自己的程序(份内之事),但是不能作为该程序已经通过测试的依据(所以项目需要独立测试人员) 80-20原则:80的错误聚集在20的模块中,经常出错的模块改错后还会经常出错 测试应当循序渐进,不要企图一次性干完,注意“欲速则不达”,36,测试越细越
17、好吗?,不足测试,过度测试,测试的程度 t,未发现的缺陷数,测试成本,最佳测试点,测试成本曲线,37,这个流程图,其中包括了一 个执行达20次的循环。那么 它所包含的不同执行路径数 高达520条,若要对它进行穷举测试,覆盖所有的路径。 假使测试程序对每一条路径 进行测试需要1毫秒,同样 假定一天工作24小时,一年 工作365 天, 那么要想把如图所示的小程序的所有路径测试完,则需要3024年。,无论是黑盒测试还是白盒测试,进行穷举测试都是不可能的。,为什么不可能做穷举测试,38,为什么不可能做穷举测试,若X、Y为所有可能的整数, 在字长32位机上测试 X1、Y1 Z1 Xn、Yn Zn n =
18、 232232 = 264 1.84 1019,39,1.4.2 测试用例,1、什么是测试用例? 测试用例是由前提条件和操作步骤、预期结果、实际结果构成。,测试用例(test case),就是测试人员执行的动作。,40,案例:电话银行,41,3、通过运行软件进行测试时,要做什么? 构造测试用例 执行测试用例,检查结果是否与期望的输出一致 4、在编写测试用例时,依据是什么? 需要以软件需求为依据。,2、测试用例的三要素 前提条件和操作步骤、 预期结果、 实际结果,42,1.4.3 软件错误产生原因: 开发人员不太了解需求 软件系统越来越复杂,开发人员不太可能精通所有的技术 技术文档普遍比较糟糕,
19、文档本身就有错误 软件需求、设计报告、程序经常发生变更,每次变更都可能产生新的错误 任何人在编程时都可能犯错误,导致程序中有错误 人们常处于进度的压力之下,急忙之下容易产生错误 人们过于自信,不真实的“没问题”将产生真正的问题,43,1.5 软件测试的分类,对于软件测试,可以从不同的角度加以分类: 基于是否关注软件结构与算法 黑盒测试 白盒测试 基于是否执行被测试软件 静态测试 动态测试 基于测试的不同阶段 单元测试 集成测试 系统测试 验收测试,44,软件测试的内容 (一) 回归测试 功能测试 负载测试 : 最大负载 压力测试 性能测试 易用性测试 安装与反安装测试,45,软件测试的内容 (
20、二) 恢复测试:从故障中恢复 安全性测试 兼容性测试 内存泄漏测试 比较测试 Alpha 测试 Beta测试,46,1.5.1 黑盒测试和白盒测试,两种测试方法从不同的角度出 发,反映了软件的不同侧面,也 适用于不同的开发环境,47,该方法把被测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的界面上进行测试。,48,- 根据被测程序的内部逻辑结构来设计测试用例。 - 透明的盒子里包含着程序实现的细节,软件测试 人员就会选择特定的测试用例来验证程序是否有错。,49,举例:,50,黑盒测试与白盒测试比较,黑盒测试是从用户观点,按规格说明书要求的输入数据与输出数据的对应关
21、系设计测试用例,是根据程序外部特征进行测试。 白盒测试是根据程序内部逻辑结构进行测试。,51,黑盒测试与白盒测试优缺点比较,黑盒测试 白盒测试,优 点,缺 点,性 质,适用于各阶段测试 从产品功能角度测试 容易入手生成测试数 据,可构成测试数据使特定程 序部分得到测试 有一定的充分性度量手段 可或较多工具支持,某些代码得不到测试 如果规格说明有误, 则无法发现 不易进行充分性测试,不易生成测试数据(通常) 无法对未实现规格说明的 部分进行测试 工作量大,通常只用于单 元测试,有应用局限,是一种确认技术,回答 “我们在构造一个正确 的系统吗?”,是一种验证技术,回答 “我们在正确地构造一个系 统
22、吗?”,52,1.5.2 静态测试和动态测试,静态测试不执行被测试的软件。类似于汽车检查。,53,动态测试是在测试过程中执行被测试软件,类似于试车。,54,1.5.3测试不同阶段,按测试阶段分类,测试可分4个主要阶段: 单元测试、集成测试、系统测试和验收测试。 这是一种从小到大、循序渐进的测试过程。,55,单元测试是对程序员编写完成的一个个程序单元进行测试。 是对软件设计的最小单元模块进行正确性检验的测试工作,主要测试模块在语法、格式和逻辑上的错误。,1、单元测试,56,单元通常不是可运行的程序。 单元测试必须编写额外的可运行的测试驱动程序。,57,为了模拟某个模块与其他模块之间的联系,在进行
23、单元测试时,需设置若干辅助测试模块。 辅助模块有两种,一种是驱动模块(Driver),用以模拟被测试模块的上级模块。 另一种是被调用模拟子模块(Sub),用以模拟被测模块工作过程中所调用的模块。图显示了一般的单元测试环境。,58,一般单元测试环境,59,驱动模块(Driver),在单元测试中接受测试数据,把相关的数据传送给被测模块,启动被测模块,并打印输出相应的结果; 被调用模拟子模块(Sub),是由被测模块调用,只进行很少的数据处理,例如打印入口和返回,以便检验被测模块与其下级模块的接口;,60,2、集成测试,(1)什么是集成 将经过单元测试的模块按设计要求连接起来,组成所规定的软件系统的过
24、程称为“集成”。 (2)什么是集成测试? 按设计要求把通过单元测试的各个模块组装在一起之后,进行集成测试的主要任务是要求软件系统符合实际软件结构,发现与接口有关的各种错误。,61,(3)为什么要进行集成测试? 模块集成后所带来的问题: 数据经过接口可能会丢失; 一个模块对另一个模块可能造成不应有的影响; 单个模块可以接受的误差,组装后经过不断的积累,则达到一个不可接受的程度。 全局数据结构发生错误;,62,集,成,测,试,63,集成测试包括两种不同方法: 非增量式集成 增量式集成,64,非增量式测试方法 非增量式测试方法是采用一步到位的方法来进行测试,即对所有模块进行个别的单元测试后,按程序结
25、构图将各模块连接起来,把连接后的程序当做一个整体进行测试。,65,增量式测试 渐增式的集成中可以采用两种:“自顶向下”和“自底向上”。 自顶向下,即模块集成的顺序是首先集成主控模块(主程序),然后按照软件控制层次结构向下进行集成。 自底向上增量式测试是从最底层的模块开始,按结构图自下而上逐步进行集成和测试,66,图4-5 自顶向下增量式测试(广度优先策略),67,图4-6 自底向上增量式测试,68,3、系统测试,(1)什么是系统测试? 集成测试通过以后,软件已经组装成一个完整的软件包,这时就要进行系统测试。 集成测试的目的是检查系统是否符合软件需求。,69,(3)系统测试有哪些内容? 功能测试
26、 健壮性测试 性能测试 用户界面测试 。,70,案例: 手机操作系统的系统测试 一、多任务测试 多任务指在非idle状态下,测试机器处于工作状态时,有新的事件发生,如手机进行通话时有短信进入,手机编辑短信时有电话呼入,这种情况就是多任务,相应的测试就是多任务测试。 下面是一个多任务测试的测试用例: 例1短信查看+来电应答 步骤 期望的结果 1.进入手机短信查看状态查看短信; 1.手机在查看短信过程中能够正常响应来电 2.在短信查看过程中有电话进入; 2.按下应答键后手机能够正常通话 3.按下手机应答键接听来电; 3.按下挂机键手机能够正常结束通话 4.按下挂机键结束通话,71,临界测试指在事件
27、、任务刚刚发生、结束以及存储系统处于临界等边界状态下所进行的测试。 例2测试短信接收满 手机短信收件箱的容量为100条; 手机SIM卡收件箱已满,短信存储位置设置为手机. 步骤 期望的结果 1.接收100条短信至手机收件箱; 1.手机能够正常接收100条短信; 2.接收第101条短信至收件箱. 2.无法接收第101条短信.,72,系统测试,73,系统测试采用黑盒测试方式 为了保证测试的客观性,一般由机构的独立测试小组来执行系统测试。,74,4、验收测试,验收测试是由用户完成的测试 验收测试的内容与系统测试的内容类似 验收测试可以分成Alpha测试和Beta测试。,75,系统维护 二次开发 项目更新,单元测试,集成测试,系统测试,验收测试,回归测试,76,1.5.4 测试各种分类间关系,77,1.6 软件测试工作流程,测试工作的主要步骤 测试计划 :测试人员对需求进行分析,最终定义一个测试集合 测试设计与开发 :测试人员根据软件需求,完成测试用例 执行测试 :建立测试环境;根据前面编写的测试计划和测试用例运行测试;记录测试结果;报告软件缺陷;跟踪软
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年山东中考(数学)考试真题试卷
- 2026年西藏高考化学考试(真题)及参考答案
- 2026年辽宁省锦州市重点学校高一语文分班考试试题及答案
- 二模卷试题及答案
- 2026-2031年中国文化产业行业市场深度调研与投资前景预测报告
- 闭经诊断与治疗指南(2023版)解读暨2026版MHT更新要点
- 教学设计2026苏科版九年级数学·上册· 第1章·反比例函数1.3用反比例函数解决问题(1)(有答案)
- 湖南省湘西土家族苗族自治州2025-2026学年高一下学期期末物理试卷
- 东盟跨境数字胡椒输华种植园注册线上年审照片自动比对-基于柬埔寨农林部台账实证
- 乒乓球社团活动球类社团大公开
- 完工项目结算策划方案(3篇)
- 生成式AI对大学英语教学应用障碍与教师适应性发展的影响研究
- 机械技术文件管理制度
- T/CAEPI 52-2022工业有机废气净化用蜂窝活性炭
- 浙能电力校招笔试题目及答案
- 北师大版四年级数学下册认识方程练习题
- 中国心力衰竭诊断和治疗指南2024解读(完整版)
- 混凝土职业技能竞赛备赛试题库500题(含答案)
- DL∕T 673-2015 火力发电厂水处理用001×7强酸性阳离子交换树脂报废标准
- 阀门投标文件(技术标)
- (高清版)TDT 1056-2019 县级国土资源调查生产成本定额
评论
0/150
提交评论