1、,主讲: 严丽平E-mail: ,软件测试技术,2,有一个带广告图案的纸杯,请对它设计出尽可能多的测试用例。,测试项目: UI:容器的形状、体积等能被称作杯子吗?是的话那杯子的颜色、材质、形状等符合要求吗?杯子上面的广告有没有错别字、恶心、反动、色情内容等,图案是否清晰、赏心悦目?广告的位置正确吗?并详细检查是否和说明书一致。 功能性:拿起来正悬和倒悬杯底都不会掉落吧?用水杯装水漏水吗?水能不能被喝到? 安全性:杯子材质本身、杯身上有没有毒或细菌?杯内空气细菌含量合格吗? 容错性:空杯子及装有不同容量水的杯子从不同高度落下的损坏程度如何?,3,可移植性:杯子在不同的地方、不同温度等环境下是否都
2、可以正常使用? 兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等? 易用性:杯子是否烫手、是否有防滑措施、是否方便饮用? 疲劳测试:将杯子(一)盛上水放24小时检查泄漏时间和情况;(二)盛上硫酸放24小时检查泄漏时间和情况 压力测试:用根针从杯子内部扎杯底并在针上面不断加重量,压强多大时会穿透杯底? 文档测试:主要是user manual吧,user manual是否对杯子的用法、限制、使用条件等有详细描述?,4,期望结果:请查阅SRS、行标、国标以及国际标准。,输入和执行过程:主要应用了场景法、等价类划分法、边界值法、因果图法、错误推测法等测试策略,具体输入和执行过程略。,5,机遇和挑战并存
3、,Test Engineer QA/Supervisor Project/Quality Manager,目前国内软件业的弱点正是发展的前沿,6,21世纪什么最贵软件测试工程师,软件测试工程师,目前IT行业极端短缺的金贵人才,未来5年IT行业最炙手可热的高薪职位。中国软件业每年新增约20万测试岗位就业机会,而企业、学校培养出的测试人才却不足需求量的1/10,这种测试人才需求与供给间的差距仍在拉大。软件测试产品质量的保证软件测试控制成本的关键软件测试软件可靠性确认软件测试让企业具备国际竞争的实力,7,人力市场的测试人员位置,8,课程目标,参考资料,学习要求,主要内容,9,课程目标,通过本课程的学
4、习,我们了解并掌握:有效的测试策略、方法和技术测试计划和测试用例的设计测试自动化的引入、应用测试团队的建立和测试项目的管理更清楚、准确地报告测试缺陷对软件产品质量的正确评估软件测试和质量保证的关系和区别 ,10,课程目标,参考资料,学习要求,主要内容,11,参考文献,1、软件测试(第2版)机械工业出版社(美)Ron Patton 张小松 王钰 等译,12,参考文献(2),2、软件测试实战测试Web MSN科学出版社 北京科海电子出版社 蔡为东 著,13,参考文献(3),3、软件测试(原书第2版)机械工业出版社(美)Paul C.Jorgensen 韩轲 杜旭涛 译,14,参考文献(4),4、软
5、件测试方法和技术清华大学出版社 朱少民 编著,15,参考文献(5),4、软件测试技术中国水利水电出版社 曲朝阳 编著,16,参考网站, 软件测试网 软件测试时代,17,课程目标,参考资料,学习要求,主要内容,18,课程学时分配与要求,考核方式:考试 总学时:48学时 讲 课:36学时 上 机:12学时(6次上机),考核方式:考查 总学时:48学时 讲 课:40学时 上 机:8学时(4次上机) 课程设计(第20周),19,考核方式:考试 期末考试:70% 平时成绩:30%其中:考勤(20% )上机(30% ) 作业(30% )网上学习(20%),成绩考核,20,考核方式:考查 总评成绩考勤(1
6、0% )上机(20% ) 作业(20% ) 网上学习(10% ) 期末测验(40% ),成绩考核,21,课程目标,参考资料,学习要求,主要内容,22,主要内容,全书共五部分,分十一章软件测试概述 软件测试方法 软件测试阶段 软件测试实践 自动化测试,23,第1章 软件测试的基本概念,本章重点 什么是软件和软件测试 什么是软件缺陷 什么是测试用例 什么是测试环境,24,1.1 引子:4W1H问题,What :什么是软件测试 Which:对哪些进行测试 Who:谁负责测试 When:何时开始,何时结束测试 How:怎么测试,25,1.2 软件与软件测试,软件的定义 软件 = 程序 + 数据库 +
7、文档 + 服务,程序表示能够完成预定功能和性能的指令集合,数据(库)是依照某种数据模型组织起来并存放在二级存储器中的数据集合,文档指软件在开发、使用和维护过程中产生的文字与图形的集合,通过提供必要的手段和方法,满足接受服务对象需求的过程,26,1.2 软件与软件测试,软件的特点 软件是硬件的灵魂,硬件是软件的基础 软件是智慧和知识的结晶 软件的核心是人 软件不会“磨损”,27,软件开发过程,需求分析设计编程测试维护,对用户提出的要求进行分析并给出详细的定义;编写软件需求说明书或系统功能说明书及初步的系统用户手册;提交管理机构评审。,把各项需求转换成软件的体系结构; 对每个模块要完成的工作进行具
8、体的描述,为源程序编写打下基础;编写设计说明书,提交评审。,把软件设计转换成计算机可以接受的程序代码。,对设计、编程进行验证和用户需求确认的过程。,维持软件运行,修改软件缺陷、增强已有功能、增加新功能、升级等。,28,1.2 软件与软件测试,软件的分类 按功能分类 按技术架构分类 按用户分类 按开发规模分类,29,1.2 软件与软件测试,软件测试的错误定义 是证明软件中不存在错误的过程 是确信程序做了它应该做的事情 是为找出错误而运行程序或系统的过程,30,1.2 软件与软件测试,软件测试的标准定义IEEE1983 是使用人工和自动手段来运行或测试某个系统的过程,目的在于检验其是否满足规定的需
9、要或是弄清楚预期结果与实际结果之间的差别。,31,1.2 软件与软件测试,软件测试的重要性 寻找软件错误,以进行修正 验证软件是否符合要求 证明软件符合要求,是可用的 指导软件的开发过程 提供软件的相关特征,32,1.3 软件缺陷,典型案例 辽宁福彩漏洞 “熊猫烧香”病毒 赛门铁克“误杀门”事件 放射性设备治疗事故 昔日显卡老大终没落 英特尔奔腾芯片缺陷,33,悲剧,34,35,Bug,36,StoryBug来源,故事发生在1945年9月的一天,一个炎热的下午,机房是一间第一次世界大战时建造的老建筑,没有空调,所有窗户都敞开着。Hopper正领着她的研究小组夜以继日地工作,研制一台称为“MAR
10、K II”的计算机,它使用了大量的继电器(电子机械装置,那时还没有使用晶体管),一台不是纯粹的电子计算机。突然,MARK II死机了。研究人员试了很多次还是启动不来,然后就开始用各种方法找问题,看问题究竟出现在哪里,最后定位到板子F第70号继电器出错。Hopper观察这个出错的继电器,惊奇地发现一只飞蛾躺在中间,已经被继电器打死。她小心地用摄子将蛾子夹出来,用透明胶布帖到“事件记录本”中,并注明“第一个发现虫子的实例”,然后计算机又恢复了正常。从此以后,人们将计算机错误戏称为臭虫(Bug),而把找寻错误的工作称为“找臭虫”(Debug)。Grace Hopper的事件记录本,连同那个飞蛾,现在
11、都陈列在美国历史博物馆中。,37,38,1.3 软件缺陷,软件缺陷的典型定义 Bug是未曾预料到的系统行为 Bug是程序与规格说明之间的不匹配,39,1.3 软件缺陷,软件缺陷的标准定义IEEE1983 从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题。 从产品外部看,软件缺陷是系统所需实现的某种功能的失效或违背。,40,1.3 软件缺陷,软件缺陷的定义正式定义 软件未达到需求规格说明书中指明的功能 软件出现了需求规格说明书中指明不会出现的错误 软件功能超出需求规格说明书中指明的范围 软件未达到需求规格说明书中虽未指出但应达到的目标 软件测试员认为软件难以理解、不易
12、使用、运行速度缓慢,或者最终用户认为不好,41,1.3 软件缺陷,软件缺陷的定义 案例实践一:NextDate的第一次测试,42,1.3 软件缺陷,软件缺陷的来源 软件本身的复杂性 开发人员的问题 需求的变化 进度压力 对文档不重视 沟通不畅 偏差的累积,43,1.3 软件缺陷,软件缺陷的修复成本 几乎呈指数级增长,44,1.4 测试用例,测试用例的定义IEEE1990 是一组测试输入、执行条件和预期结果,目的是要满足一个特定的目标,比如执行一条特定的程序路径或检验是否符合一个特定的需求。,45,1.4 测试用例,测试用例的定义 核心:测试内容(测试需求)输入信息(操作步骤+输入数据) 难点:
13、如何通过少量测试数据来有效揭示软件缺陷,测试用例 = 输入 + 输出 + 测试环境,46,1.4 测试用例,测试用例的重要性 技术层面 指导测试的实施 规划测试数据的准备 编写测试脚本的“设计规格说明书” 降低工作强度 管理层面 团队交流 重复测试 检验测试员进度 质量评估 分析缺陷的标准,47,1.4 测试用例,测试用例的评价标准 有效性 经济性 可仿效性 可修改性 独立性 可跟踪性,48,1.4 测试用例,测试用例设计的基本原则 测试用例的代表性 正常数据 边界数据 错误数据 测试结果的可判定性 测试结果的可再现性,49,1.4 测试用例,测试用例设计的基本原则 案例实践二:NextDat
14、e的第二次测试,50,1.4 测试用例,测试需求 是指在一定的测试策略前提下,对应于验证某个系统的业务需求或功能需求的测试要求。,51,1.4 测试用例,测试需求的内容 确定测什么 测试对软件产品的要求 测试需求的分类 验证业务过程的流程类测试需求 验证功能点的功能性测试需求,52,1.5 测试环境,测试环境的定义 测试环境 = 硬件 + 软件 + 网络 + 历史数据,测试所必须的硬件设备构成的环境,被测软件运行时所需的软件构成环境,针对C/S和B/S架构的软件,测试用例执行所需初始化的各项数据,53,1.5 测试环境,测试环境的重要性 加快测试进度 准确重现缺陷 提高工作效率和软件质量,54,1.5 测试环境,良好测试环境的要素 好的测试模型 多样化的系统配置 熟练使用工具的测试员,55,1.5 测试环境,测试环境的规划 明确8个问题 整理成检查表,并为每个问题指定责任人 若时间或其他条件允许,还需要做好应急预案,56,1.5 测试环境,测试环境的维护和管理 设置测试环境管理员 明确测试环境管理所需的文档 管理测试环境的访问权限 管理测试环境的变更 备份和恢复测试环境,