软件测试概述

来源:互联网 发布:全国小龙虾消费数据 编辑:程序博客网 时间:2024/04/30 23:58

      离开北京快要接近两个月了,我不知道自己这样的决定是对还是错,对我以后的发展会有什么样的促进,其实本来世界上就没有对错之分,所谓的对错之分就是人的感官理解了,公说公有理,婆说婆有理。当然这里我不是在发表对错的观念,我这里想要说的是从一种行业转入另一种行业的理解,从一线的软件研发工程师转入一个新的行业,虽然两种行业有想通性,但是我感觉技术上没有太大的改变,但是从业务、专业名词、产品理解要有很大的区别,同时总的说来以前研发的很多经验又都可以应用到这里。以上是我自我发表点感慨,下面我开始言归正传,这里我主要想谈一下关于软件测试。我相信一个成功的软件公司有研发就会有测试,没有好的测试,那么研发出来的软件也是不算完整的,甚至有时候根本就不值一文的。

      那么什么是软件测试呢?从广义的概念上讲软件测试就是指软件生存周期中所有的检查、评审和确认工作,其中包括了对分析、设计阶段,以及完成开发后维护阶段的各类文档、代码的审查和确认。其实这是一种泛泛的概念,真正的软件测试所要包括的一般性内容。但其实质性概念我们可以称其为狭义概念就是识别软件缺陷的过程,即实际结果与预期结果的不一致性。软件测试通常包括验证(verification)和确认(validation)过程,验证是用来保证软件某一或某些功能性,而确认是站在用户的角度上来满足用户性的需求。这两种过程是相辅相成的,最终会促使软件的release。

      那么我们进行软件测试的目的是什么呢,当然我觉得你会说最终的release呀,其实这只是软件最终的目标,我们进行软件测试的目的总结有:

1、发现软件的各种缺陷bug。没有bug也就不存在软件测试了,这是软件测试最主要的目的。

2、将软件中的缺陷bug降低到一定的程度,而不能彻底的消灭bug。我们进行软件测试能够检测出bug,但是不能够证明软件不存在bug。应该这样说任何发布的软件谁也不能够敢说他的软件有多么的perfect。

3、以较少的用例、人力和时间找出软件中的各种错误,保证软件的质量。

    下面我要说一下软件测试原则,Good-enough原则,这是一种权衡投入与产出比的原则,投入的测试越多,那么最终的结果也会越来越好,这点我不用多说。保证测试的覆盖程度原则,但不能穷举测试,穷举测试会带来很多的工作量而且容易产生遗忘和忽略。所有的测试都应追溯到用户的需求,针对用户的需求是最容易找出缺陷和不足,也最终达到满意度最好。越早测试越好,测试的过程与开发的过程应该是相互结合的,在测试中找出开发的思路,在开发中经过测试不断的发现缺陷。测试的规模由小而大,从单元测试到最终的系统集成测试,这是一个循序渐进的过程。为了尽可能地发现错误,最好由独立的第三方来测试。不能便于测试擅自修改程序,测试只是为弥补开发中的不足。即应该测试软件该做什么也应该测试软件不该做什么。

    软件测试的重点,首先要有良好的测试用例设计,测试用例的设计是整个软件测试工作的核心,同时测试用例也是反映对被测对象的质量要求,决定测试独享的质量评估。测试过程首先应该要进行测试计划的编写,测试计划和软件开发紧密相关,所有大型的商业软件都需要完成的测试计划,需要具体到每一个步骤,并且每一个部分都要符合规范要求。其次就是测试方案,测试方案是用来描述在测试计划中去顶的软件测试领域的测试需求,每一个领域都应该有一份详细的测试方案,这就需要参考前面写的测试计划。再次就是测试用例的编写,测试用例是描述如何测试某一领域的文档,这些文档要符合测试方案的需求说明,再次要撰写测试报告,测试报告的目的是为了让整个软件开发部门了解软件开发的进展情况,意识缺陷能够迅速得到修复。最后需要些缺陷报告,前面提到过任何软件不可能很perfect,总是存在缺陷的,这里的缺陷报告就是要记录在测试的过程存在那些缺陷,那些是可以修复,那些事很严重的,可以这样说一份好的缺陷报告可以直接影响到开发人间对缺陷的修复工作。

          这里我简要的叙述了一下关于测试,其实测试是一个复杂的过程,其分类相对来说也是很多的,针对不同的目的和需求,测试的要求和结果也是不一样的,同时测试程度过程中也会存在很多的问题,我这里不去详细的说明了。