软件测试-课程笔记

上传人:奇异 文档编号:449711856 上传时间:2024-04-12 格式:PDF 页数:181 大小:22.76MB
返回 下载 相关 举报
软件测试-课程笔记_第1页
第1页 / 共181页
软件测试-课程笔记_第2页
第2页 / 共181页
软件测试-课程笔记_第3页
第3页 / 共181页
软件测试-课程笔记_第4页
第4页 / 共181页
软件测试-课程笔记_第5页
第5页 / 共181页
点击查看更多>>
资源描述

《软件测试-课程笔记》由会员分享,可在线阅读,更多相关《软件测试-课程笔记(181页珍藏版)》请在金锄头文库上搜索。

1、软件测试-课程笔记.第1章软件测试概述软件测试的背景软件的缺陷及其影响什么是软件缺陷 软件缺陷就是软件产品中所存在的问题,最终表现为用户所需要的功能没有完全实现,不能满足或不能全部满足用户的需求。从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、误差等各种问题。从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。软件缺陷的类型:(1)软件未实现产品说明书要求的功能。(2)软件出现了产品说明书不应该出现的错误。(3)软件实现了产品说明书未提到的功能。(4)软件未实现产品说明书虽未明确提及但应该实现的功能。(5)软件难以理解、不易使用、运行缓慢从测试员的角度看最终用户会认为不好。

2、存在软件缺陷的案例及影响(1)千年虫问题(产生约1974年)(2)爱国者导弹防御系统(1991年)(3)英特尔奔腾浮点除法缺陷(1994年)(4)冲击波 病毒(2003年)(5)诺基亚手机平台缺陷(2008年)软件测试的产生与发展软件测试的产生 软件缺陷产生的主要原因:(1)需求解释有错误;(2)用户定义错误;(3)需求记录错误;(4)设计说明错误;(5)编码说明有误;(6)程序代码有误;(7)其他有误,如:数据输入等。软件测试的发展(1)初级阶段(1957-1971年)(2)发展阶段(1972-1982年)(3)成熟阶段(1983年至今)修复软件缺陷的成本 软件开发过程是使用软件工程的方法,

3、在整个过程中,都有可能出现各种各样的软件缺陷。随着开发时间的推移,软件缺陷修复成本呈倍数的增长。假如早在进行分析时发现相关功能缺失,立即补上就可了,可以说付出的代价小得几乎忽略不计.如果在发布时发现缺失某个功能,那么此时加上一个功能,相当于重新开发一样,这时的修补费用可以说高许多。因此要尽早进行测试。软件测试的基本概念软件测试的定义软件测试专家GJ.Myers早在1979年给软件测试下定义软件测试是为了发现错误而针对某个程序或系统的执行过程。GJ.Myers给出与测试相关的三个要点(1)测试是为了证明程序有错,而不是证明程序无错误;(2)一个好的测试用例是在于它能发现至今未发现的错误;(3)一

4、个成功的测试是发现了至今未发现的错误的测试。1990年,IEEE再次给出软件测试的定义(1)在特定的条件下运行系统或构件,观察或记录结果,对系统的某个方面做出评价;(2)分析某个软件项以发现现存的和要求的条件之差别并评价此软件项的特性。软件测试用例软件测试用例定义 IEEE标准610(1990)给出的定义:测试用例是一组测试输入、执行条件和预期结果的集合,目的是要满足一个特定的目标,比如执行一条特定的程序路径或检验是否符合一个特定的需求。测试用例的元素软件测试设计的关键问题可以概括为5W1H Why为什么测试?对功能、性能、可用性、容错性、安全性等测试,检验是否符合相关要求。W hat测什么?

5、测试的对象可以是文档,代 码,图表等。W here在哪里测?测试用例的环境,包括系统的硬件、软件和网络环境等。W hen什么时候测?测试用例所需的前提条件,尽早开始。W hich什么数据?测试用例设计的各种数据。How如何执行?结果怎样?要据测试用例设计的步骤来执行,最后进行结果比较,确定是否一致。若一致才能通过测试。测试用例设计的基本原则从两个层次考虑测试用例(1)低层次从单个测试用例看,衡量其描述的规范性、可理解性及可维护性条等(2)高层次以满足某一个测试目标或测试任务来衡量一组测试用例的结构、设计思路和覆盖率等;测试用例的基本原则(1)代表性测试用例能代表并覆盖各种合法的或不合法、边界内

