第1章软件测试概述精.ppt

上传人:石*** 文档编号:50956193 上传时间:2022-10-17 格式:PPT 页数:58 大小:8.09MB
返回 下载 相关 举报
第1章软件测试概述精.ppt_第1页
第1页 / 共58页
第1章软件测试概述精.ppt_第2页
第2页 / 共58页
点击查看更多>>
资源描述

《第1章软件测试概述精.ppt》由会员分享,可在线阅读,更多相关《第1章软件测试概述精.ppt(58页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第1章软件测试概述第1页,本讲稿共58页第1章 软件测试基础 1.1软件测试背景1.2 软件测试基础理论1.3软件开发过程1.4软件测试过程1.5软件质量保证概要1.6软件测试职业 第2页,本讲稿共58页1.1软件测试背景1.1.1软件缺陷与故障案例 软件缺陷的定义软件缺陷的特征1.1.2软件缺陷产生的原因第3页,本讲稿共58页1.1.1软件缺陷与故障 案例1.美国迪斯尼公司的狮子王游戏软件BUG2.火星登陆事故3.跨世纪”千年虫”问题4.其他一些例子第4页,本讲稿共58页1.1.1软件缺陷与故障软件缺陷的定义(符合下列规则的叫软件缺陷):软件未达到产品说明书的功能软件出现了产品说明书指明不会

2、出现的错误软件功能超出产品说明书指明范围软件未达到产品说明书虽未指出但应达到的目标软件测试员认为难以理解、不易使用、运行速度缓慢、或者最终用户认为不好第5页,本讲稿共58页1.1.1软件缺陷与故障软件缺陷的特征1.软件的特殊性决定了缺陷不易看到,即”看不到”;2.发现了缺陷,但不易找到问题发生的原因所在,即”看到但是抓不到”。第6页,本讲稿共58页1.1.2软件缺陷产生的原因软件缺陷产生的原因第7页,本讲稿共58页1.2 软件测试基础理论1.2.1软件测试的定义1.2.2软件测试的基本理论1.2.3软件测试和缺陷修复的代价1.2.4软件测试技术概要第8页,本讲稿共58页1.2.1软件测试的定义

3、软件测试的定义:几个观点:测试是为了证明程序有错,而不是证明程序无错误;一个好的测试用例是在于它能发现至今未发现的错误;一个成功的测试是发现了至今未发现的错误的测试。第9页,本讲稿共58页1.2.1软件测试的定义软件测试的定义:狭义定义:程序测试是为了发现错误而执行程序的过程。广义定义:将测试延伸到需求评审、设计审查活动中去,这种延伸后的软件测试,被认为是一种软件测试的广义概念。第10页,本讲稿共58页1.2.1软件测试的定义 软件测试的定义为:软件测试是贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程,其目的是尽快尽早地发现在软件产品中所存在的各种问题与用户需求

4、、预先定义的不一致性。第11页,本讲稿共58页1.2.2软件测试的基本理论1.软件测试的目的2.软件测试的原则3.测试在开发各阶段的作用第12页,本讲稿共58页软件测试的目的发现软件缺陷发现软件缺陷,尽可能早一些发现软件缺陷,尽可能早一些,并确保其得以修复第13页,本讲稿共58页软件测试的原则应当把“尽早和不断地测试”作为测试者的座右铭。程序员应该避免检查自己的程序,测试工作应该由独立的专业的软件测试机构来完成。设计测试用例时,应该考虑到合法的输入和不合法的输入,以及各种边界条件,特殊情况下要制造极端状态和意外状态,比如网络异常中断、电源断电等情况。一定要注意测试中的错误集中发生现象,这和程序

5、员的编程水平和习惯有很大的关系。第14页,本讲稿共58页对测试错误结果一定要有一个确认的过程。一般有A测试出来的错误,一定要有一个B来确认,严重的错误可以召开评审会进行讨论和分析。制定严格的测试计划,并把测试时间安排得尽量宽松,不要希望在极短的时间内完成一个高水平的测试。回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多错误出现的现象并不少见。妥善保存一切测试过程文档,意义是不言而喻的,测试的重现性往往要靠测试文档。软件测试的原则第15页,本讲稿共58页测试在开发各阶段的作用项目规划阶段:负责从单元测试到系统测试的整个测试阶段的监控。需求分析阶段:确定测试需求分析、系统测试计划的制定

6、、评审后成为管理项目。详细设计和概要设计阶段:确保集成测试计划和单元测试计划完成。编码阶段:由开发人员进行自己负责部分的测试代码。在项目较大时,由专人进行编码阶段的测试任务。测试阶段:依据测试代码进行测试,并提交相应的测试状态报告和测试结束报告。第16页,本讲稿共58页软件测试和缺陷修复的代价第17页,本讲稿共58页1.2.4软件测试技术概要1.软件测试策略2.软件测试技术第18页,本讲稿共58页1.2.4软件测试技术概要1.软件测试策略 软件测试策略就是测试将按照什么样的思路和方式进行。通常,软件测试要经过单元测试、集成测试、确认测试、系统测试和验收测试。第19页,本讲稿共58页1.2.4软

7、件测试技术概要2.软件测试技术 按照软件测试用例的设计方法而论,软件测试可分为白盒测试法和黑盒测试法;按照软件测试是否执行程序而论,软件测试又可以分为静态测试和动态测试;按照软件设计方法是否采用面向对象设计技术而论,软件测试又可以分为传统测试方法和面向对象测试方法;按照网络环境下C/S应用结构的特定环境而论,软件测试又有其相应的方法。这些都是软件测试具体的测试方法。第20页,本讲稿共58页1.3软件开发过程1.3.1软件产品的组成1.3.2软件开发项目组1.3.3软件开发模式第21页,本讲稿共58页1.3.1软件产品的组成1.软件产品需要多少投入产品审查来自上一版的反馈客户调查易用性数据产品说

8、明书进度测试计划设计文档竞争对手情况观察和感受说明书第22页,本讲稿共58页2.客户需求产品开发小组必须摸清客户所需用调查问卷的形式搜集详细信息反馈软件的以前版本竞争产品信息(同领域产品)杂志评论(媒体)焦点人群的意见1.3.1软件产品的组成第23页,本讲稿共58页1.3.1软件产品的组成3.产品说明对客户要求的研究结果是原始资料,无法描述要做的产品,只是确定哪些要做,哪些不要做,以及客户要求的功能.产品说明书综合上述信息和一些没有提出但必须实现的要求,真正地定义产品是什么、有哪些功能、外观如何产品说明书是“锁定”的第24页,本讲稿共58页1.3.1软件产品的组成4.设计文档常用的设计文档包括

9、如下:构架数据流示意图状态变化示意图流程图注释代码第25页,本讲稿共58页1.3.1软件产品的组成5.测试文档一般的测试文档包括如下:测试计划测试用例设计软件测试报告归纳、统计和总结第26页,本讲稿共58页1.3.1软件产品的组成6.开发进度(Gantt图)系统最终交付日期已经确定,软件开发部门必须在规定期限内完成系统最终交付日期只确定了大致的年限,最后交付日期由软件开发部门确定Gantt图中横坐标表示时间,纵坐标表示任务,图中的水平线段表示对一个任务的进度安排,线段的起点和钟点对应在横坐标上的时间分别表示该任务的开始时间和结束时间,线段的长度表示完成该任务所需的时间。第27页,本讲稿共58页

10、1.3.1软件产品的组成帮助文件用户手册样本和示例产品支持信息图表和标志错误信息广告与宣传材料产品支持信息软件的安装软件说明文件 测试错误提示信息7.其他组成部分第28页,本讲稿共58页1.3.2软件开发项目组1.项目管理员。由他们全程负责整个软件开发项目,通常负责编写产品说明书、管理进度、进行重大决策。2.设计师或系统工程师。他们的角色是担任软件小组的技术专家,需要具有丰富的经验,可以胜任设计整个系统构架或软件构思。3.程序员。由他们负责设计、编写并修复软件中的缺陷。他们与项目管理员和设计师密切合作生产软件,然后与项目管理和测试员密切合作修复软件缺陷。4.软件测试员。我们负责找出并报告软件产

11、品的问题,与小组全部成员在开发过程中密切合作,进行测试并报告发现的问题。5.技术作者、用户助手、用户培训专员、手册编写人员或者文案专员。由他们来负责编制软件产品附带的文件和联机文档。第29页,本讲稿共58页1.3.3软件开发基本过程第30页,本讲稿共58页1.3.3软件开发基本过程需求分析需求分析:根据客户的要求,清楚了解客户需求中的产品功能、特性、性能、界面和具体规格等,然后进行分析,确定软件产品所能达到的目标。设计设计:根据需求分析的结果,考虑如何在逻辑、程序上去实现所定义的产品功能、特性等,可以分为概要设计和详细设计,也可分为数据结构设计、软件体系结构设计、应用接口设计、模块设计、界面设

12、计等。编程编程:将设计转换成计算机可读的形式。测试测试:对设计、编程进行验证和用户需求确认的过程维护:维护:维持软件运行,修改软件缺陷、增强已有功能、增加新功能、升级等。第31页,本讲稿共58页1.3.4软件开发模式1.瀑布模型2.原型模型3.快速应用开发(RAD)模型4.改进的V模型5.螺旋模型6.增量模型和迭代模型7.构件组装模型8.并发模型9.XP模型第32页,本讲稿共58页瀑布模型 整个开发包括六个阶段:计整个开发包括六个阶段:计划、需求分析、设计、编码、划、需求分析、设计、编码、测试、运行维护。六个阶段测试、运行维护。六个阶段自上而下、相互衔接,以固自上而下、相互衔接,以固定的次序来

13、进行。定的次序来进行。特点特点 阶段的顺序性和依赖性阶段的顺序性和依赖性 推迟实现的观点推迟实现的观点 质量保证质量保证 存在问题存在问题 不适合需求模糊的系统不适合需求模糊的系统第33页,本讲稿共58页原型模型先建立一个能反映用先建立一个能反映用户需求的原型系统,户需求的原型系统,使得用户和开发者可使得用户和开发者可以对目标系统的概貌以对目标系统的概貌进行评价和判断,然进行评价和判断,然后对原型进行反复的后对原型进行反复的扩充、改进和求精,扩充、改进和求精,最终建立符合用户需最终建立符合用户需求的目标系统求的目标系统特点:快速开发工具、特点:快速开发工具、循环、低成本循环、低成本种类:种类:

14、渐进型、抛弃渐进型、抛弃型型需求的采集和细化快速设计建造原型用户评价原型加工原型产品样品开始停止第34页,本讲稿共58页快速应用开发(RAD)V模型第35页,本讲稿共58页RAD-V Model(改进)第36页,本讲稿共58页customer,user,PM,technical supportDesign/AnalysisVerify/testingVerification of system designValidation of Customer RequirementsEngineersTest ObjectivesTest PlanningTest DesignTest Executi

15、on(Static)Test Execution(Dynamic)Operational or Business NeedsDefine RequirementsDesign SystemBuild SystemRAD-V Model(进一步丰富)第37页,本讲稿共58页螺旋模型螺旋模型将瀑布模螺旋模型将瀑布模型和快速原型模型型和快速原型模型结合起来,并且加结合起来,并且加入了两种模型均忽入了两种模型均忽略的风险分析。略的风险分析。螺旋模型的每一周螺旋模型的每一周期都包括制定计划、期都包括制定计划、风险分析、实施工风险分析、实施工程和评审四个阶段。程和评审四个阶段。第38页,本讲稿共58页阶段

16、开发模型第39页,本讲稿共58页增量和迭代模型增量开发增量开发迭代开发迭代开发 增量模型中,在每个阶增量模型中,在每个阶段都生成软件的一个可段都生成软件的一个可发布版本。这些阶段是发布版本。这些阶段是交错进行的。交错进行的。在增量模型中,软件版在增量模型中,软件版本是逐步完善的。本是逐步完善的。在原型中,每个阶段是在原型中,每个阶段是发布一个原型,而在增发布一个原型,而在增量模型中,是完成一个量模型中,是完成一个正式的版本。正式的版本。第40页,本讲稿共58页1.4 软件测试过程软件测试过程是一种抽象的模型,用于定义软件测试的流程和方法。测试过程的质量将直接影响测试结果的准确性和有效性。软件测

17、试过程遵循软件工程原理,遵循管理学原理。第41页,本讲稿共58页1.4 软件测试过程1.4.1软件测试过程模型1.4.2测试过程管理理念1.4.3测试过程管理实践1.4.4测试过程可持续改进第42页,本讲稿共58页1.4.1软件测试过程模型图1-4 软件测试V模型第43页,本讲稿共58页1.4.1软件测试过程模型图1-5 软件测试W模型第44页,本讲稿共58页1.4.1软件测试过程模型图1-6 软件测试H模型第45页,本讲稿共58页1.4.2测试过程管理理念尽早测试全面测试全过程测试独立的、迭代的测试第46页,本讲稿共58页1.4.3 测试过程管理实践策划测试过程把握需求变更控制测试度量第47

18、页,本讲稿共58页1.4.4测试过程可持续改进 测试技术发展到今天,已经存在诸多可供参考的测试过程管理思想和理念。但信息技术发展一日千里,新技术不断涌现,这就注定测试过程也需要不断的改进。第48页,本讲稿共58页1.5 软件质量保证与软件测试的关系软件质量保证(SQA)是建立一套有计划,有系统的方法,来向管理层保证拟定出的标准、步骤、实践和方法能够正确地被所有项目所采用。软件测试流程包括项目计划检查、测试计划创建、测试设计、执行测试、更新测试文档和测试评估;SQA的活动可总结为协调度量、风险管理、文档检查、促进协助流程改进、监察测试工作。第49页,本讲稿共58页1.5 软件质量保证与软件测试的

19、关系软件质量保证和软件质量控制之间的界限越来越模糊了 软件测试是SQA中的重要手段,SQA的主要功能在软件测试中得到体现,集中在静态测试中,两者的关系越来越紧密第50页,本讲稿共58页1.6软件测试工程师的素质(1)技术能力;这一点不必多说,作为一名测试工程师,不能仅仅从使用者的角度来测试软件产品,而且还要从技术的角度来设计测试用例,这里所说的技术包括基础的与专业的,基础方面我想应需要学习过以下的课程:软件技术基础、C语言、面向对象设计、C、数据库理论、计算机网络技术、软件工程、数据结构与算法、离散数学等;专业方面应掌握:软件测试技术概论、测试管理、测试工具、软件质量管理、CMM、RUP等等。

20、第51页,本讲稿共58页(2)具有一定的编程经验;测试工程师有时候需要对源码进行检查,有时候也会从程序结构的角度来测试软件,有时候需要写一些自动测试的工具软件,有时候需要写测试脚本,显而易见,会写简单代码,能读懂源码对测试人员来说是必须的,而且如果有一定的编程经验,可以帮助你对软件开发过程有较深入的理解,从编程人员的角度来正确地评价。第52页,本讲稿共58页(3)沟通能力;测试人员需要与很多人员进行沟通,项目经理、开发人员、客户、市场人员等都是测试人员经常吵架的对象,而且在面对不同人员,你需要不同的语气、不同的态度,与客户要谈得来,处处为客户着想,客户就是上帝,与上帝说话要和颜悦色,与开发人员

21、交往就需要技巧了,测试人员与开发人员往往是不共戴天的,双方在心理上经常较劲,因此在说话的语气或讲述一个问题的出发点时特别要注意了。第53页,本讲稿共58页(4)要有严谨、敢于承担责任、稳重的做事风格;思惟严密,什么问题都要考虑到,当然除了做事认真仔细,也要有承担责任的勇气,在漫长的项目实施过程中,或大或小的错误在所难免,我们可以原谅错误,但不喜欢狡辩,要敢于承认错误。第54页,本讲稿共58页(5)具有怀疑与破坏的精神;测试人员不能总是以常规的思路来测试软件,要设计一些非常规的、相反的测试用例来不断地折磨软件产品,要破坏性地测试,并且不要停止你的怀疑。第55页,本讲稿共58页(6)善于自我总结、

22、自我督促;应该说软件测试是一种即繁琐又枯燥无味的工作,做多了你会觉得似乎一成不变,对自已的能力没有提高,这时候就需要你作自我督促,并经常作一些阶段性的总结,新的技术新的方法新的工具层出不穷,要让自已跟上技术发展的脚步,善于将新技术新方法新工具应用到测试工作当中。第56页,本讲稿共58页 要成为一名优秀的测试工程师,首先对计算机的基本知识要有很好的了解,精通一门或多门的编程语言,具备一定的程序调试技能,掌握测试工具的开发和使用技术。同时要比较细心,会按照任务的轻重缓急来安排自己的工作,要有很好的沟通能力。此外,还要善于用非常规的方式思考问题,尽可能多的参加软件测试项目,在实践中学习技能,积累经验,不断分析和总结软件开发过程中可能出错的环节。第57页,本讲稿共58页Q&A第58页,本讲稿共58页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com