Q:对于测试人员来讲,除了借助于一些测试工具外,还应具备什么样的个人能力?是否需要具备自己动手处理Bug能力?再则您认为软件开发人员是否需要具备自我测试的能力?
李亚伟老师:测试工具不是最重要的,测试工具只是一个提高工作效率的辅助工具,不是测试人员必须掌握的,这个随时可以学习使用,使用测试工具只是一个熟练程度的问题,关键还是你的综合技术基础,测试经验。
通常认为软件测试人员具备的基本素质按重要等级依次是:技术、沟通能力、自信心、责任心、耐心和细心等。
技术是基础,作为测试人员,你应该具备一定的软件开发基础,了解软件的运行环境、生产过程、常见的软件开发问题等,同时你需要知道在软件的开发过程中各个阶段需要进行什么测试,选择什么样的测试工具,怎样分析测试工具进行测试的结果等。
其次是你的沟通能力,因为在测试过程中,你需要不断地跟开发人员、项目管理人员等沟通协调,沟通能力是你测试工作顺利进行的重要保障。测试人员发现问题最重要,在技术基础的保障下,你得知道什么是软件问题,什么情况下出现问题,出现在什么地方,最好知道因为什么原因出现问题,最最好知道怎么去修改这个问题,这样的话你跟开发人员更好沟通,你的测试工作就会进行得更顺利。
再次,作为测试人员,你得有自信,首先测试工作是一项技术要求很高的工作,测试并不比开发地位低。在技术基础的保障情况下,你应该非常自信地进行自己的工作,理直气壮地向开发人员提出软件问题,并坚持自己的观点,明确各方责任。
最后,测试工作非常重要,你担负着软件质量验收责任,你必须有责任心,耐心和细心地工作,争取不放过任何一丝一毫的软件错误和缺陷。
测试和开发工作是独立的,你可以具备动手处理Bug的能力,或者可以协助开发人员定位问题,提出修改建议,但是绝对不可自己去修改Bug。自己动手处理Bug的能力能具备更好,但不是必须的。
开发人员必须具备自我检测的能力,我们说调试也是一种测试,但不是系统的或者正规的测试工作。通常开发人员需要进行编码规则自查、单元测试工作等,同时开发人员在提交测试之前一般也需要先进行自我检测,谁也不愿意把更多的问题让测试人员发现。另一个方面,开发人员只有自己具备自我检测的能力,才会知道在开发过程中注意避免产生问题,减少软件Bug产生隐患。
Q:我们经常看到一款软件在正式发布后,仍存在很多Bug。在产品发布后,是否还需要人员去进行测试Bug?对一款产品的测试工作,Bug率达到一个怎样的状态才算作合格产品?
李亚伟老师:软件测试是一个有计划的活动,产品发布意味着当前版本软件开发和测试工作完毕,所以严格上来讲,有计划的测试活动已经结束。然后众所周知有限的测试不可能发现软件所有的Bug,我们也经常看到,几乎所有的软件产品都会有后续的升级版本,升级的原因:一是因为新增功能,其二就是修改旧版本的Bug,这也说明在行业实际运营过程中,测试在产品发布后仍然延续。
软件测试是一个有计划的活动,测试活动再次进行前必须是软件代码在上一次测试活动结束后进行过修订。软件测试需要投入人力和物力,产品发布之后是否需要继续进行测试,可根据人员情况和软件产品自身的情况决定,人员充足,自身认为产品质量需要继续提高,便可继续进行测试。
Bug率评价产品是否合格我认为是不正确的,一个产品也许只有一个Bug,但是这个Bug是致命的,那这个软件规模再大,它的Bug率非常小,其产品也是不合格的。另外,这个软件在应用上基本满足用户要求,但也存在一些易用方面的小问题,其Bug率较大,但其质量我认为比存在一个致命Bug的产品质量要好。
Q:您认为测试人员有没有必要与开发人员在同一个项目组工作,能将Bug扼杀在萌芽状态吗?如果采用这样的工作方法,责任应该如何界定,避免互相推诿?
李亚伟老师:测试人员有没必要与开发人员在同一个项目组工作,跟公司的管理制度、项目规模和人员素质等有关系。必须明确一点的事,测试工作和开发工作必须独立,测试人员与开发人员独立。
测试人员与开发人员在同一个项目组工作,而且人员与工作独立,理论上讲,如果测试人员素质没有问题,项目管理正常,在软件开发的需求分析、设计以及编码阶段、集成阶段等均进行了必要的测试工作的话,在前期很大程度上能减少Bug的发生,也能提高软件质量。但是测试工作是有限的,并不能将所有的Bug都发现或者预防其产生。
如果测试人员与开发人员同在一个项目组,首先工作应该独立。工作分工非常明确,项目组通常称包括开发人员和测试人员,严格上来讲,项目组包括项目经理、需求分析人员、软件设计人员、编码人员和质量管理人员、测试人员等,一般来说,开发人员兼任需求分析、设计、编码工作,质量管理人员兼任测试和质量管理工作。我们必须清楚一个事实:“设计而不是测试决定软件的质量”,软件测试是一个验证的活动,其依据是软件需求规格说明和软件设计说明。软件测试的质量跟测试过程管理、测试人员素质有很大关系。
软件产品发布后软件出现质量问题,软件问题类型多样,有设计问题、程序问题、文档问题等,其责任要具体定论,一般来说,如果管理没有问题,而且测试依据明确,软件出现不应该出现的问题,软件测试人员有一定的责任,但主要责任应该是开发人员的,首先没有按照需求或者设计完成开发人员。
相关链接:
找出软件开发过程中的BUG,你需要火眼金睛
文章来源于领测软件测试网 https://www.ltesting.net/