当前位置:文档之家› 第1章 软件测试概论01

第1章 软件测试概论01


第1 章 软件测试概述
随着计算机技术的飞速发展,计算机系统的规模和复 杂性急剧增加,其软件开发成本以及由于软件故障而造成
的经济损失也正在增加,软件质量问题已成为人们共同关
注的焦点。软件测试是对软件需求分析、设计规格说明和 编码的最终复审,是软件质量保证的关键步骤。 随着软件系统规模和复杂性的增加,进行专业化高效软 件测试的要求越来越严格,软件测试职业的价值逐步得到 了认可,软件测试技术已作为一门新兴产业而快速发展起 来了。
2) 软件测试的目标(续)
“ 测试的目的是说明程序正确地执行它应有 的功能”也是错误的。 例:程序 Triangle ,输入三个整数,表示一 个三角形的三个边长,该程序产生一个结果 ,指出该三角形是等边三角形、等腰三角形 还是不等边三角形。 为说明其能正确执行它的功能,可使用“ 测试用例”(3,4,5),(5,5,6),(6,6,6), 程序都能给出正确结果,是否就可认为程序 是正确的?
集成测试环境由两部分组成,一个底层的测试用例,直接用
来测试产品的各项功能;另一部分是调用这些测试用例,并 将其集成到一起的程序,这个就是测试驱动。 所谓驱动,就是驱动测试用例,使之协同工作。 测试驱动开发(Test-Driven Development, TDD) ,敏捷开 发中的一项核心实践和技术,也是一种设计方法论。 TDD原理是在开发功能代码之前,先编写单元测试用例 代码,测试代码确定了需要编写什么产品代码。 TDD基本思路就是通过测试来推动整个开发的进行,但 测试驱动开发并不只是单纯的测试工作,而是把需求分 析、设大
型IT企业均表现出对成熟软件测试人才的期盼,而微软、三 星、西门子、思科、华为3COM等多家国内外IT巨头则相继在 全国各大高校招兵买马,并把软件测试人才的招聘放在了突 出的位臵。国内软件测试人才紧缺的现状已经凸现出来。
1.3 软件测试人员要求
理解以下的描述
测试能提高软件的质量,但是提高质量不能依赖测试; 测试只能证明错误存在,不能证明错误不存在; 测试的主要困难是不知道该如何进行有效地测试,也不
知道什么时候能够放心的结束测试; 每个程序员都应当测试自己的程序(份内事),但不能 作为程序已通过测试的依据(所以项目需要独立的测试 人员); 80-20原则:80%的错误聚集在20%的模块中,经常出错 的模块改错后还是会经常出错; 测试应当循序渐进,不要企图一次性做完。"欲速则不达 "。
现故障引起系统失效的可能性也逐渐增加。由于计算机硬件技术 的进步,元器件可靠性的提高,硬件设计和验证技术的成熟,硬
件故障相对显得次要了,软件故障正逐渐成为导致计算机系统失
效和停机的主要因素。
1.2
软件测试的发展历程和现状
近年来,几乎所有的软件企业均存在不同程度的测试人才缺
口,软件测试工程师已成为了亟待补充的关键技术工种之一。
软件开发中测试人员与开发人员的比例 国内:1:9---1:15 微软公司:1.5:1 Borland公司:1:1 公司里测试部门的组织结构 小公司 无独立的测试部门,常在项目组中配1—3名测试人员 大公司 设测试部门,测试经理根据项目的需要把测试人员派往不同的项 目组进行项目的测试和质量监督 测试工程师在项目质量上对项目经理负责,在工作任务完成后向 测试经理汇报,称双线领导 专业外包公司 软件外包(Software Outsourcing):指一些软件公司出于节 省成本或优势互补等原因,将其项目中的测试、部分编码或设计 等工作委派给第三方公司来完成 测试经理、测试组长、测试工程师(一个项目组分多个测试小组)

