绝对测试
个人信息
绝对测试
文章分类
日历
相册
最新文章
最新评论
最新留言
访客
友情链接
我的音乐
好友
计数器
          
rss
 
推荐订阅:订阅到RSS阅读
内容
  •  
    2008-03-05 16:43:12
    标签:杂谈
     软件测试的主要目的在于发现软件存在的错误(Bug),对于如何处理测试中发现的错误,将直接影响到测试的效果。只有正确、迅速、准确地处理这些错误,才能消除软件错误,保证要发布的软件符合需求设计的目标。在实际软件测试过程中,对于每个Bug都要经过测试、确认、修复、验证等的管理过程,这是软件测试的重要环节。

        错误跟踪管理系统

        为了正确跟踪每个软件错误的处理过程,通常将软件测试发现的每个错误作为一条条记录输入制定的错误跟踪管理系统。
        目前已有的缺陷跟踪管理软件包括Compuware公司的TrackRecord软件(商业软件)、
    Mozilla公司的Buzilla软件(免费软件),以及国内的微创公司的BMS软件,这些软件在功能上各有特点,可以根据实际情况选用。当然,也可以自己开发缺陷跟踪软件,例如基于Notes或是ClearQuese开发缺陷跟踪管理软件。
        作为一个缺陷跟踪管理系统,需要正确设计每个错误的包含信息的字段内容和记录错误的处理信息的全部内容。字段内容可能包括测试软件名称,测试版本号,测试人名称,测试事件,测试软件和硬件配置环境,发现软件错误的类型,错误的严重等级,详细步骤,必要的附图,测试注释。处理信息包括处理者姓名,处理时间,处理步骤,错误记录的当前状态。
        正确的数据库权限管理是错误跟踪管理系统的重要考虑要素,一般要保证对于添加的错误不能从数据库中删除。

        软件错误的状态

        新信息(New):测试中新报告的软件缺陷;
        打开 (Open):被确认并分配给相关开发人员处理;
        修正(Fixed):开发人员已完成修正,等待测试人员验证;
        拒绝(Declined):拒绝修改缺陷;
        延期(Deferred): 不在当前版本修复的错误,下一版修复
        关闭(Closed):错误已被修复;

        Bug管理的一般流程

      测试人员提交新的Bug入库,

  •  
    2008-03-05 16:43:12
    标签:杂谈
     软件测试的主要目的在于发现软件存在的错误(Bug),对于如何处理测试中发现的错误,将直接影响到测试的效果。只有正确、迅速、准确地处理这些错误,才能消除软件错误,保证要发布的软件符合需求设计的目标。在实际软件测试过程中,对于每个Bug都要经过测试、确认、修复、验证等的管理过程,这是软件测试的重要环节。

        错误跟踪管理系统

        为了正确跟踪每个软件错误的处理过程,通常将软件测试发现的每个错误作为一条条记录输入制定的错误跟踪管理系统。
        目前已有的缺陷跟踪管理软件包括Compuware公司的TrackRecord软件(商业软件)、
    Mozilla公司的Buzilla软件(免费软件),以及国内的微创公司的BMS软件,这些软件在功能上各有特点,可以根据实际情况选用。当然,也可以自己开发缺陷跟踪软件,例如基于Notes或是ClearQuese开发缺陷跟踪管理软件。
        作为一个缺陷跟踪管理系统,需要正确设计每个错误的包含信息的字段内容和记录错误的处理信息的全部内容。字段内容可能包括测试软件名称,测试版本号,测试人名称,测试事件,测试软件和硬件配置环境,发现软件错误的类型,错误的严重等级,详细步骤,必要的附图,测试注释。处理信息包括处理者姓名,处理时间,处理步骤,错误记录的当前状态。
        正确的数据库权限管理是错误跟踪管理系统的重要考虑要素,一般要保证对于添加的错误不能从数据库中删除。

        软件错误的状态

        新信息(New):测试中新报告的软件缺陷;
        打开 (Open):被确认并分配给相关开发人员处理;
        修正(Fixed):开发人员已完成修正,等待测试人员验证;
        拒绝(Declined):拒绝修改缺陷;
        延期(Deferred): 不在当前版本修复的错误,下一版修复
        关闭(Closed):错误已被修复;

        Bug管理的一般流程

      测试人员提交新的Bug入库,

  •  
    2008-03-05 16:38:05
    标签:杂谈

    前一段时间,关于在国内测试的前途如何?很多同行在测试论坛网站上多处的发起这样的话题和相关话题,看了很多观点,觉的应该记录些东西,就有了这个随笔。

    1、测试有前途么?
    2、测试有钱途么?

    我个人理解:通常问第一个问题的,有这么几个类型的人:

    一、测试新人
            一般是想从事测试行业的新人,对测试行业不了解,想了解测试的发展前景。更准确的应该说他们想问的问题是“如果他本人去做测试,他本人是否会有前途?”,如果测试有前途,就想着怎么进入这个行业,在这个行业发展。往往忽略了这个行业是否适合自己,自己能否会慢慢喜欢这个职业。对于这类人,本人觉得还是多看一些测试的工作内容是什么?测试包含那些技术?测试的职业规划是什么?软件开发模式是那些?这些资料,对这个职业,对自己的知识结构理解清楚后,自己就可以回答自己提出的这类问题了。

    二、做测试工作不足2年的人
            做测试做一段时间后,个人在测试这个职业已经厌倦了,对这个职业没有更多的工作激情和热情,没有了测试工作的动力,因此会发起这个问题,想了解同行是怎么看的.想寻找着自己的奋斗目标.对于这类人,本人觉的是由于在选择测试这个职业时,没有好好的了解这个职业和根据自己的情况制定合理的个人发展规划造成的.

    三、做测试不到半年的人
            做测试刚做几个月的新人,常常也会问这类问题。刚开始做测试都是从最基础做起,要有耐心的对付软件的回归测试和BUG的跟踪。看似简单的问题,但要认真做好不简单。有的人做不到3个月,就会开始浮躁起来,想像着做着这种重复的工作能有什么前途。并没有去体会在一遍又一遍的测试过程中,软件在改进的那种喜悦和艰辛。


    问第二个问题的人,也有这么两类型的人:
    一、想了解测试行情的人
            这一部分人是想了解测试行业的收入情况,做为选择这个职业的参考值。说白了“这个职业要是薪水高,就转行做这个职业。”这类人也许最后会喜欢上测试这个职业。

    二、想了解自己的薪水和同行差距的人


    我对这两个问题的看法:
    1、我很喜欢测试这个职业,我把它当做我的一个事业来做,因此对我来说,我认为它很有前途。因此对于这类话题,在论坛上我都不想参

  •  
    2008-03-05 16:35:06
    标签:杂谈
     性能测试在软件的质量保证中起着重要的作用,它包括的测试内容丰富多样。中国软件评测中心将性能测试概括为三个方面:应用在客户端性能的测试、应用在网络上性能的测试和应用在服务器端性能的测试。通常情况下,三方面有效、合理的结合,可以达到对系统性能全面的分析和瓶颈的预测。

       应用在客户端性能的测试

      应用在客户端性能测试的目的是考察客户端应用的性能,测试的入口是客户端。它主要包括并发性能测试、疲劳强度测试、大数据量测试和速度测试等,其中并发性能测试是重点。

      并发性能测试是重点

      并发性能测试的过程是一个负载测试和压力测试的过程,即逐渐增加负载,直到系统的瓶颈或者不能接收的性能点,通过综合分析交易执行指标和资源监控指标来确定系统并发性能的过程。负载测试(Load Testing)是确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统组成部分的相应输出项,例如通过量、响应时间、CPU负载、内存使用等来决定系统的性能。负载测试是一个分析软件应用程序和支撑架构、模拟真实环境的使用,从而来确定能够接收的性能过程。压力测试(Stress Testing)是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。

      并发性能测试的目的主要体现在三个方面:以真实的业务为依据,选择有代表性的、关键的业务操作设计测试案例,以评价系统的当前性能;当扩展应用程序的功能或者新的应用程序将要被部署时,负载测试会帮助确定系统是否还能够处理期望的用户负载,以预测系统的未来性能;通过模拟成百上千个用户,重复执行和运行测试,可以确认性能瓶颈并优化和调整应用,目的在于寻找到瓶颈问题。

      当一家企业自己组织力量或委托软件公司代为开发一套应用系统的时候,尤其是以后在生产环境中实际使用起来,用户往往会产生疑问,这套系统能不能承受大量的并发用户同时访问? 这类问题最常见于采用联机事务处理(OLTP)方式数据库应用、Web浏览和视频点播等系统。这种问题的解决要借助于科学的软件测试手段和先进的测试工具。

      举例说明:电信计费软件

      众所周知,每月20日左右是市话交费的高峰期,全市几千个收费网点同时启动。收费过程一般分为两步,首先要根据用户提出的电话号码来查询出其当月产生费用,然后收取现金并将此用户修改为已交费状态。一个用
  •  
    2008-03-05 16:35:06
    标签:杂谈
     性能测试在软件的质量保证中起着重要的作用,它包括的测试内容丰富多样。中国软件评测中心将性能测试概括为三个方面:应用在客户端性能的测试、应用在网络上性能的测试和应用在服务器端性能的测试。通常情况下,三方面有效、合理的结合,可以达到对系统性能全面的分析和瓶颈的预测。

       应用在客户端性能的测试

      应用在客户端性能测试的目的是考察客户端应用的性能,测试的入口是客户端。它主要包括并发性能测试、疲劳强度测试、大数据量测试和速度测试等,其中并发性能测试是重点。

      并发性能测试是重点

      并发性能测试的过程是一个负载测试和压力测试的过程,即逐渐增加负载,直到系统的瓶颈或者不能接收的性能点,通过综合分析交易执行指标和资源监控指标来确定系统并发性能的过程。负载测试(Load Testing)是确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统组成部分的相应输出项,例如通过量、响应时间、CPU负载、内存使用等来决定系统的性能。负载测试是一个分析软件应用程序和支撑架构、模拟真实环境的使用,从而来确定能够接收的性能过程。压力测试(Stress Testing)是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。

      并发性能测试的目的主要体现在三个方面:以真实的业务为依据,选择有代表性的、关键的业务操作设计测试案例,以评价系统的当前性能;当扩展应用程序的功能或者新的应用程序将要被部署时,负载测试会帮助确定系统是否还能够处理期望的用户负载,以预测系统的未来性能;通过模拟成百上千个用户,重复执行和运行测试,可以确认性能瓶颈并优化和调整应用,目的在于寻找到瓶颈问题。

      当一家企业自己组织力量或委托软件公司代为开发一套应用系统的时候,尤其是以后在生产环境中实际使用起来,用户往往会产生疑问,这套系统能不能承受大量的并发用户同时访问? 这类问题最常见于采用联机事务处理(OLTP)方式数据库应用、Web浏览和视频点播等系统。这种问题的解决要借助于科学的软件测试手段和先进的测试工具。

      举例说明:电信计费软件

      众所周知,每月20日左右是市话交费的高峰期,全市几千个收费网点同时启动。收费过程一般分为两步,首先要根据用户提出的电话号码来查询出其当月产生费用,然后收取现金并将此用户修改为已交费状态。一个用
  •  
    2008-03-05 16:33:07
    标签:杂谈
     经对软件测试很轻视,因为我那时很无知,只是一名普通的中国程序员,这也是那时绝大多数程序员的心态,那时中国程序员最讲究“编程才是硬道理”。

    如今却非常热爱软件测试,包括软件测试工具,方法,理论,技术。因为我在3年的测试工作中,深刻体会到软件测试的重要性和趣味性。此时,我已经跳出了“小程序员”的圈子,以软件系统工程的更大视角审视软件测试这项工作。

    很长时间以来我一直被下面的问题而困惑,有些问题至今仍然只是具有肤浅的认识,而且,我感觉我做的测试项目越多,阅读的测试书籍越多,我越感到我对软件测试理解的越肤浅。因为我越来越感受到软件测试的广度和深度的无限性,它像大海宽广,像宇宙那样深邃。为什么要进行软件测试?软件测试的前途如何?软件测试的工具和思想谁更重要?软件测试的最高境界是什么?

    软件测试是保证软件质量的重要活动,是软件项目实施的不可缺少的环节。软件测试的直接目的是发现软件中存在的缺陷。此为测试的有效性。

    在软件项目没有结束之前的全部软件缺陷主要由软件开发人员负责,因为软件缺陷来自程序员的编程。软件项目结束后的软件缺陷主要由软件测试人员负责,因为软件测试人员没有在软件发布之前的测试中没有发现隐藏的错误。但这不是绝对的,因为软件项目是一个系统工程,软件质量牵扯到多个部门和人员,以及需求分析,设计,编码等各个环节和过程。软件测试只能证明软件存在缺陷,不能保证软件没有错误。

    软件测试不是万能的,因为不可能发现全部的软件缺陷,而且软件的功能和性能不是由测试决定的。此为测试的有限性。

        软件测试目前主要以手工测试为主,自动测试工具虽然很多,但实际应用的广度和深度还有很大潜力,自动将有很大的发展空间!。

        软件驱动开发的观点说明了测试与编程的关系,测试应该贯穿于软件开发的整个生命周期,编程只是软件开发的一个环节。但往往大家非常重视软件编程,把测试作为编程后的一个辅助环节。这是典型的本末倒置。软件测试的缺陷管理流程非常重要,报告的软件缺陷的质量,应该由他人验证,做到责任明确,方法简便可行。

        软件测试技术不断进步,但总体来看,国内的测试重视程度还不够,但已经发展很快。差不多两年之前,国内计算机书店中关于软件测试的书籍非常稀少,如今却琳琅满目,异彩纷呈。

       

  •  
    2008-03-05 16:31:30
    标签:杂谈
     人们常常以为,开发一个程序是困难的,测试一个程序则比较容易。这其实是误解。设计测试用例是一项细致并需要高度技巧的工作,稍有不慎就会顾此失彼,发生不应有的疏漏。

      不论是黑盒测试方法还是白盒测试方法,由于测试情况数量巨大,都不可能进行彻底的测试。所谓彻底测试,就是让被测程序在一切可能的输入情况下全部执行一遍。通常也称这种测试为“穷举测试”。 “黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。 “白盒”法是穷举路径测试,贯穿程序的独立路径数是天文数字,但即使每条路径都测试了仍然可能有错误。第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身是个错误的程序。第二,穷举路径测试不可能查出程序中因遗漏路径而出错。第三,穷举路径测试可能发现不了一些与数据相关的错误。E.W.Dijkstra的一句名言对测试的不彻底性作了很好的注解:“程序测试只能证明错误的存在,但不能证明错误不存在”。

      在实际测试中,穷举测试工作量太大,实践上行不通,这就注定了一切实际测试都是不彻底的。当然就不能够保证被测试程序中不存在遗留的错误。软件工程的总目标是充分利用有限的人力和物力资源,高效率、高质量地完成测试。为了降低测试成本,选择测试用例时应注意遵守“经济性”的原则。第一,要根据程序的重要性和一旦发生故障将造成的损失来确定它的测试等级;第二,要认真研究测试策略,以便能使用尽可能少的测试用例,发现尽可能多的程序错误。掌握好测试量是至关重要的,一位有经验的软件开发管理人员在谈到软件测试时曾这样说过:“不充分的测试是愚蠢的,而过度的测试是一种罪孽”。测试不足意味着让用户承担隐藏错误带来的危险,过度测试则会浪费许多宝贵的资源。

      测试是软件生存期中费用消耗最大的环节。测试费用除了测试的直接消耗外,还包括其它的相关费用。能够决定需要做多少次测试的主要影响因素如下:

    ①、系统的目的

      系统的目的的差别在很大程度上影响所需要进行的测试的数量。那些可能产生严重后果的系统必须要进行更多的测试。一台在Boeing 757上的系统应该比一个用于公共图书馆中检索资料的系统需要更多的测试。一个用来控制密封燃气管道

  •  
    2008-03-05 16:29:37
    标签:杂谈
     1.     测试计划
    这里所说的测试计划,是指测试阶段的测试计划,而不是整个项目过程的测
    试计划。
    现状:目前测试文档关于测试的内容主要是测试的时间计划。而这种时间划分也是非常粗略的,而且没有依据。为什么要花这么多时间?目前只是按照个人直观、经验等方法来判断测试时间。因此,这类测试计划的随意性太大,粒度太粗,不便于管理。目前的测试是为了测试而测试,没有规划性。
    个人意见:细化测试计划,使测试时间可以量化。
    1)        更改测试时间的划分方式,使用工作日/人的计算方法。
    目前在编写测试计划时,测试进度中的计划开始/结束时间往往用如20050101-20051201的具体时间划分方式,这样引起的问题是当项目计划进行变更的时候,测试计划时间不得不随时调整,这种变更可能是频繁而琐碎的,可以替代的办法是取消这种方式,采用30工作日/2人或者2人月这种工作量记录方式,这样,只需在项目计划中跟踪具体开始时间即可,不必反复更改测试计划。
    2)      测试时间的计算
    测试时间的计算比较困难,,但主要有以下几个方面:
    a)      编写测试用例的时间
    目前没有测试用例的管理和收集,测试主要是依照个人的经验来进行,不利
    于管理和积累。我觉得测试用例可以文档化实现,尽管刚开始会花一些时间,但社区的各个系统相似性很高,因此测试用例的复用性就非常高。个人建议:建立测试用例模板。
    b)      系统执行测试用例的时间
    c)      提交测试报告时间
    即在BUG管理系统中提交BUG时间。
    d)      BUG确认测试时间。
    e)      BUG修复时间及系统更新时间
    f)      其他时间
    再根据系统的功能点来计算测试所用的时间,这样就可以计算出一个功能点
    所花的时间,进而得出一个模块或者一个工作台帐的测试时间,从而得出测试计划所需的工作量。其中,e)不是测试人员所花的时间,但不算入测试人员的工作量。
       
    2.         测试工具
    目前的测试方法都是手工测试,手工
  •  
    2008-03-05 16:27:46
    标签:杂谈
     《三十六计》是根据我国古代卓越的军事思想和丰富的斗争经验总结而成的兵书,古人用兵最讲究谋略,在中国古代战争史上,精彩的谋略计策层出不穷,令人眼花缭乱,但万变不离其宗,大抵都逃不过这三十六计的范围。时至今日,“三十六计”在我们日常的工作和生活中,同样可以有很广泛的应用。我是一名软件测试工程师,并热爱软件测试这一职业,目前从事测试已有一段时间,虽然不敢自认权威,但我还是愿意将自身在从事软件测试工作中积累的一些经验,以及一些心得体会,借助三十六计中的若干计谋加以说明,与诸位同行分享。

    总说
        【原文】   
        六六三十六,数中有术,术中有数。阴阳燮理,机在其中。机不可设,设则不中。
        【解析】
        “兵以诈立”,多谋者胜。用兵要讲究谋略,“运筹帷幄,决胜千里之外”。同样的道理,无论从事什么样的工作,都需要讲究方式、方法。有了正确的方式方法,或者适时的运用一些小技巧,往往可以收到事半功倍的奇效。

        第一计 瞒天过海

        【原文】
        备周则意怠;常见则不疑。阴在阳之内,不在阳之对。太阳,太阴。
        【译文】
        防备周全时,更容易麻痹大意;习以为常的事,也常会失去警戒。秘密潜藏在公开的事物里,并非存在于公开暴露的事物之外。公开暴露的事物发展到极端,就形成了最隐秘的潜藏状态。
        【解析】
        long,long ago,there is a 很厉害的程序员,名叫关羽,他是计算机专业科班出身,又拥有二十几年的编程开发经验,是当之无愧的资深软件工程师。虽然关羽的专业水平无庸置疑,但是他有一个缺点,就是自视过高,骄傲不可一世,他常常认为自己写的代码十分完美,几乎已经到了自恋的程度。他看不起测试人员,对他们提出的程序错误不仅不屑修改,甚至于不肯承认,并经常与测试人员起争执。有一年他在湖北荆州负责一个十分重要的大型系统的开发,而负责这个系统测试工作的正是关羽向来都瞧不起的吕蒙。这个吕蒙原本学历不高,只有中专文化程度,并且还不大注重学习,提高自己的能力。直到有一次被他的上司孙权教育了一顿,从此发奋图强,进步神速,技术能力迅速提高,早已不是当日的吴下阿蒙。起先吕蒙将发现的错误上报

  •  
    2008-03-05 16:25:17
    标签:杂谈
     

     

    1. 每半年读一本测试书籍;

    2. 每半年学一门测试技术;

    3. 每半年学一门IT技术;

    4. 要学会思考;

    5. 要重视测试设计;

    6. 多和测试同行交流。

     

    一个测试工程师应该具备的素质我想在很多介绍软件测试的书里已经都列举过了,这里就不在重复,而一个合格的测试工程师和一个测试工程师的最大区别在哪儿?不外乎就在与测试思想。合格就在于他接受到测试任务后所做的第一件事情是想而不是做。合格就在于他将他自己的想法始终贯穿于整个测试中,包括测试设计中,测试执行中,测试分析中。

    许多人都会说测试思想是一个空洞的东西,而我也曾经写过或说过太多的例子用以证明它,这里只建议想做合格测试工程师的人去看一本书吧,它的名字是<think in java>,在我眼里,它并不是一本讲技术的书,同时它也并不只适用于开发人员。

    接着说说怎样才可以成为一个合格的测试工程师。

    不是有一个玩笑说某某公司扫地的大妈都可以做软件测试,某某公司看门的大爷都可以做软件测试。由此可见人们对软件测试的误解和测试工程师的尴尬。其实并不是任何一个人都可以成为测试工程师的,其实并不是任何一个测试工程师都可以成为合格的测试工程师的,要想成为一个合格的测试工程师,你必须有血有肉还的有思想。技术没有可以学,思想是学不来的,思想是需要实践的。毛泽东思想也不是他老人家凭空想象出来的,你说是否?

    于是我建议大家:

    1. 每半年读一本测试书籍(现在的测试书籍也多起来了,尽管很多都是东抄西抄的,能力够的话去读英文原版,译本基本都不能完全领会作者的思想,人家老外的测试发展要比我门多几十年呢)

    2. 每半年学一门测试技术(IT行业变化很快,测试技术也同样,每年都有新的测试技术出现,不希望大家对每一个新出现的技术都掌握,只希望每一个测试人员对本人从事的这个行业要充分了解和熟悉,因为在你现在和将来测试的项目中,你要选择最合适和最有效于这个项目的测试技术,如果你连