测试知识

原创 2007年10月10日 17:19:00
测试用例

测试用例的重要性是毋庸置疑的,它是软件测试全部过程的核心,是测试执行环节的基本依据。

生产管理系统中的功能测试用例直接使用需求规格说明书和软件功能点及对每个功能点进行操作上的细化、生产管理系统界面原型图,对工作流的测试用例还包含流程图和权限配置信息。

压力测试用例的选择可在实施现场定义,使用LoadRunner等测试工具在现场录制测试脚本,选择用例时应该消除客户端执行脚本的影响因素。

性能测试用例主要选择那些交互多、数据量大的功能,比如图形交互操作,记录自动生成等。

测试分类

  系统测试应该由若干个不同测试组成,目的是充分运行系统,验证系统各部件是否都能正常工作并完成所赋予的任务。测试分为以下几类。

1.  功能测试

  功能测试用来测试系统的单个功能,这里的功能定义为当用户在界面上点击功能菜单的某一菜单项时,系统给出的交互界面所包含的一组操作的集合。最简单的单一功能表现为一个浏览器编辑表单。

   功能测试的测试用例可以使用生产管理系统界面原型图,再结合检查对应的数据库记录的方式。

   功能测试测试是为了保证系统提供的单个功能项的正确性,比如一次设备台帐登记。在此基础上在联合其他相关的功能进行组合测试。

2.  组合功能测试(集成测试)

  单一功能测试只能保证最小范围内的基本功能的正确性,而不能保证当这些基本功能联合在一起实现一个完整应用是的正确性。组合功能测试就是建立在单一功能测试的基础上,测试逻辑相关的一组单一功能组成一个完整应用的实际效果。

   联合功能测试的测试用例由数据模型的关联关系、相关的流程图、生产管理系统界面原型图组成,对于工作流的测试,必须同时测试操作权限。

3.  压力测试

压力测试是指模拟巨大的工作负荷以查看应用程序在峰值使用情况下如何执行操作。压力测试应该是较短时间的、模拟巨大的工作负荷的、使应用程序的使用达到峰值的测试。压力测试是用来测试应用服务器并发能力的测试。

测试时使应用程序的使用达到峰值,如果超过这个界限则应用程序会崩溃或错误率激增,这个峰值是针对某一时刻来说的,也是针对某个临界的压力来说的,转变为场景设置中的说法就是能够支持的最大并发用户数。

压力测试需要在特定的硬件环境下进行,系统安装后,使用LoadRunner等测试工具。

4.  性能测试

对有些数据量大,操作复杂的功能,软件部分即使满足功能要求,也未必能够满足性能要求,虽然从单元测试起,每一测试步骤都包含性能测试,但只有当系统真正集成之后,在真实环境中才能全面、可靠地测试运行性能。系统性能测试是为了完成这一任务。性能测试有时与压力测试相结合,经常需要其他软硬件的配套支持。

测试结论和bug管理

1)        测试结论

测试结论要客观,用数据说话,尽量不要添加个人主管臆测,不带个人感觉或感情色彩,从多种角度考虑。

2)        使用bug管理系统或bug工具管理bug

为了使bug的管理系统化和规范化,便于查阅和更新,采用BugFree等专门管理Bug的工具来管理bug

3)        确定bug的等级

    按照CMM5中定义的规范,BUG一般分致命、严重、一般和提示。致命是严重影响产品的BUG,比如操作手册的错误,需求的错误等。严重是产品中使功能无法实现的BUG,比如某个功能无法运行,GUI长时间僵死没有响应。一般是某个BUG的发生,只影响了一个功能,而其他功能可以正常运行。提示就是一些 GUI的问题,或者友好性的问题。

    bug划分为不同的等级后,对致命和严重的bug需要立即处理,对一般和提示bug再细分为不同的优先级,按优先级的顺序分别进行处理。

4)        bug编写技巧