6、的或越界的以及极限的输入数据、操作和环境的设置。(2)可判定性测试执行的结果的正确性是可以判定的。每一个测试用例都应有相应的预期结果。(3)可再现性对于同样的测试用例,系统执行的结果应当相同的,并且相同的测试的执行过程可以反复操作。测试用例模板表1-1测试用例模板表1-2 XX测试安装用例项目名称程序版本测试环境硬件:软件:编制人编制时间功能模块名功能特性测试目的预置条件参考信息特殊规程说明用例编号输入数据执行步骤预期结果测试结果12编号测试内容安装测试是否通过1执行典型安装:执行安装步骤,按功能测试方法确认功能正确,包括各种控件、回车键、Tab键、快捷键、错误提示信息等2执行自定义安装:执行

7、安装步骤,按功能测试方法确认功能正确,包括各种控件、回车键、Tab键、快捷键、错误提示信息等。选择与典型安装不同的安装路径和功能组件3执行网络安装:执行安装步骤,按功能测试方法确认功能正确,包括各种控件、回车键、Tab键、快捷键、错误提示信息等4取消或关闭安装过程,程序没有安装,检查注册表、安装路径中是否存在程序的任何信息5按界面和易用性测试规则,检查安装中的所有界面6按文档测试规则,检查安装中的所有文档(帮助、许可协议等)7突然中断安装过程(网络安装还要考虑网络中断)8安装过程中介质处于忙碌状态软件测试环境什么是测试环境软件测试环境就是软件测试运行的平台。包括系统的硬件、软件和网络等。可以用

8、一公式来表示测试环境=硬件+软件+网络+数据测试环境的搭建和维护(1)机房环境的建立(2)硬件环境的建立(3)软件环境的建立(4)网络环境的建立(5)安全措施的实施软件测试人员的要求软件测试人员的角色与职责测试人员的角色主要有四类(1)测试经理主要负责测试队伍的内部管理以及与外部人员、客户的交流工作,包括进度管理、风险管理、资金管理、人力资源管理、交流管理等。还有测试计划书的编写、测试总结报告的归纳等。必须具有项目经理的知识和技能。(2)测试设计师主要根据软件开发各阶段产生的设计文档来设计各阶段的测试用例。(3)测试文档审核师主要负责前置测试,包括对各个阶段的分析与设计文档进行审核,如:需求说

9、明书、概要与详细设计说明书等。(4)测试工程师对测试设计师设计的测试用例分阶段完成测试工作。软件测试人员的基本素质要求 基本素质要求如下:(1)具备计算机软件测试的基本理论知识(2)熟悉开发工野口平台(3)掌握测试工具的使用(4)善于学习,理解与归纳(5)耐心、细致、工作态度好.第2章软件开发过程与软件测试软件开发过程概述软件开发的阶段、活动及角色软件工程的阶段软件工程的三个阶段:定义阶段可行性研究初步项目计划、需求分析图示图2-1软件工程的定义阶段开发阶段概要设计、详细设计、实现、测试图示图2-2软件工程的开发阶段检验交付与维护阶段运行、维护、废弃图示图2-3软件工程的检验交付与维护阶段软件

