软件质量保证与测试 第2讲 软件测试的基本概念和方法

Slides:



Advertisements
Similar presentations
迪士尼公主裙衫变化记. 《白雪公主和七个小孩人》 《白雪公主和七个小矮人》,是世界电影史上第一部长动 画片,也是迪士尼的第一部。《白雪公主》不仅为迪斯尼 带来了第一尊奥斯卡小人,更是拯救迪斯尼于水火的贵 人 —— 在经济大萧条的 1937 年的美国,《白雪公主》为迪 斯尼赚到了 850 万美元,这约等于现在的数亿美元!
Advertisements

演講人:黃曉雯. 2 CMMI 介紹 CMMI 模式 CMMI 通過評鑑組織單位 CMMI 架構 CMMI 導入益處 CMMI 應用 3.
1-1 第八章 創造優質產出:生產與作業管理. 1-2 參考資料 企業管理:全球導向的運作 鄭紹成/著 前程 企業概論 吳淑華 / 編譯 華泰書局 R.J., Ebert and R.W., Griffin, “Business Essentials” , 5th Ed., Prentice-Hall.
微软的秘诀 -- 软件开发中的测试管理 李丹软件测试工程师视窗数字媒体事业部 Microsoft Corporation.
第九章 提升生產力及品質 授課老師 譚彩鳳.
e-Business── BPR流程模式和企業再造 (Business Process Reengineering)
Chapter 1 品質管理概論.
方案設計與評估.
拓 展 培 训 师 基础教程.
软件工程实践 软件学院 高海昌 作业提交 课件下载
Chapter 7 產品、服務與品牌: 建立顧客價值.
第四章 創業的策略.
医药市场营销学 Medical Marketing 湖北中医学院.
生產與作業管理小組報告 第七章:品質經營 指導教授:盧淵源 教授 小組成員: M 蕭妃伶 M 陳珮甄
第七章 医疗质量管理 海尔的质量意识 奔驰的质量意识 反例:秦池酒 《泰坦尼克号》的沉没.
何謂專案管理? 美國專案管理學會 專案管理就是「為達成或超出利害關係人的需求或期望,把種種知識、技能、工具、技術應用在專案活動上,…,其牽涉到相互競爭的範疇,時間、成本、品質,以及利害關係人各種不同需求和期望之間的平衡」
04 顧客知覺價值、顧客關係與忠誠度.
第9章 系統建置.
Chapter 7 服務品質、服務失誤與服務補救.
第 1 章 醫院之組織與功能 作者:邱文達.
第 5 章 软件项目需求管理.
物聯網安全 物聯網的應用安全開發生命週期與需求管理.
软件质量保证与测试 第4讲 软件测试依据和规范
國立東華大學財經法律研究所 副教授兼所長 陳彥良
珍惜时间 提高效率 初二1班
CDIO工程教育理念下的 人才一体化培养体系探索 信息科学技术学院 吴丽华 2013年10月29日.
上 海 漫 索 计 算 机 科 技 有 限 公 司 软件外包与采购管理 —— 从社会分工合作、资源共享中获益 林 锐 博士
A B.
医学寄生虫总论 (二).
Thinking of Instrumentation Survivability Under Severe Accident
ISO 9001條文簡介 ( 2000年版) ISO9001訓練教材之二 顧問師 林弘炤.
软件工程 Software Engineering
Excellence in Manufacturing 卓 越 制 造
Failure Mode and Effects Analysis 失效模式與效應分析
軟體原型 (Software Prototyping)
Topic 06 行銷資訊系統的開發方法.
ISO9001: 2008版简介 CG品保部 ISO9001 品质,始于教育;终于教育 2018/11/14 CG QA.
需求擷取.
醫 療 品 質 與 指 標 管 理 前言 醫療事業----服務業 醫療服務----臨床服務,醫療團隊,醫療專業,
單元3:軟體設計 3-2 順序圖(Sequence Diagrams)
1 Maturity Mechanics and Model Elements成熟度机理和模型的元素
「資訊安全國家標準草案之研擬」計畫 之 軟體處理評估分項計畫 主講者:吳林全 先生
製程能力分析 何正斌 教授 國立屏東科技大學工業管理學系.
鄭晉昌 (國立中央大學人資所教授) 林文政 (國立中央大學人資所副教授)
品質管理系統 華南品規課 鴻准精密模具有限公司 2018/12/6.
IT基础设施运营管理服务 – 定义、实现、展示
Maturity Mechanics and Model for Large-Scale Construction Project Management 大型建设工程项目管理成熟度机理 及其模型 贾广社.
Chap 3 軟體品質規劃.
第 11 章 品質管理 授課教師:__________ 工業工程與管理概論 陳潭,洪堯勳,姚銘忠,黃欽印 著 前程文化出版.
第八章 軟體品質與軟體度量.
教材編號:A308 「專案管理基礎知識與應用實務」第八章 專案執行 PMA「專案助理/技術士」課程 A206-1.
13 組織變革管理. 13 組織變革管理 瞭解組織變革的基本概念 瞭解組織變革的過程 瞭解變革抗拒原因與排除方法 瞭解組織變革的機制與作法 瞭解常見的策略性變革類型與推動方式 瞭解如何建立創新的組織 組織理論與管理 Chapter 13 組織變革管理.
Agile Software Development
運用能力成熟度模型改善企業網站開發之績效 ─以某中小企業為例
Chap 4 軟體品質保證.
第 1部分 软件测试概述.
品質管理 授課教師:○○○老師.
專案管理 第七章 品質管理 楊富堯.
梁文新 办公室:综合楼108 电 话: 软件工程导论 梁文新 办公室:综合楼108 电 话:
第二章 資訊系統開發模式.
ISO9004 质量管理体系 业绩改进指南 宣贯培训 ——杭州北航企业管理服务有限公司
软件项目的配置管理 2019/5/1.
The viewpoint (culture) [观点(文化)]
第四讲 项目方法选择 1.
领导结构 含义 正式结构 非正式结构.
B、資訊系統開發方法論 系統開發生命週期法 雛型開發法 合作需求規劃與合作應用設計 使用者自建系統 資訊系統的委外與租用 套裝軟體的引進
全面品質管理 主講人:楊長林 輔仁大學企業管理學系.
品質管制之基本概念 1.1 品質之定義與意涵 1.2 品質觀念之迷思 1.3 品質特性 1.4 品質管制之意義 1.5 品質管制之演進
Chap 2 軟體品質管理的基本觀念.
Scenario Design. Scenario Design Scenario Design 1. 小梗、小明、小昌、小裕、小耀是俄文系的學生。 在一次的出遊中,在路上看到一個驚為天人的白俄羅斯美女,五個人的男性賀爾蒙瞬間被激發到一個頂點,心跳飆到180,口水直流。 但是這時五個人你推我我推你就是沒人敢過去搭訕要電話,這時候小梗拿出他的「哀鳳手機.
Presentation transcript:

