3.1.3 如何做好测试版本控制

  软件测试版本控制其实是在软件测试中为了便于追溯和跟踪问题而出现的,对测试版本的控制实际上是对软件测试过程中的各种测试行为的管理和控制。软件测试的版本控制,主要是指对于测试对象的版本控制,也是指测试小组在软件测试过程中对开发部提交给测试部门的产品进行版本控制。如果开发小组不能够规范的管理软件版本,那么这时候测试小组对于产品进行版本控制将显得十分重要,这时软件测试小组要保证测试对象的可控性被限制在我们可以控制的范围之内。对此,我们建议开发小组和测试小组要做到如下要求:两个小组不但分工明确,还要协商出一个明确的约定,指定专门的测试版本负责人来专门负责版本控制这一块,让这个负责人去制定版本控制的提交原则,在软件研发过程中对提交的情况要进行详细的记录,通过这些措施,这样能在基本上对因为版本失控可能造成的测试失误或者无效加以避免。

  举一个软件测试项目中版本控制的例子,一个公司的员工负责了一个软件测试项目,在项目开展初期,该项目的测试工作进行的还算顺利。但是在测试后期工作即将结束时,却出现了问题。而这个问题的出现正是由于版本控制不当,在这个软件测试项目中,他们将测试过程中发现的bug提交给开发人员,开发人员在对测试人员提交的bug进行修改,在对这些bug修改后开发人员会将修改后的代码放入当前的软件版本之中,问题正是出现在这个阶段。那么为什么问题会出现在这个阶段呢?其实是因为对于修改过的代码,我们不能够保证他们一定是正确的,很可能在开发人员修改过之后,仍然是错误的,或者在修改过之后仍然会给软件带来别的问题,这种情况下会给软件测试人员的测试工作带来新的麻烦。这样会造成一个很严重的后果,那是测试人员对开发人员提交的新代码会很紧张,不能彻底放心,测试人员对新提交的新修正的代码还要在进行验证,进行排错,来确保不会因此而带来新的隐患,新的漏洞。在这个时候我们应该思考怎样去解决这个问题了,这时我们可以尝试一下软件测试的版本控制了。首先测试人员要测试开发人员提交的代码,将测试过程中查找到的bug进行提交。而当测试人员提交的bug到了开发人员手中之后,开发人员要针对这些bug进行修复工作,并且将修改后的代码放入程序中,作为新的软件版本。但是不能将它再放回到现在正在进行的测试版本中。而测试人员在完成这一轮的测试工作后,在对新的版本也是对经过开发人员修改过得下一个版本展新一轮的测试。而这是软件测试过程中的版本控制。

  3.1.4 缺乏测试版本控制的危害

  软件测试缺乏测试版本控制会带来很多危害:随着计算机软件技术的日趋成熟和日益复杂。现代的软件产品规模越来越大,结构越来越复杂。单纯的手工测试不再能够满足软件工程中的测试需要。一两个人完成一个项目的测试工作的时代不复存在,一个大型项目的测试工作,现在都是由很多测试人员参与并且有不同的分工,以团队合作流水线式的方式来开展工作的,他们在测试过程中是协同完成测试工作的。在进行测试的时候,同一个板块的测试会由很多人共同负责,他们将会分配到同样的任务。在这么多人完成同一板块的过程中,企业怎样去保证每个人的测试工作对软件产生的影响能够综合到一起产生好的作用。而不是因为人员的差异而对测试版本造成不一致性呢?运用软件测试中的版本控制成为此时有效地解决途径,有效的版本控制能够很好的解决这些问题,并对软件的开发进行产生好的积极的影响。但是如果版本控制不当则会造成很多让人搞到棘手的问题。

  (1)缺乏版本控制,将难以保证测试进度

  大多数的测试人员都希望他们进行的测试工作是完美的,经过他们测试后的软件更是完美无缺的。这种想法是好的,但是一个软件在它的整个生命过程中是不可能完美到没有一点错误存在的,我们只能尽我们所能去不断地完善它。这时如果能够提供有效的版本控制会极大地提高软件测试的工作效率。在测试中对测试版本进行版本控制时,我们起码要做到能够掌握软件过程中的每个版本。在每个版本中,我们能够找到哪些功能不过关,哪些功能没问题。对于新的测试版本不管在测试工作中的哪个时间段,都应该有一个可以用来比较的对象。并且能够与之前的版本进行对比。

  (2)缺乏版本控制,难以保证测试的一致性

  软件测试工作因为十分复杂并且有很多人员参与其中,在进行测试工作时,因为测试人员的分工不同,不同的测试人员要负责不同的测试模块。但是因为软件有其整体性,所以测试人员要互相协作,那么在测试过程中则必然会产生交叉。所以测试工作是一项十分复杂的工作,它是由很多人一起共同协作完成的。在整个测试中为了保证测试过程中的一致性我们必须要找到一个平衡点。而大量的实践证明如果进行有效的版本控制,将有效保证测试过程中的一致性,大大的降低因为缺乏版本控制或者流程管理可能带来的诸多问题。

  (3)测试版本冗余,易出现误用风险

  因为有众多测试员参与到软件测试过程中,而进行测试工作时每个人都必须使用一台机器,那么在每个人的机器上都要拷贝一个待测软件。随着测试工作的进行,在测试过程中会不断产生新的软件版本,为了测试需要,每个人的机器上都要不断更新软件版本,那么每个人的电脑上必然会保存不同时期的软件版本。而这些不同的测试版本随着时间的推移和测试工作的复杂很容易混杂在一起,造成测试人员无法分清每个版本之间的差异,甚至分不清对于当前版本应该做什么事情,从而给测试工作带来极大的困扰,出现版本的冗余。这时,如果缺乏有效的测试版本控制会增大测试风险,给测试工作带来麻烦。

  (4)容易导致本地版本和服务器版本不一致

  因为测试版本的众多和混乱,测试小组在测试工作上不但要花费更多的时间和精力,还可能造成不必要的重复性测试和不必要性测试,当测试版本不及时更新时,会造成测试版本和现行版本的不一致,这些是缺乏版本控制和管理的结果。因而加强测试过程中的版本控制是一项很重要的工作。