测试人员的目标和主要工作
软件测试人员应该至少具备以下两个关键领域方面的
知识:
1)软件测试技术; 2)被测应用程序及其相关应用领域知识。
ห้องสมุดไป่ตู้
目标: 1)基本目标是发现软件错误; 2)要尽可能早的找出软件错误; 3)必需确保找出的软件错误得以关闭; 4)依据事实对软件做出评价。 主要工作: 1)规划测试任务 2)设计测试(包括编写测试用例等等) 3)建立一个合适的测试环境 4)评估、获取、安装和配臵自动测试工具 5)执行测试 6)撰写适当的测试文档
1.3 软件测试人员要求
1.4 软件测试人员职业发展方向
1.1 软件测试的目的和意义
随着对计算机需求和依赖的与日俱增,计算机系统的规模
和复杂性急剧增加,使得计算机软件的数量以惊人的速度
急剧膨胀。与此同时,计算机出现故障引起系统失效的可
能性也逐渐增加。由于计算机硬件技术的进步,元器件可 靠性的提高,硬件设计和验证技术的成熟,硬件故障相对 显得次要了,软件故障正逐渐成为导致计算机系统失效和 停机的主要因素。
7.至少会使用一种测试工具。
8.能够读懂代码。 9.至少会使用一种数据库。常见的oracle等。
测试工程师职业素质
基本素质 广泛的经验:工作经验 交流技巧:表达能力、问题描述能力、会提问、会寻求正确的帮助 逻辑思维能力 团队协作能力 组织技能:处理日常事务的能力和处理突发事件的能力 态度:需要理解和采取适当的态度去做软件测试 专业素质 基础知识:了解软件工程、操作系统、数据库和网络 把握需求能力 测试流程熟习程序 测试方案:测试方案的分析设计能力、测试案例的设计能力、测试 案例的覆盖率/优先级、回归测试案例的选取等 测试工具的使用:测试管理和测试执行工具使用能力,开发工具的 能力 测试管理能力 软件测试工程师要掌握的知识:技术、测试技巧/方法、测试计划、 执行测试计划、测试分析报告与改进
软件测试工具简介 一般软件测试工具分为黑盒测试工具、白盒测试工具、测试
管理工具
MI loadrunner——性能测试 MI winrunner——功能测试 MI testdirector——测试管理工具 MI QTP——功能测试工具
第1章 软件测试概述
1.1 软件测试的目的和意义 1.2 软件测试的发展历程和现状
课堂问题1
在典型的软件开发项目中,软件测试工作量常占
软件开发总工作量的40%以上 在软件开发的成本中,用在测试上的开销要占 30%到50% 软件开发的首要问题不是技术问题而是管理问题
程序测试
(java、c#、c++)
软件测试 测试 硬件测试 文档测试
(需求规格说明书、软件设计说明书)
的语句覆盖、分支覆盖、路径覆盖等)
1)不断学习充电 2)阅读原版书籍 3)阅读缺陷管理系统中的缺陷报告 4)阅读高手写的测试用例
5)学习产品相关的业务知识
1.3 软件测试人员要求
基本素质要求
1.细心、对缺陷的洞察力。
2.耐心和执着。
3.信心。 4.服务意识。 5.团队合作意识。 6.沟通能力。
X
Y
P
Z
“程序测试是证明程序正确地执行了预期的功
能”。实际上,一个程序不仅要完成它所需完
成的功能,而且不应完成它不该做的事。如不
能把边长为0、0、0的三条边判断为等边三角形。
1) 软件开发成本
软件产品最大的成本是检测软件错误、 修正软件错误的成本。
在整个软件开发中:
测试工作量≥50%
2) 软件测试的目标

1.3 软件测试人员要求

一个合格的测试工程师,你具备了哪些?
1、熟悉新产品、接受新事物的能力——快速的学习能力 2、良好的沟通能力 3、扎实的技术功底 4、充足的自信心
5、博闻强记的能力
6、承受重复性操作的耐心——细致认真的工作态度 7、对一个Bug的责任心——高度的责任心 8、充沛的精力
测试 测试是为了发现错误,不能证明程序正确。一般来说, 单元测试可由程序员自己完成,而综合测试通常由测试小组 来完成。 根据这个测试目的,应该排除对测试的错误观点,设计合适 的测试用例,用尽可能少的测试用例,来发现尽可能多的软 件错误。
有关软件测试的错误观点
“软件测试是为了证明程序是正确的,即测 试能发现程序中所有的错误”。事实上这是不可 能的。要通过测试发现程序中的所有错误,就要 穷举所有可能的输入数据。 例:程序P有两个整型输入量 X、Y,输出量 为Z,在32位机上运行。所有的测试数据组(Xi, Yi)的数目为:232×232= 264,1毫秒执行1次, 共需5亿年。
<现在软件的主流>
类别 小型 中型 大型
参与人数 10人以下 10—100人 100人以上
开发时间 1—4个月 1年以下 1年以上
一个可靠的软件系统应该是正确、完整、一致和健壮的,也
是软件用户所期望的。 软件错误分类

功能错(需求分析错误) 软件结构错 数据错 编码错 软件集成错 测试定义与测试执行错误
(1)预防错误: 几乎不可实现 (2)发现错误: 软件测试目的
找错
2) 软件测试的目标(续)
把证明程序无错当作测试目的不仅是不正 确的 , 完全做不到的,而且对做好测试没有 任何益处,甚至是十分有害的。 软件测试要设法使软件发生故障,暴露软件 错误
测试的“成功”与“失败”: 能够发现错误的测试是成功的测试,否则 是失败的测试。
软件分类
1)按功能分: 系统软件(OS、硬件驱动程序) 应用软件(Office、QQ) 2)按技术架构分: 单机版软件(Office、画图工具) C/S结构软件(客户端Client/服务器端Server,QQ、MSN) B/S结构软件(浏览器Browser/服务器Server,WEB项目) 3)按用户分: 产品软件:目标用户是大众用户(win 8) 项目软件:目标用户是具体用户 4)按开发的规模分:
简称:三心二意一能力。
1.3 软件测试人员要求
基本技术要求 1.了解软件测试基本概念。定义、目的、原则、对象、
相关主题