软件质量保证与测试 第2讲 软件测试的基本概念和方法 软件质量保证与测试 第2讲 软件测试的基本概念和方法

软件测试的基本概念和方法 1 软件质量就是客户的满意度 2 软件缺陷(Bug)是什么 3 软件测试的基本方法 4 软件测试的分类和阶段 5 软件测试的工作范畴

软件质量的内涵 软件质量是客户满意度的体现 客户 + 质 + 量?

质量 (Quality) 质量是系统、部件或过程满足 明确需求 客户或用户需要或期望的程度不同 软件质量:软件产品具有满足 质量是系统、部件或过程满足  明确需求 客户或用户需要或期望的程度不同 IEEE <<Standard Glossary of Software Engineering Terminology>> 软件质量:软件产品具有满足 规定的或隐含要求能力要求有 关的特征与特征总和(ISO 8492)  软件质量:软件产品满足 使用要求的程度

软件质量范围- 3A Accountability (可说明性) – 用户可以基于产品或服务的描述和定义进行使用. (例如: 市场需求说明书, 功能设计说明书.) Availability (有效性) – 产品或服务对于99.999% 客户总是有效的 (例如: 性能测试和恢复测试) Accessibility (易用性) – 对于用户, 产品或服务非常容易使用并且一定是非常有用的功能 . (例如: 确认测试和用户可用性测试)