10、开发过程的活动通常包括四种基本过程活动:(1)软件规格说明规定软件的功能、性能及其运行限制。(2)软件开发产生满足规格说明的软件,包括设计与编码等工作。(3)软件确认确认软件能够满足客户提出的要求,对应于软件测试。(4)软件演进为满足客户的变更要求,软件必须在使用过程中演进,以求尽量延长软件的生命周期。开发过程中的角色(1)项目经理负责管理业务应用开发和系统开发项目。(2)业务分析人员理螭口描绘客户的要求,引导用 协调用户和业务需求的收集和确认,并使文档化。(3)架构师 负责理解系统的业务需求,并创建合理、完善的系统体系架构。并决定相关技术的选择。(4)数据设计人员负责定义详细的数据库设计。(

11、5)程序员设计、编写程序代码及内部设计规格说明。(6)测试人员负责制定测试计划,并根据计划进行相关测试,找出产品中的问题。(7)产品经理负责产品的交付和发布,以及销售产品。(8)技术支持代表负责处理客户的投诉,以及售后服务问题。软件开发的过程模型线性III页序模型(1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量;(2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发的风险;(3)早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果。图示图2-4线性顺序模型原型模型 原型模型从需求收集开始,开发者与用户在一起定义软件的总体目标

12、,标识出已知的需求,并规划出进一步定义的区域,然后快速地设计并进行编码实现,建立好原型。在原型模型的基础上,运行、评估、修 改,多次迭代进行,直到满足用户的需求为止。图示听取用户意见建造/修改原型用户测试运行原型图2-5原型模型快速开发模型采 用RAD模型时,系统的每一个主要功能部件都可由一个单独的RAD工作组完成,最后将所有的部件集成起来构成完整的软件。RAD模型强调可复用程序构件的开发,并支持多小组并行工作。但若一个系统很难模块 时,构件的复用和建造会出现许多问题,不适用于技术风险高、采用新技术的项目。图示第三小组业务建模n第一小蛆业务建模第二小组业 务 _,建 模 F数据建模口数据建模口

13、处 理 建 模 I数据建模处理 _.建模 J应用生成处理建模应用生成测试反复应用 _.生成测试反复测试反复今6090天图2-6快速开发模型演化软件过程模型增量模型将线性模型与原型模型结合起来,随着日程/时间的进展而交错析线性序列集合 图示增量序列开发日程增量_ I分 析I l设 计I 1编 码I_ I测 试I J发 布I增量三|分 析|乂设计编 码|-3测 试|T 发布图2-7增量模型螺旋模型 也是将线性模型与原型模型结合起来,并加入风险分析 螺旋模型被划分为若干框架活动:用户通信、计划、风险分析、工程、建造及发布、用户评估等。螺旋模型适应于计算机软件产品的整个生命周期。对于大型系统的开发是一

14、种模型方法。图示图2-8螺旋模型软件测试与软件开发的关系.软件测试在软件开发过程中占有重要的地位,在传统的瀑布模型中,软件测试只成为其阶段性的一段工作一进行代码的测试.而现代软件工程思想将软件测试认为是贯穿整个软件生命周期,并且是保证软件质量的重要手段之一。有些研究数据显示,在国外软件开发的工作量中,软件测试的工作量占有总工作量的40%左 右;软件开发的总费用中软件测试占有30%-50%o对于一些高科技开发系统,软件测试占有的时间和费用可能更多更高。软件测试的基本原则 1、测试不是为了证明系统的正确性,而是为了证明系统存在缺陷;2、所有的测试都应该追溯到用户的需求;3、测试应当尽早开始和不断进

15、行;4、穷举测试是不可能的;5、第三方测试会更客观、更有效;6、Pareto原则应用于软件测试;7、软件测试是有风险的行为;但并非所有的测试都要修复;8、测试应从小规模开始,逐步转向大规模;9、软件测试是一项讲究条理的技术专业。软件测试方法的分类静态测试与动态测试静态测试 静态测试,是不需要执行被测软件,而是采用分析和查看的方式,来发现软件当中的缺陷,包括需求文档、源代码、设计文档、以及其他与软件相关文档中的二义性和错误。最好由未参加代码编写的个人或小组来完成。测试小组还能够使用一个或多个静态测试工具,以源程序代码作为输入,产生大量的在测试过程有用的数据。图示图2-9静态测试的要素 静态测试常

16、用的方法(1)走查走查是个非正式的过程,检查所有与源程序代码相关的文档。(2)审查审查比走查要求更加正规。(3)静态代码分析工具静态结构分析主要是以图形的方式表现程序的内部结构动态测试 动态测试是指通过运行实际被测试软件,通过观察程序运行时所表现的状态、行为等来发现软件的缺陷。并对被测程序的运行情况进行分析对比,以便发嵋序表现的行为与设计规格或客户需求不一致的地方。动态测试一般包括功能确认与接口测试,覆盖率分析、性能分析、内存分析等。动态测试是一种经常运行的测试技术。但也有它的局限性:必须要借助测试用例完成;需要搭建特定的测试环境;不能发现文档中的问题。由于动态测试与静态测试之间存在一定的协同性,又具有相对的独立性。所以在程序执行前进行静态测试,尽可能多地发现代码中隐含的缺陷;执行动态测试检查程序实时的行为,发现程序在运行时存在的缺陷。黑盒测试与白盒测试黑盒测试黑盒测试又称功能测试或数据驱动测试;是将被测试软件看做一个黑盒子,完全不考虑程序的内部结构和处理过程,只考虑系统的输入和输出,在程序的接口进行测试,检查系统功能是否符合需求规格说明书的要求。常用的测试方法等价类划分、边界值法、决

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号