您好,欢迎访问三七文档
ITEducation&Training2020/2/11软件测试概述软件外包教研室ITEducation&Trainingxiangr@neusoft.com第1章软件测试基础1.1软件测试背景1.2软件测试基础理论1.3软件开发过程1.4软件测试过程1.5软件质量保证概要1.6软件测试职业ITEducation&Trainingxiangr@neusoft.com1.1软件测试背景1.1.1软件缺陷与故障•案例•软件缺陷的定义•软件缺陷的特征1.1.2软件缺陷产生的原因ITEducation&Trainingxiangr@neusoft.com1.1.1软件缺陷与故障•案例1.美国迪斯尼公司的狮子王游戏软件BUG2.火星登陆事故3.跨世纪”千年虫”问题4.其他一些例子ITEducation&Trainingxiangr@neusoft.com1.1.1软件缺陷与故障•软件缺陷的定义(符合下列规则的叫软件缺陷):1.软件未达到产品说明书的功能2.软件出现了产品说明书指明不会出现的错误3.软件功能超出产品说明书指明范围4.软件未达到产品说明书虽未指出但应达到的目标5.软件测试员认为难以理解、不易使用、运行速度缓慢、或者最终用户认为不好ITEducation&Trainingxiangr@neusoft.com1.1.1软件缺陷与故障•软件缺陷的特征1.软件的特殊性决定了缺陷不易看到,即”看不到”;2.发现了缺陷,但不易找到问题发生的原因所在,即”看到但是抓不到”。ITEducation&Trainingxiangr@neusoft.com1.1.2软件缺陷产生的原因•软件缺陷产生的原因编制说明书55%设计26%其他4%编写代码15%编制说明书设计编写代码其他ITEducation&Trainingxiangr@neusoft.com1.2软件测试基础理论1.2.1软件测试的定义1.2.2软件测试的基本理论1.2.3软件测试和缺陷修复的代价1.2.4软件测试技术概要ITEducation&Trainingxiangr@neusoft.com1.2.1软件测试的定义•软件测试的定义:几个观点:测试是为了证明程序有错,而不是证明程序无错误;一个好的测试用例是在于它能发现至今未发现的错误;一个成功的测试是发现了至今未发现的错误的测试。ITEducation&Trainingxiangr@neusoft.com1.2.1软件测试的定义•软件测试的定义:狭义定义:程序测试是为了发现错误而执行程序的过程。广义定义:将测试延伸到需求评审、设计审查活动中去,这种延伸后的软件测试,被认为是一种软件测试的广义概念。ITEducation&Trainingxiangr@neusoft.com1.2.1软件测试的定义软件测试的定义为:软件测试是贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程,其目的是尽快尽早地发现在软件产品中所存在的各种问题——与用户需求、预先定义的不一致性。ITEducation&Trainingxiangr@neusoft.com1.2.2软件测试的基本理论1.软件测试的目的2.软件测试的原则3.测试在开发各阶段的作用ITEducation&Trainingxiangr@neusoft.com软件测试的目的•发现软件缺陷•发现软件缺陷,尽可能早一些•发现软件缺陷,尽可能早一些,并确保其得以修复ITEducation&Trainingxiangr@neusoft.com软件测试的原则①应当把“尽早和不断地测试”作为测试者的座右铭。②程序员应该避免检查自己的程序,测试工作应该由独立的专业的软件测试机构来完成。③设计测试用例时,应该考虑到合法的输入和不合法的输入,以及各种边界条件,特殊情况下要制造极端状态和意外状态,比如网络异常中断、电源断电等情况。④一定要注意测试中的错误集中发生现象,这和程序员的编程水平和习惯有很大的关系。ITEducation&Trainingxiangr@neusoft.com⑤对测试错误结果一定要有一个确认的过程。一般有A测试出来的错误,一定要有一个B来确认,严重的错误可以召开评审会进行讨论和分析。⑥制定严格的测试计划,并把测试时间安排得尽量宽松,不要希望在极短的时间内完成一个高水平的测试。⑦回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多错误出现的现象并不少见。⑧妥善保存一切测试过程文档,意义是不言而喻的,测试的重现性往往要靠测试文档。软件测试的原则ITEducation&Trainingxiangr@neusoft.com测试在开发各阶段的作用①项目规划阶段:负责从单元测试到系统测试的整个测试阶段的监控。②需求分析阶段:确定测试需求分析、系统测试计划的制定、评审后成为管理项目。③详细设计和概要设计阶段:确保集成测试计划和单元测试计划完成。④编码阶段:由开发人员进行自己负责部分的测试代码。在项目较大时,由专人进行编码阶段的测试任务。⑤测试阶段:依据测试代码进行测试,并提交相应的测试状态报告和测试结束报告。ITEducation&Trainingxiangr@neusoft.com软件测试和缺陷修复的代价1101001,000编制说明书设计编写代码测试发布软件修复费用ITEducation&Trainingxiangr@neusoft.com1.2.4软件测试技术概要1.软件测试策略2.软件测试技术ITEducation&Trainingxiangr@neusoft.com1.2.4软件测试技术概要1.软件测试策略软件测试策略就是测试将按照什么样的思路和方式进行。通常,软件测试要经过单元测试、集成测试、确认测试、系统测试和验收测试。ITEducation&Trainingxiangr@neusoft.com1.2.4软件测试技术概要2.软件测试技术按照软件测试用例的设计方法而论,软件测试可分为白盒测试法和黑盒测试法;按照软件测试是否执行程序而论,软件测试又可以分为静态测试和动态测试;按照软件设计方法是否采用面向对象设计技术而论,软件测试又可以分为传统测试方法和面向对象测试方法;按照网络环境下C/S应用结构的特定环境而论,软件测试又有其相应的方法。这些都是软件测试具体的测试方法。ITEducation&Trainingxiangr@neusoft.com1.3软件开发过程1.3.1软件产品的组成1.3.2软件开发项目组1.3.3软件开发模式ITEducation&Trainingxiangr@neusoft.com1.3.1软件产品的组成1.软件产品需要多少投入产品审查来自上一版的反馈客户调查易用性数据产品说明书进度测试计划设计文档竞争对手情况观察和感受说明书ITEducation&Trainingxiangr@neusoft.com2.客户需求①产品开发小组必须摸清客户所需②用调查问卷的形式搜集详细信息③反馈软件的以前版本④竞争产品信息(同领域产品)⑤杂志评论(媒体)⑥焦点人群的意见1.3.1软件产品的组成ITEducation&Trainingxiangr@neusoft.com1.3.1软件产品的组成3.产品说明①对客户要求的研究结果是原始资料,无法描述要做的产品,只是确定哪些要做,哪些不要做,以及客户要求的功能.②产品说明书综合上述信息和一些没有提出但必须实现的要求,真正地定义产品是什么、有哪些功能、外观如何③产品说明书是“锁定”的ITEducation&Trainingxiangr@neusoft.com1.3.1软件产品的组成4.设计文档常用的设计文档包括如下:①构架②数据流示意图③状态变化示意图④流程图⑤注释代码ITEducation&Trainingxiangr@neusoft.com1.3.1软件产品的组成5.测试文档一般的测试文档包括如下:①测试计划②测试用例设计③软件测试报告④归纳、统计和总结ITEducation&Trainingxiangr@neusoft.com1.3.1软件产品的组成6.开发进度(Gantt图)①系统最终交付日期已经确定,软件开发部门必须在规定期限内完成②系统最终交付日期只确定了大致的年限,最后交付日期由软件开发部门确定③Gantt图中横坐标表示时间,纵坐标表示任务,图中的水平线段表示对一个任务的进度安排,线段的起点和钟点对应在横坐标上的时间分别表示该任务的开始时间和结束时间,线段的长度表示完成该任务所需的时间。ITEducation&Trainingxiangr@neusoft.com1.3.1软件产品的组成①帮助文件②用户手册③样本和示例④产品支持信息⑤图表和标志⑥错误信息⑦广告与宣传材料产品支持信息⑧软件的安装⑨软件说明文件⑩测试错误提示信息7.其他组成部分ITEducation&Trainingxiangr@neusoft.com1.3.2软件开发项目组1.项目管理员。由他们全程负责整个软件开发项目,通常负责编写产品说明书、管理进度、进行重大决策。2.设计师或系统工程师。他们的角色是担任软件小组的技术专家,需要具有丰富的经验,可以胜任设计整个系统构架或软件构思。3.程序员。由他们负责设计、编写并修复软件中的缺陷。他们与项目管理员和设计师密切合作生产软件,然后与项目管理和测试员密切合作修复软件缺陷。4.软件测试员。我们负责找出并报告软件产品的问题,与小组全部成员在开发过程中密切合作,进行测试并报告发现的问题。5.技术作者、用户助手、用户培训专员、手册编写人员或者文案专员。由他们来负责编制软件产品附带的文件和联机文档。ITEducation&Trainingxiangr@neusoft.com1.3.3软件开发基本过程ITEducation&Trainingxiangr@neusoft.com1.3.3软件开发基本过程①需求分析:根据客户的要求,清楚了解客户需求中的产品功能、特性、性能、界面和具体规格等,然后进行分析,确定软件产品所能达到的目标。②设计:根据需求分析的结果,考虑如何在逻辑、程序上去实现所定义的产品功能、特性等,可以分为概要设计和详细设计,也可分为数据结构设计、软件体系结构设计、应用接口设计、模块设计、界面设计等。③编程:将设计转换成计算机可读的形式。④测试:对设计、编程进行验证和用户需求确认的过程⑤维护:维持软件运行,修改软件缺陷、增强已有功能、增加新功能、升级等。ITEducation&Trainingxiangr@neusoft.com1.3.4软件开发模式1.瀑布模型2.原型模型3.快速应用开发(RAD)模型4.改进的V模型5.螺旋模型6.增量模型和迭代模型7.构件组装模型8.并发模型9.XP模型ITEducation&Trainingxiangr@neusoft.com瀑布模型•整个开发包括六个阶段:计划、需求分析、设计、编码、测试、运行维护。六个阶段自上而下、相互衔接,以固定的次序来进行。•特点阶段的顺序性和依赖性推迟实现的观点质量保证•存在问题不适合需求模糊的系统ITEducation&Trainingxiangr@neusoft.com原型模型•先建立一个能反映用户需求的原型系统,使得用户和开发者可以对目标系统的概貌进行评价和判断,然后对原型进行反复的扩充、改进和求精,最终建立符合用户需求的目标系统•特点:快速开发工具、循环、低成本•种类:渐进型、抛弃型需求的采集和细化快速设计建造原型用户评价原型加工原型产品样品开始停止ITEducation&Trainingxiangr@neusoft.com快速应用开发(RAD)–V模型ITEducation&Trainingxiangr@neusoft.comRAD-VModel(改进)ITEducation&Trainingxiangr@neusoft.comProcessofDevelopmentandTesting(V_Model)System/SoftwareDesignSystemTestFeatureTestDetailDe
本文标题:软件测试概述-东软
链接地址:https://www.777doc.com/doc-3650959 .html