高质量的软件 “客户”广义定义 : 内在的定义 : 下一个环节/工序的接收者,更广的服务的对象,周围有任何联系或影响的团队、人。 应该是相对的无产品缺陷(Bug Free)或只有极少量的缺陷, 它能够准时递交给用户并且所用的费用都是在预算内的并且满足客户需求,是可维护的。但是, 有关质量的好坏最终评价依赖于用户的反馈。 “客户”广义定义 : 内在的定义 : 下一个环节/工序的接收者,更广的服务的对象,周围有任何联系或影响的团队、人。 软件的设计者,程序的检测者,项目管理者,品质管理人员 … - 广泛的定义 : 最终用户,客户管理,

软件质量不同的视点 先验论观点:质量是产品一种可以认识但不可定义的性质 制造者的观点:质量是产品性能和规格要求的符合度 用户观点:质量是产品满足使用目的之程度; 制造者的观点:质量是产品性能和规格要求的符合度 产品观点:质量是联结产品固有性能的纽带; 基于价值观点:质量依赖于顾客愿意付给产品报酬的数量

高质量软件标准体系 产品质量 过程质量: 在商业过程中有关的质量内容: 是人们实践产物的属性和行为,是可以认识,可以科学地描述的。并且可以通过一些方法和人类活动,来改进质量. 质量模型: McCall 模型, Boehm 模型, ISO 9126 模型 过程质量: 软件能力成熟度模型 CMM ( Capability Maturity Model). 国际标准过程模型 ISO 9000 软件过程改进和能力决断 SPICE ( Software Process Improvement and Capability dEtermination) 在商业过程中有关的质量内容: 培训、成品制作、宣传、发布日起、客户、风险、成本、业务等

产品质量的标准 - 功能性 Functionality - 可用性 Usability (简单安装; 轻松使用; 友好界面) - 可靠性 Reliability (用户使用的根本) - 性能 Performance - 容量 Capacity - 可测量性 Scalability - 可维护性 Service manageability - 兼容性 Compatibility - 可扩展性 Extensibility

软件质量特征 ( ISO9126) 功能:与一组功能及其指定性质有关的一组属性,这里的功能是满足明确或隐含的需求的那些功能。 可靠:在规定的一段时间和条件下,与软件维持其性能水平的能力有关的一组属性。 易用:由一组规定或潜在的用户为使用软件所需作的努力和所作的评价有关的一组属性。 效率:与在规定条件下软件的性能水平与所使用资源量之间关系有关的一组属性。 可维护:与进行指定的修改所需的努力有关的一组属性。 可移植:与软件从一个环境转移到另一个环境的能力有关的一组属性。 其中每一个质量特征都分别与若干子特征相对应。

Boehm软件质量模型 正确性 可靠性 效率 完整性 可用性 可维护性 可测试性 灵活性 可移植性 重复性 互用性 阐述性 连贯性 容错性 执行效率/储存效率 存取控制/存取检查 可训练 沟通良好 简单性 易操作的 工具 自我操作性 扩展性 一般性 模块性 软件系统独立性 机器独立性 通讯公开性 可操作性 阐述性 互用性 数据公开性

McCall模型 可移植性 可靠性 效率 可测试性 可维护性 易更改 易用性 总体 效用 易懂性 人体工程学 设备独立性 模块独立性 精确性 总体 效用 易用性 可维护性 可测试性 人体工程学 可移植性 易懂性 精确性 完整性 完全性 可说明性 设备功效 易操作性 沟通良好 自我操作性 架构性 简明性 模块独立性 连续性

软件过程质量 软件能力成熟度模型 CMM ( Capability Maturity Model). 国际标准过程模型 ISO 9000 软件过程改进和能力决断 SPICE ( Software Process Improvement and Capability dEtermination)

质量保证的策略 主要分三个阶段: 以检测为重:产品制成之后进行检测,只能判断产品质量,不能提高产品质量。 以过程管理为重:把质量的保证工作重点放在过程管理上,对制造过程 中的每一道工序都要进行质量控制。 以新产品开发为重:在新产品的开发设计阶段,采取强有力的措施来消灭由于设计原因而产生的质量隐患。

全面质量管理 (TQM) TQM = Total Quality Management 全面质量管理 全员参与质量管理 全过程质量管理。 TQM的4个关键要素: 关注客户 过程改进 质量的人性化因素 度量(即模型的测量和分析)

质量管理发展五个阶段 1900 1920 1931 1960 2000 手工操作者 专职检验员 过程统计技术 全面质量管理 以顾客为中心 阶 时间 2000