为了提交准确简洁的、彻底校订的、精心构思的、高质量的技术文档,请参考以下的技巧:

         组织Structure:测试人员应该采用深思熟虑的,小心谨慎的方法执行测试,并且做详尽的记录。这样可以促使他们对测试下的系统有很好的认识。当错误发生的时候,一个有组织的测试人员能够知道最早出现问题的地方。

         重现Reproduce测试人员在编写bug report之前必须在检查问题是否可重现。如果错误不可再重现,仍然应该写下来,但是必须说明问题的偶然性。一个好的处理原则就是在编写bug report之前反复尝试3次。

         隔离Isolate在尝试编写bug report之前,必须试着隔离错误。可以采用改变一些变量的方法,如系统的配置,它可能可以改变错误的症状。这些信息可以为开发人员着手调试提供思路。

         归纳Generalize在测试人员发现了一个已隔离的,可重现的问题后,应该对问题进行归纳。同一个问题是否出现在其他的模块或其他的地方?同一个故障是否有更加严重的问题?

         对比Compare如果测试人员以前曾经验证过现在出错的测试用例,那么他就应该检查以前的测试结果以检查相同的条件是否通过以前的测试。如果是的话,那么这个问题就象是一个回归的错误。注意由于同一测试条件有可能出现在多个测试用例中,这个步骤就不仅仅只是检查一个测试用例在以前的多个结果。

         总结Summarizebug report的第一行写上错误的总结是非常关键的。测试人员要花些时间思考已发现的错误对客户有何影响。这不仅仅要求测试人员编写的报告要能够吸引读者,使和管理层的沟通清晰,还要能够帮助设置错误修复的优先级别。

         精简Condensebug report的初稿完成后,测试人员应该反复阅读它,集中剔除那些没有关系的步骤或词语。隐含的或模糊的说明和那些由于对没有任何关系的细节或者那些在重现错误过程中不需要的步骤而消磨报告欢迎程度的无穷唠叨都不是bug report的目标。

         消除歧义Disambiguate测试人员在精简空话的同时或其之后随即应该再仔细检查报告是否有会产生误解的地方。测试人员应该尽量避免使用模糊的,会产生歧义的和主观的词语。目标是使用能够表述事实,清楚的,不会产生争执的词语。

         中立Neutralize作为坏消息的传递人,和善地提交消息是一个挑战。如同所有的错误总结一样,独立的bug report在措辞方面应该保持公正。攻击开发人员,指责潜在的错误,企图诙谐或使用挖苦将引起开发人员的憎恶,并且使注意力从“提高产品质量”这个大的目标上转移开了。谨慎的测试人员只用Bug report来描述事实。

         检查Review一旦测试人员感觉bug report是他能够编写的最好版本,他应该将报告再给一个或多个同行进行检查。他的同事们也应该给出一些建议,为了澄清问题不断地提问,如果适当的话,甚至可以挑战“错误成灾”的结论。在允许的时间里,测试小组应该尽可能提交最好的bug report

一个Bug有7种解法:
By Design - 就是这么设计的,无效的Bug
Duplicate - 这个问题别人已经发现了,重复的Bug
External - 是个外部因素(比如浏览器、操作系统、其他第3方软件)造成的问题
Fixed - 问题被修理掉了。Tester要尽可能找到这种Bug
Not Repro - 无法复现你这个问题,无效的Bug
Postponed - 是个问题,但是目前不必修理了,推迟到以后再解
Won't Fix - 是个问题,但是不值得修理了,不管它吧

接口测试知识

接口是什么:接口可以理解成与资源打交道,这个资源可能是本系统的,也可能是其他系统的。接口可以理解成是不同系统或模块之间资源交流方式。接口测试实际上就是黑盒测试,作为黑盒测试,基本的测试思路是通过输入和...
  • Iloveyoutaotao
  • Iloveyoutaotao
  • 2017-08-10 15:17:37
  • 472

测试人员必知必会的数据库知识01

我们的黑盒测试基础知识已经分享完了,感谢大家的支持。从明天开始我们将介绍数据库的知识了,给这个系列起了个名字--测试人员必知必会的数据库知识。 我们介绍的数据库知识是针对测试人员的,所以我们...
  • xc5683
  • xc5683
  • 2012-11-05 19:57:09
  • 12054

web测试常用的用例及知识(全(1-5))

有时总是怀疑自己考虑的不够全面,在此借鉴他人的知识加以巩。做个总的归纳,方便以后查看。...
  • u013921325
  • u013921325
  • 2015-10-28 10:01:18
  • 642

软件测试知识框架图-偏web性能测试

软件测试知识框架图
  • typing_yes_no
  • typing_yes_no
  • 2016-02-19 16:59:19
  • 949

软件测试所需要的知识

从事软件测试工作近3年时间、说起来在这个测试行业中也只能算是入门型选手、相比那些在测试行业摸爬滚打了10几年的大牛望尘莫及。在转行到软件测试之前一直从事网络工程师和系统工程师的岗位(其实说白了就是IT...
  • lifuxiangcaohui
  • lifuxiangcaohui
  • 2013-05-22 15:06:00
  • 1419

测试人员该学习哪些Linux知识

测试人员需要掌握的IT“基本功”包括操作系统方面的一些基本知识,由于windows都比较熟悉了,所以重点学学Linux,Linux是很多大型应用系统的后台服务器所采用的操作系统。 学习的主要目的:测试...
  • Testing_is_believing
  • Testing_is_believing
  • 2009-07-31 21:10:00
  • 7679

软件测试哪些知识必须牢记

软件测试是一项批判性的工作,目的就是找出软件中的缺陷。这里暂时不去深究为什么要进行软件测试,以及软件测试带来的好处。只介绍软件测试中一些基本的测试方法。根据是否查看代码程序分为黑盒测试和白盒测试;根据...
  • wuxiaobingandbob
  • wuxiaobingandbob
  • 2016-02-24 16:59:25
  • 829

测试人员必备的数据库知识02

大家好,我们今天就正式开始数据库知识的介绍了。首先我们开始我们的第一讲,数据库基础知识。 首先要知道的是我们现在学习的是关系型数据库。我们直观的看,一个数据库由多张表构成的,那么每张表有不重复的名称...
  • xc5683
  • xc5683
  • 2012-11-06 20:28:40
  • 22250

游戏测试基础知识

游戏测试基础知识
  • Unity_Ming
  • Unity_Ming
  • 2016-05-21 22:56:54
  • 3355
收藏助手
不良信息举报
您举报文章:测试知识
举报原因:
原因补充:

(最多只允许输入30个字)