软件工程论文归纳
位置: 首页 >研讨体会 > 文章内容

软件工程论文归纳

2020-07-26 07:09:34 投稿作者: 点击:

 河南理工大学

 万方科技学院

  软件工程论文

 题

 目:

 软件测试

  专

 业:

 计算机科学与技术专升本

  姓

 名:

 刘轶男

 学

 号:

 1516353011

  指导老师:

 马永强

 目

 录

 摘要

  ................................ .....................

 1

  1. 绪论

  ................................ ...................

 2

 1.1 软件测试的目的

 ................................ ...................

 2

 1.2 相关背景

 ................................ ........................

 2

 1.3 软件测试过程

 ................................ ....................

 3

 1.4 软件测试团队的地位

 ................................ ...............

 3

 2. 软件测试基础

  ................................ ............

 5

  2.1 软件测试的定义

 ................................ ...................

 5

 2.2 软件测试概念

 ................................ .....................

 5

 2.3 软件测试原则

 ................................ .....................

 5

 3. 软件测试分类

  ................................ ............

 7

  3.1 白盒测试和黑盒测试

 ................................ ...............

 7

 3.2 静态测试和动态测试

 ................................ ..............

 10

 3.3 单元测试和集成测试

 ................................ ..............

 11

 3.4 其他测试方法

 ................................ ....................

 14

 4. 软件测试工具

  ................................ ............

 15

  4.1 常用的软件测试工具

 ................................ ..............

 15

 4.2 软件测试工具网站

 ................................ ................

 15

 5. 缺陷管理

  ................................ ...............

 16

  5.1 什么是 Bug?

 ................................ .....................

 16

 5.2 Bug 的分类

 ................................ ......................

 16

 5.3 缺陷报告

 ................................ ........................

 17

 6. 总结和思考

  ................................ ..............

 18

  参考文献

  ................................ .............................

 19

  1 摘

 要

 随着 IT 行业的迅速发展,计算机使用越来越普及,越来越多的领域使用了计算机,特别是一些重要领域如国防、银行、金融、通讯、航天等,他们对软件质量要求很高。同时一些重大事故的发生,也引发了人们对软件质量的关注。如 2002 年欧洲载重 10吨的阿丽亚娜 5 型火箭发射失败,最后证实是软件质量问题;还有国内的一些银行金融系统,因软件质量问题不得不暂停营业。毋庸置疑,在经历了长期的不为人知和可有可无后,软件测试目前已变的炙手可热。随着中国软件市场的发展,越来越多的国外资金投向中国软件行业。据报道,中国软件外包市场的潜力和机会已远远超过软件王国印度,不过由于软件人才的严重不足致使我国软件发展遭遇“瓶颈”。国家为了大力培养软件人才,不断采取积极有效的措施。

 软件测试是个需求高,就职机会大的职业。目前,我国具备软件测试能力的人员数量和市场需求相差巨大,巨大的市场空缺,使软件测试工程师从初级到高级,只需要 1 年甚至更短的时间来完成。所以软件测试行业,未来的发展空间是非常广阔的。

 关键字:软件测试

 最新

 2 1. 绪论 1 1.1 软件测试的目的

 随着人类社会的进步,各种领域计算机的普及,软件测试在计算机领域占据着不可替代的角色,计算机软件也越来越多的出现在各个场合,为人们的办公,生活,学习,休闲等提供了前所未有的方便,但不能保证计算机软件能一步到位的满足人们的需求,所以就有了软件测试。软件测试的目的是:第一是确认软件的质量,其一方面是确认软件做了你所期望的事情(Do the right thing),另一方面是确认软件以正确的方式来做了这个事件(Do it right)。作为计算机专业的学生,我想以我自己的观点来阐述一下我对软件测试的理解。

 1.2 相关背景

 实际上,测试贯穿于整个软件开发生命周期(SDLC),从需求评审、设计评审开始,就介入到软件产品的开发活动或软件项目的实施中。如图 1 表示,测试和开发构成一个全过程的交互、协作的关系,两者自始至终一起工作,共同致力于完成同一个目标——按时、高质量地完成项目。

 软件测试与 SDLC 的关系 需求分析定义 系统、架构设计 验收测试执系统测试执功能测试执详 细 或 程序设计 编码 单 元 测交互合作 交互协作、缺陷修交互协作、缺陷修验 收 测 试用例设计 系统测试用例设计和环境准备 功能测试用例设计 设 计 技术复审 需 求 评设计规格说明书复审

 最新

 3 1.3 软件测试过程

 软件测试的全过程,其中主要的里程碑有:

  产品需求文档(PRD)或市场需求文档(MRD)的评审和签发;

  产品需求规格说明书(Spec)的评审和签发;

  测试计划、测试计划书的评审和签发;

  测试用例的设计、的评审和签发;

  功能测试;  系统测试;  验收测试。

 图 图 1. 软件测试总体流程图

 1.4 软件测试团队的地位

 在软件开发过程中,有各种各样的人员参与,包括项目经理、产品经理、UI(用立项阶段 设计阶段 编码&单元测试阶段 系统测试阶段 集成测试阶段结项总结阶段 验收测试阶段 需求阶段

 最新

 4 户界面)设计人员、文档人员等,但最大的两个团队就是测试团队和开发团队(有设计人员/程序人员组成),也就是说,一个软件公司,测试人员和程序员,占有最大比重。可见,软件测试团队的地位应该举足轻重。

 最新

 5 2. 软件测试基础 1 2.1 软件测试的定义

 简单的说,软件测试就是发现系统需求定义、系统设计、程序代码和文档中的缺陷,但这仅仅是不够的,究竟什么是软件测试呢?G.J.Myers 给出的定义:“程序测试是为了发现错误而执行程序的过程”。这个定义被软件测试界所认可,随后 G.J.Myers又进一步提出了有关程序测试的 3 个重要观点,那就是:(1)测试是为了证明程序有错,而不是证明程序无错误。(2)一个好的测试用例在于它能发现至今未能发现的错误。(3)一个成功的测试是发现了至今未发现的错误的测试。

 2 2.2 软件测试概念

 测试是软件开发过程的重要组成部分,是用来确认一个程序的品质或性能是否符合开发之前所提出的一些要求。软件测试的目的,第一是确认软件的质量,其一方面是确认软件做了你所期望的事情(Do the right thing),另一方面是确认软件以正确的方式来做了这个事件(Do it right);第二是提供信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息;第三软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。

 3 2.3 软件测试原则

 软件测试原则一:

 (1)所有的测试都应追溯到用户需求。正如我们所知:软件测试的目标在于揭示错误。而最严重的错误(从用户角度来看)是那些导致程序无法满足需求的错误。

  (2)应该在测试工作真正开始前的较长时间内就进行测试计划。测试计划可以在需求模型一完成就开始,详细的测试用例定义可以在设计模型被确定后立即开始。因此,所有测试应该在任何代码被产生前就进行计划和设计。

  (3)Pareto 原则应用于软件测试。简单地讲, Pareto 原则暗示着测试发现的错误中的 80 %很可能起源于程序模块中的 20 %。当然,问题在于如何孤立这些有疑点的模块并进行彻底的测试。

  (4)测试应从 " 小规模 " 开始,逐步转向 " 大规模 " 。最初的测试通常把焦点

 最新

 6 放在单个程序模块上,进一步测试的焦点则转向在集成的模块簇中寻找错误,最后在整个系统中寻找错误。

  (5)穷举测试是不可能的。即使是一个大小适度的程序,其路径排列的数量也非常大。因此,在测试中不可能运行路径的每一种组合。然而,充分覆盖程序逻辑,并确保程序设计中使用的所有条件是有可能的。

  (6)为了达到最佳效果,应该由独立的第三方来构造测试。

 " 最佳效果 " 指最有可能发现错误的测试(测试的主要目标),所以创建系统的软件工程师并不是构造软件测试的最佳人选。

 (7)不充分的测试是不负责任的;过分的测试是一种资源的浪费,同样也是一种不负责任表现。

 软件测试原则二:

 (1)应当把"尽早和不断的测试"作为开发者的座右铭。

 (2)程序员应该避免检查自己的程序,测试工作应该由独立的专业的软件测试机构来完成。

  (3)设计测试用例时应该考虑到合法的输入和不合法的输入以及各种边界条件,特殊情况下要制造极端状态和意外状态,比如网络异常中断、电源断电等情况。

  (4)一定要注意测试中的错误集中发生现象,这和程序员的编程水平和习惯有很大的关系。

  (5)对测试错误结果一定要有一个确认的过程,一般有 A 测试出来的错误,一定要有一个 B 来确认,严重的错误可以召开评审会进行讨论和分析。

  (6)制定严格的测试计划,并把测试时间安排的尽量宽松,不要希望在极短的时间内完成一个高水平的测试。

  (7)回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多的错误出现的现象并不少见。

  (8)妥善保存一切测试过程文档,意义是不言而喻的,测试的重现性往往要靠测试文档

 最新

 7 3. 软件测试分类

 随着软件测试技术的发展,测试方法更加多样化,针对性更强;选择合适的软件测试方法可以让我们事半功倍。以下是一些常用的软件测试方法:

  (1)从测试是否针对系统的内部结构和具体实现算法的角度来看,可分为:白盒测试和黑盒测试。

 (2)从是否需要执行被测软件的角度,可分为:静态测试和动态测试。

 1 3.1 黑盒测试和白盒测试

 黑盒测试是指不考虑程序的内部结构和内部特性,而是从用户的观点出发,针对程序接口和用户界面进行测试。

 黑盒测试方法是在程序接口上进行测试,主要是为了发现以下错误:(1)功能不正确或遗漏功能;(2)界面错误;(3)数据结构错误或外部数据库访问错误;(4)性能错误;(5)初始化或终止性错误。

 用黑盒测试发现程序中的错误,必须在所有可能的输入条件和输出条件中确定测试数据,来检查程序是否都能产生正确的输出。但这是不可能的。

 n 假设一个程序 P 有输入量 X 和 Y 及输出量 Z。在字长为 32 位的计算机上运行。若 X、Y 取整数,按黑盒方法进行穷举测试:

 n 可能采用的测试数据组:232×232 =264n 如果测试一组数据需要 1 毫秒,一年工作 365×24 小时,完成所有测试需 5 亿年。

 黑盒测试的测试用例设计:等价划分法、边界值法、错误推测法、因果图法。

 1.等价类划分 1>等价类划分是一种典型的黑盒测试方法,使用这一方法时,完全不考虑程序的内部结构,只依据程序的规格说明来设计测试用例。

 2>等价类划分方法把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少数有代表性的数据做为测试用例。

 3>使用这一方法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步。

 4>划分等价类:等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。测试某等价类的代表值就等价于对这一类其它值

 最新

 8 的测试。

  等价类的划分有两种不同的情况:

 ① 有效等价类:是指对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。

  ② 无效等价类:是指对于程序的规格说明来说,是不合理的,无意义的输入数据构成的集合。

 2.边界值分析 •边界值分析也是一种黑盒测试方法,是对等价类划分方法的补充。

 •人们从长期的测试工作经验得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。

 比如,在做三角形计算时,要输入三角形的三个边长:A、B 和 C。

 我们应注意到这三个数值应当满足 A>0、B>0、C>0、A+B>C、A+C>B、B+C>A,才能构成三角形。但如果把六个不等式中的任何一个大于号“>”错写成大于等于号“≥”,那就不能构成三角形。问题恰出现在容易被疏忽的边界附近。这里所说的边界是指,相当于输入等价类和输出等价类而言,稍高于其边界值及稍低于其边界值的一些特定情况。使用边界值分析方法设计测试用例,首先应确定边界情况。应当选取正好等于,刚刚大于或刚刚小于边界的值做为测试数据,而不是选取等价类中的典型值或任意值做为测试数据。

 3.错误推测法 • 人们也可以靠经验和直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的例子。这就是错误推测法。

 •错误推测法的基本想法是:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。

 4.因果图 如果在测试时必须考虑输入条件的各种组合,可使用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来设计测试用例,这就需要利用因果图。因果图方法最终生成的就是判定表。它适合于检查程序输入条件的各种组合情况。

 (1) 分析软件规格说明描述中,哪些是原因 (即输入条件或输入条件的等价类),

 最新

 9 哪些是结果 (即输出条件),并给每个原因和结果赋予一个标识符。

 (2) 分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么关系? 根据这些关系,画出因果图。

 (3) 由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。

 (4) 把因果图转换成判定表。

 (5) 把判定表的每一列拿出来作为依据,设计测试用例。

 白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能。

 使用被测单元内部如何工作的信息,允许测试人员对程序内部逻辑结构及有关信息来设计和选择测试用例,对程序的逻辑路径进行测试。基于一个应用代码的内部逻辑知识,测试是基于覆盖全部代码、分支、路径、条件。

 白盒测试的主要方法:逻辑驱动测试和基本路径测试。

 逻辑驱动测试:主要是测试覆盖率,以程序内在逻辑结构为基础的测试。包括以下 6 种类型:

 语句覆盖 、判断覆盖 、条件覆盖 、判定-条件覆盖 、条件组合覆盖 、路径覆盖 。

 白盒测试的主要目的:(1)保证一个模块中的所有独立路径至少被执行一次;(2)对所有的逻辑值均需要测试真、假两个分支;(3)在上下边界及可操作范围内运行所有循环;(4)检查内部数据结构以确保其有效性。

 白盒测试的实施方案:(1)在开发阶段:要保证产品的质量,产品的生产过程应该遵循一定的行业标准。软件产品也是同样,没有标准可依自然谈不上质量的好坏。所有关心软件开发质量的组织、单位,都要定义或了解软件的质量标准、模型。其好处是保证公司实践的均匀性,产品的可维护性、可靠性以及可移植性等;(2)在测试阶段:与软件产品的开发过程一样,测试过程也需要有一定的准则,来指导、度量、评价软件测试过程的质量。

 定义测试准则:为控制测试的有效性以及完成程度,必须定义准则和策略,以判断何时结束测试阶段。准则必须是客观的,可量化的元素,而不能是经验或感觉。

 最新

 10 根据应用的准则和项目相关的约束,项目领导可以定义使用的度量方法,和要达到的覆盖率。

 度量测试的有效性、完整性,对每个测试的测试覆盖信息和累计信息,用图形方式显示覆盖比率,并根据测试运行情况实时更新,随时显示新的测试所反映的测试覆盖情况。

 允许所有的测试运行依据其有效性进行管理,用户可以减少不适用于非回归测试的测试的过程。

 1.语句覆盖:语句覆盖就是设计若干个测试用例,运行被测试程序,使得每一条可执行语句至少执行一次;

 2.判定覆盖(也称为分支覆盖):设计若干个测试用例,运行所测程序,使程序中每个判断的取真分支和取假分支至少执行一次; 3.条件覆盖:设计足够多的测试用例,运行所测程序,使程序中每个判断的每个条件的每个可能取值至少执行一次;

 4.判定-条件覆盖:设计足够多的测试用例,运行所测程序,使程序中每个判断的每个条件的所有可能取值至少执行一次,并且每个可能的判断结果也至少执行一次,换句话说,即是要求各个判断的所有可能的条件取值组合至少执行一次;

 5.条件组合测试:设计足够多的测试用例,运行所测程序,使程序中每个判断的所有可能的条件取值组合至少执行一次;

 6.路径测试:设计足够多的测试用例,运行所测程序,要覆盖程序中所有可能的路径 3.2 静态测试和 动态测试

 静态测试是指不实际运行被测软件,而只是静态的检查程序代码、界面或文档中可能存在的错误的过程。其中包括代码测试、界面测试和文档测试 3 个方面。对于代码测试,主要测试代码是否符合相应的标准和规范。对于界面测试,主要测试软件的实际界面与需求中的说明是否相符。对于文档测试,主要测试用户手册和需求说明是否符合用户的实际要求。

 动态测试是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。所以,我们判断一个测试属于动态还是静态测试 ,唯一的标准就是看是否运行程序。

 最新

 11 3 3.3 单元测试和 集成测试

 单元测试是指对软件中的最小可测试单元进行检测和验证。

 (1)什么时候进行单元测试? 通常在程序员编码以后,代码已经通过编译后进行单元测试,而且在前期就应该做一些准备工作,比如撰写单元测试计划、编写单元测试用例等。千万不要等到项目后期再进行单元测试,那样就失去了检查代码、预防缺陷的意义了。

 (2)由谁来进行单元测试? 单元测试一般由白盒测试工程师或开发人员来测试。如果由开发人员来测试,最好做到交叉测试,避免 1 个人只测试自己的代码。

 (3)单元测试的依据是什么? 单元测试依据主要有两个,一个事源程序本身,包括代码和注释;还有一个是项目的《详细设计》文档。

 (4)如何进行单元测试? 主要用白盒测试方法,一般先静态检查代码是否符合规范,然后动态地运行代码,检查其实际运行结果。当然检查运行结果是否正确是一个最基本的要求,我们还要检查很多项,比如程序的容错处理,程序的边界值处理等。

 集成测试(也叫组装测试或联合测试)是在单元测试的基础上,将所有模块按照设计要求集成为系统或子系统,并进行测试。如果是集成为子系统,也可以叫做部件测试。

 (1)集成目的:当单个模块集成为系统的过程中,软件仍然可能出现问题。比如:

 •穿越模块接口的数据是否丢失;

 •一个模块功能的实现可能破坏了另一个模块的功能;

 •子功能组合之后不一定可以达到预期的功能;

 •全局数据可能被异常修改;

 •单个模块的误差被放大到了不能接受的地步。

 因此,需要在模块集成的时候进行整体测试以发现上面可能出现的问题。

 (2)集成必要性:

 单元测试仅仅保证了模块的局部正确性。而系统测试一般在整个系统完成之后进行,错误难以定位。

 集成测试具有以下不可替代性:

 最新

 12 • 单元测试不彻底,对于模块间接口信息内容的正确性,相互调用关系是否符合设计无能为力。必须依靠集成测试来保证。

 •和系统测试相比较,集成测试从程序结构出发,目的性,针对性更强。发现问题的效率高。

 •较容易测试特殊的处理流程。

 •定位也比较准确,迅速。集成测试的可重复性强,错误发生后容易定位。

 联调和集成测试的区别(1) 集成和联调都是对系统的装配过程,不过属于不同的级别。

 集成测试:

 • 测试人员在开发人员的协助下,制定集成测试计划;

 •集成测试主要关注的是接口上消息覆盖,异常流程,性能指标等深入测试。

 •集成测试是分层次的,一个模块集成测试后,可以按照计划进行下一个模块的集成或者更高级别的集成。

 •当集成测试完成之后就可以开始联调了。

 联调:一般是指软件系统和硬件平台之间的联调。可以认为是最高级别的集成测试。

 •开发经理在开发测试人员的协助下,制定系统联调计划。

 •相关人员将已通过集成测试的软件系统和硬件平台集成在一起,构成将交付的系统,并调通系统的基本功能。使用系统预测试项来确定基本功能是否都已经实现。

 •通过系统联调调通后的版本提交系统预测试组进行系统预测试。

 • 在系统的规模比较小比较简单的时候,可以考虑忽略集成测试而直接进行联调。但是当系统的规模较大的时候,跳过集成测试会带来问题难以发现,难以定位的问题。

 (3)完整的测试流程:单元测试->集成测试->联调->系统预测试->系统测试 (4)集成测试的层次和阶段 集成测试需要分层次,分阶段完成。

 一般情况下,分层次阶段可以按照以下规律:

 •第一个层次是组件测试。为后继测试提供更加好的原料。如果系统的一些组件已经充分被测试过,可以跳过这些组件。

 •第二个层次是做好集成测试规划:考虑人力,物力,时间,测试的重点等。找出关键的部分,以此作为主线进行计划和资源安排。

 最新

 13 •按照计划,把集成测试划分成为不同的阶段,明确各个阶段的主要任务,确定任务完成的标记。

 集成,单元和系统测试的关联 •单元测试是针对模块内部功能的白盒测试。需要辅助测试代码才可以进行测试。

 •集成测试也叫:组装测试,子系统测试,部件测试等。比如对于模块 A 进行集成的时候,需要把相关模块一起结合起来才可以进行。集成测试是注重功能和性能测试的黑盒测试。

 •系统测试是将提交的完整软件版本作为一个系统的元素,和硬件、支持软件、人员等结合起来,尽可能地模拟实际运行环境进行测试。测试用例通过系统的需求说明书得到,需要在实际的运行环境下测试。

 (5)集成测试的基本方案:可以根据集成测试时组装模块的方式把集成测试方案分成两大类:一次性集成测试方式和增殖式集成测试方式。增殖式集成测试方式分为:自顶向下方式 、自底向上方式 和混合增殖方式。

 (6)集成测试的方法和步骤 :

 •首先确定子系统有哪些模块组成,保证这些模块都进行过单元测试.

 •由开发人员组装这些模块,生成子系统,并保证在此子系统中,各个模块的功能尽可能发挥出来。

 •测试前,以一个关键模块为核心设计测试用例。以功能和性能为主线,注重模块间的接口。

 •搭建必要的测试环境,按照所写的测试用例,进行模块连接的充分测试。

 •记录测试结果,总结测试问题。

 (7)集成测试工作的主要内容:

 •测试主要依据材料:概要设计说明书。

 •集成测试计划的制定:包括集成测试进度安排,人员分配,测试用例设计。

 •集成测试计划的评审。

 •集成测试过程:包括测试过程记录,问题记录,问题定位和解决,问题回归。

 •集成测试报告的编写:包括测试总结,测试活动评估和测试问题分类统计和分析。

 (8)集成测试计划的影响因素 制定集成测试计划的时候,应该考虑如下因素:

 最新

 14 •采用何种系统集成方法来进行集成测试。

 •集成测试过程中连接各个模块的顺序。

 •模块代码编制和测试进度是否与集成测试的顺序一致。

 •测试过程中是否需要专门的硬件设备。

 列出各个模块的编制、测试计划表,标明每个模块单元测试完成的日期、首次集成测试的日期,需要的测试用例等。同时考虑测试所需特殊设备的日期情况。留出时间余量。

 集成测试计划的编制:编制之前最好能够明确把握被测试对象 ,一般需要作以下工作:

 •集成测试人员安排

 •集成测试方案确定

 •集成测试计划的编写

 •集成测试的准备工作 4 3.4 其他测试方法

 系统测试 System Testing:

 目标:

 检验组成整个系统的代码、以及系统的软硬件配合有无错误 代码实现的系统与用户需求是否吻合检验系统的文档等各种是否完整、有效 模拟验收测试的要求,检查系统是否符合用户的验收标准

 验收测试:Acceptance Testing 功能测试:是黑盒测试中的一方面包括界面测试、易用性测试、安装测试、兼容性测试 性能测试:包括稳定性测试、负载测试、压力测试 回归测试:是对新版本的测试,重复上一版本的时的用例。

 最新

 15 4. 软件测试工具

 软件测试工具就是通过一些工具能够使软件的一些简单问题直观的显示在读者的面前,这样能使测试人员更好的找出软件错误的所在。软件测试工具也分为自动化软件测试工具和测试管理工具。软件测试工具存在的价值是为了提高测试效率,用软件来代替一些人工输入。测试管理工具是为了复用测试用例,提高软件测试的价值。一个好的软件测试工具和测试管理工具结合起来使用将会使软件测试效率大大的提高。

 目前国际上主要分为三类软件测试工具:

 Mercury 测试工具、Rational 测试工具和 Segue 测试工具 ,占有市场 90%以上 。

  1 4.1 常用的软件测试工具

 (1)[开源测试工具]:

 开源测试管理工具:Bugfree、Bugzilla、TestLink、mantis

 开源功能自动化测试工具:Watir、Selenium、MaxQ、WebInject

 开源性能自动化测试工具:Jmeter、OpenSTA、DBMonster、TPTEST、Web Application Load Simulator

  (2)[TestDirector]:企业级测试管理工具,也是业界第一个基于 Web 的测试管理系统。

 (3)[Quality Center]:基于 Web 的测试管理工具,可以组织和管理应用程序测试流程的所有阶段,包括指定测试需求、计划测试、执行测试和跟踪缺陷。

 (4)[QuickTest Professional]:用于创建功能和回归测试。

 (5)[LoadRunner]:预测系统行为和性能的负载测试工具。

 (6)[其他工具与自动化测试框架]:Rational Functional Tester、Borland Silk系列工具、WinRunner、Robot 等。

 2 4.2 软件测试工具网站

  国内介绍软件测试工具比较好的网站为:51Testing 软件测试论坛国内免费软件测试工具有:AutoRunner 和 TestCenter。

 最新

 16 5. 缺陷管理

 1 5.1 什么是 Bug?

 有人说,软件测试就是在寻找软件中的 Bug,那么我么有必要搞清楚什么是 Bug。

 Bug ,在英语中是指“小虫子”的意思,现在泛指计算机中硬件和软件的错误。硬件错误有两个原因:一是设计错误,而是硬件老化失效。软件的错误全是厂家的错误。

 g 5.2 Bug 的分类

 (1)按严重程度(Severity)划分:

 是指 Bug 对软件质量的破坏程度,即此 Bug 的存在对软件功能和性能的产生影响,按严重程度由高到低的顺序可分成 5 个等级:系统崩溃、严重、一般、次要、建议。需要说明的是,在具体项目中,不一定是 5 个等级。如果 Bug 数比较少,就可以划分成 3 个等级:严重、一般、次要。一般的 Bug 管理工具灰自动给出一个默认的 Bug 严重程度划分。

 (2)按优先级(Priority)划分:

 表示处理和修正软件缺陷的先后顺序的指标。按照优先级由高到低可以划分为 3个等级:高(high)、中(middle)、低(low)。其中高优先级的 Bug 应该立即修复,中优先级的 Bug 应该在产品发布之前修复,低优先级的 Bug 是指如果时间允许应该修复的 Bug 或是可以暂时存在的 Bug。

 (3)按照测试种类划分:

 可分为逻辑功能类(function)、性能类(performance)、界面类(UI)、易用性类(usability)、兼容性类(compatibility)。

 (4)按照功能模块划分:

 一般的软件产品都是可分为若干个功能模块,比如 Word2000 里文件、编辑、视图等功能模块,二八定理告诉我们,80%的 Bug 大部分集中在 20%的模块中,测试的时候就可以统计一下 Bug 主要集中在哪些模块里,以便我们投入重点精力去测试。

 (5)按 Bug 生命周期划分:

 我们可以把Bug看做一个有生命的小虫每一个Bug都有其生存和死亡的生命周期,可划分为:新建(new)、确认(confirmed)、解决(fixed)、关闭(closed)、重新打

 最新

 17 开(reopen)。

 注意:严重程度高的 Bug 优先级不一定高。严重程度低的 Bug 优先级不一定低。

 3 5.3 缺陷报告

 缺陷报告是测试人员主要的工作产品之一,缺陷报告的读者通过缺陷报告来了解和评价测试人员,好的测试报告会增加开发人员对测试人员的信任度,坏的缺陷报告会影响开发人员的效率,也会影响测试人员的声誉。

 下面讲解一下提交缺陷报告的一些注意事项:

 (1)确保 Bug 重现; (2)要用最少且必要的步骤描述 Bug:是为了减少开发人员的定位问题的时间; (3)简洁、准确、完整:使开发人员拿到缺陷报告后马上就能够定位问题,不会产生理解上的歧义。要求缺陷概述、详细描述、尽量使用业界惯用的表达术语和表达方法; (4)一个 Bug 一个报告:一个缺陷报告里提交多个 Bug,这种习惯不值得提倡,原因有以下两点:一是不便于分配 Bug,二是不便于回归测试。

 最新

 18 6. 总结和思考

 通过这次论文设计,让我知道了在软件这个深不可测的行业里还有很多我不了解的知识,这也是为什么那么多软件人才孜孜不倦的探索其奥妙的动力。虽然知道软件测试这个名词,但知其然不知其所以然,这次论文彻底让我明白了什么是软件测试,作为一个合格的软件测试人员应当具备的软件测试知识有哪些,比如说一个完整的测试流程应该是:单元测试—>集成测试—>联调—>系统预测试—>系统测试,当然作为软件测试人员还应知道常用的软件测试的工具,软件测试工具的作用是用来发现 BUG并处理,一个好的软件测试工具和测试管理工具结合起来使用将会使软件测试效率大大的提高,对些软件测试工具的了解让我明白一个好的软件真的是来之不易。通过这次论文让我明白任何知识只要你肯去了解,肯去钻研,你肯定会得到你想要的结果,所以我感谢老师给了我们这么好的一个机会再一次的去深层次接触软件知识,让我受益匪浅!

 最新

 19 参

 考

 文

 献

  [1]张海藩. 软件工程导论(第 5 版).清华大学出版社. [2]毋国庆 梁正平 袁梦霆 李勇华.软件需求工程.机械工业出版社. [3]朱少民 左智. 软件过程管理. 第一版.清华大学出版社.

 [4] 朱少民.全程软件测试.电子工业出版社. [5] 赵斌.软件测试技术经典教程.科学出版社.

猜你喜欢
推荐图文
毕业设计
  • 办公表格
    办公表格

    打开文本图片集摘要:目前,油田现场已采用的变周期采油方式,具有...

  • 谈判技巧
    谈判技巧

    打开文本图片集摘要:随着城市化进程不断推进,地铁作为城市交通必...