任何程序、系统中的问题,和产品设计书的不一致性,不能满足用户的需求 2.2 软件缺陷(Bug)是什么 Any problem/disfigurement/limitation in product design & development Feature or function can’t work Unreasonable design Partly realization in function Data error Run error Limitation in features Difference between actual results and expected results Unfriendly UI, Low performance Others 任何程序、系统中的问题,和产品设计书的不一致性,不能满足用户的需求 什么是 Bug?

问题出在哪里? 项目没有被很好地理解;计划不周,最终导致进度拖延。 没有充分的文档资料。 人与人的交流比写程序困难得多。 软件可靠性缺少度量的标准,质量无法保证。 软件难以维护、不易升级。

解决问题的想法 Better management 管理 Different team organizations 组织 Better languages & tools 语言和工具 Uniform coding conventions 编程惯例 必须意识到:“软件” ≠ 编程,它有自己的生命周期 (life cycle)。大型软件系统的开发与其它工程项目如建造桥梁、制造飞机、轮船等的开发是同理的。

软件测试 实践证明:对软件进行充分的测试 才能够有效的保证软件质量 对软件产品进行充分测试,找出其中的缺陷(Bug),并进行修复(Fix)。

缺陷 - Bug 缺点(defect) 偏差 (variance) 谬误(fault) 失败 (failure) 问题(problem) 矛盾(inconsistency) 错误(error ) 毛病 (incident ) 异常(anomy)

软件缺陷 IEEE (1983) 729 软件缺陷一个标准的定义: 软件缺陷的主要类型/现象: 从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题; 从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。 软件缺陷的主要类型/现象: 功能、特性没有实现或部分实现 设计不合理,存在缺陷 实际结果和预期结果不一致 运行出错,包括运行中断、系统崩溃、界面混乱 数据结果不正确、精度不够 用户不能接受的其他问题,如存取时间过长、界面不美观

软件缺陷的产生 技术问题 算法错误,语法错误,计算和精度问题,接口参数传递不匹配 团队工作 误解、沟通不充分 软件本身 文档错误、用户使用场合(user scenario), 时间上不协调、或不一致性所带来的问题 系统的自我恢复或数据的异地备份、灾难性恢复等问题

软件缺陷构成

软件缺陷在不同阶段的分布 在真正的程序测试之前,通过审查、评审会可以发现更多的缺陷。 规格说明书的缺陷会在需求分析审查、设计、编码、测试等过程中会逐步发现,而不能在需求分析一个阶段发现

缺陷成本

软件测试是质量控制的重要手段,保证客户拿到或用户使用高质量的软件产品 2.3软件测试的基本方法 根据G.J. Myers观点--软件测试的目: 软件测试是为了发现错误而执行程序的过程 一个好的测试能够在第一时间发现程序中存在的错误 一个好的测试是发现了至今尚未发现的错误的测试。 软件测试是质量控制的重要手段,保证客户拿到或用户使用高质量的软件产品

软件测试误区 误区一:如果发布出去的软件有质量问题,都是软件测试人员的错 误区二:软件测试技术要求不高,至少比编程容易多了 误区三:有时间就多测试一些,来不及就少测试一些 误区四:软件测试是测试人员的事,与开发人员无关 误区五:根据软件开发瀑布模型,软件测试是开发后期的一个阶段

软件测试的原则 所有测试的标准都是建立在用户需求之上。 软件测试必须基于“质量第一”的思想去开展各项工作,当时间和质量冲突时,时间要服从质量。 事先定义好产品的质量标准,只有有了质量标准,才能根据测试的结果,对产品的质量进行分析和评估。 软件项目一启动,软件测试也就是开始,而不是等程序写完,才开始进行测试。 穷举测试是不可能的。甚至一个大小适度的程序,其路径排列的数量也非常大,因此,在测试中不可能运行路径的每一种组合。

软件测试的原则 (2) 第三方进行测试会更客观,更有效。 软件测试计划是做好软件测试工作的前提。 测试用例是设计出来的,不是写出来的,所以要根据测试的目的,采用相应的方法去设计测试用例,从而提高测试的效率,更多地发现错误,提高程序的可靠性。 对发现错误较多的程序段,应进行更深入的测试。一般来说,一段程序中已发现的错误数越多,其中存在的错误概率也就越大。 重视文档,妥善保存一切测试过程文档(测试计划、测试用例、测试报告等)

软件测试的原则 (3) 应当把“尽早和不断地测试”作为测试人员的座右铭 回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多错误出现的现象并不少见 测试应从“小规模”开始,逐步转向“大规模”。 不可将测试用例置之度外,排除随意性。 必须彻底检查每一个测试结果。 一定要注意测试中的错误集中发生现象,这和程序员的编程水平和习惯有很大的关系 对测试错误结果一定要有一个确认的过程。

测试方法 黑盒子和白盒子 静态的和动态的 文档、代码审查 数据输入边界条件法 等价划分、数据流程图 状态变换图 逻辑路径法

黑盒子和白盒子 结构测试 逻辑驱动测试 客户需求 事件驱动 输入 输出 功能测试 数据驱动测试

静态的和动态的 主持人 作者 记录员 列席人员 内审员 技术专业人员 用户代表 不正式 正式 互审 走读 审查会议 运行程序

自动测试和手工测试 手工模拟用户操作

验证和确认(V & V) Verification:Are we building the product right? 是否正确地构造了软件?即是否正确地做事,验证开发过程是否遵守已定义好的内容。验证产品满足规格设计说明书的一致性 Validation: Are we building the right product? 是否构造了正是用户所需要的软件?即是否正在做正确的事。验证产品所实现的功能是否满足用户的需求

2.4 软件测试的分类和阶段 开发生命周期 测试生命周期 ... 维护 需求定义 应用定义 应用开发 修订 建立 执行. 执行 测试计划 缺陷跟踪 测试开发 测试设计 评估

软件测试分类 测试阶段或层次 目标/特性 方法 单元测试 系统测试 验收测试 性能测试 强壮性测试 功能测试 白盒测试 黑盒测试 适用性测试 可靠性测试 集成测试 安全性测试

软件测试阶段 阶 段 输 入 输 出 需求分析 需求定义, 市场分析文档, 相关技术文档 市场需求分析会议记要 , 功能设计, 技术设计 输 入 输 出 需求分析 需求定义, 市场分析文档, 相关技术文档 市场需求分析会议记要 , 功能设计, 技术设计 设计审查 市场需求文档, 技术设计文档 测试计划, 测试用例 功能验证 代码完成文件包,功能详细设计说明书 最终技术文档 完整测试用例,完备的测试计划, 缺陷报告, 功能验证测试报告 系统测试 代码修改后的文件包 完整测试用例,完备的测试计划 缺陷报告 缺陷状态报告 项目阶段报告 确认测试 代码冻结文件包 确认测试用例 缺陷报告审查 版本审查 版本发布 代码发布文件包 测试计划检查清单 当前版本已知问题的清单 版本发布报告 MRD: Market Requirement Document Fns: Functional Specification

测试阶段(SDLC)

单元测试 单元测试的对象是程序系统中的最小单元---模块或组件上,在编码阶段进行,针对每个模块进行测试,主要通过白盒测试方法,从程序的内部结构出发设计测试用例,检查程序模块或组件的已实现的功能与定义的功能是否一致、以及编码中是否存在错误。多个模块可以平行地、对立地测试,通常要编写驱动模块和桩模块 单元测试一般由编程人员和测试人员共同完成

集成测试 集成测试,也称组装测试、联合测试、子系统测试,在单元测试的基础上,将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的模块之间问题 两种集成方式:一次性集成方式和增殖式集成方式。

功能测试 功能测试一般须在完成集成测试后进行,而且是针对应用系统进行测试。功能测试是基于产品功能说明书,是在已知产品所应具有的功能,从用户角度来进行功能验证,以确认每个功能是否都能正常使用

系统测试 系统测试是将软件放在整个计算机环境下,包括软硬件平台、某些支持软件、数据和人员等,在实际运行环境下进行一系列的测试,包括恢复测试、安全测试、强度测试和性能测试等

验收测试 &安装测试 验收测试的目的是向未来的用户表明系统能够像预定要求那样工作,验证软件的功能和性能如同用户所合理期待的那样 安装测试是指按照软件产品安装手册或相应的文档,在一个和用户使用该产品完全一样的环境中或相当于用户使用环境中,进行一步一步的安装操作性的测试

2.5 软件测试的工作范畴

Q & A