对于软件测试的学习应该从不同的角度入手,首先主要的是了解学习软件测试主要有哪些过程,形成一个笼统的知识框架,这样学习起来才能更快的入门。
1、编写目的
测试是“为了发现程序中的错误而执行程序的过程”。测试的目的就是在软件投入生产性运作之前,尽可能多的发现软件中的错误。软件测试是保证软件质量的关键步骤,尽管不可能做到完美,但是可以做到更好。在软件开发的过程中,开发人员会面对很多错综复杂的问题,客户的需求不断更新,同时怎样去适应市场对系统也会提出更高的要求,所有与软件系统相关的各类人之间的配合和通讯都不是完美无缺的,人的主观意念也会造成与客观事实的不符,甚至是出现分歧或对同一问题理解的偏差。因此,在软件生命周期的每个阶段,都不可避免的会产生差错。软件测试是软件开发中不可或缺的一部分,为了更好的保证软件的质量,更好的进行测试和改进以往测试的弊端,所以制定计划和不断总结在开发中也是必须的。
2、测试流程
任何工作的进行都需要有计划、有目的地去执行。随着系统功能的不断扩展和完善,为更好适应下一阶段新的开发计划,制定完善的测试流程不仅可以提高测试的效率,同时促进测试更好的进行。关于流程图的资料也有很多很多,但是每个做测试人的心里都有一个自己的流程图,这主要取决于所处的环境和系统的开发模式,下面是我的测试流程图:
1)测试需求分析
测试需求分析就是对需求文档的分析,在制定测试计划前尽量弄明白需求,特别是有疑问的、不懂的地方都需要通过与开发人员或相关人员进行沟通,尽量弄清楚测试的功能和需求,因为这将是展开测试工作的测试依据。
2)测试计划
根据开发计划,制定测试的计划,包括各功能测试方案和测试的进度以及人员的分配。
3)用例设计
好的测试用例可以更好的找出系统中存在的问题,每个人看待问题的角度不一样,所以用例设计前进行评审和交换意见,可以有效的改进测试的准确性。
4)测试执行
测试执行过程中,首先,确认bug,反复测试重现bug并尽量找出问题的所在原因;其次,留测试证迹是主要工作,可以让开发人员更好的了解问题;最后,有疑问的地方要向相关人员沟通确认。
5)测试统计
把测试工作中的用例数、缺陷数进行统计,确认无法测试的用例并说明不能测试的原因。
6)需求跟踪和bug跟踪
开发中需求变更,要了解其是否对现有功能产生影响,如果有则除了对新增功能的测试外还需要重新测试影响模块。Bug跟踪主要是对已经修改后的bug进行回归测试,确定其通过测试并且修改地方未对其他相关功能产生影响。
3、改进与总结
理论总归是理论,要想更好的做好测试,按部就班是远远不够的,很多时候都需要自己去发现,去探索,在总结中弥补不足。
1)业务学习:测试的很大一部分工作都取决于对业务的了解程度,对于既有的业务和新添加的业务要深入了解,主要通过文档学习和相关人员的沟通,从而形成对项目的一个整体认识,对于项目的业务有一个完整的概念。
2)需求分析:充分利用各类资源,只有知道的多了你才能更好去测试,不理解的问题要及时发问,多沟通。
3)用例设计:用例的设计决定了测试的好坏,好的用例不仅覆盖率高,而且还可以发现一些不易发现的bug,所以要不断优化测试用例,实现用例的可重复利用,并加入评审。
4)Bug跟踪:确认bug完全修改完毕,且没有影响其他相关模块,特别是如果处于系统的上游,需对于下游功能做相关测试,对于常见同类bug进行总结统计,多看别人的bug记录,特别是高手的,可以学到不少。
5)测试方法:多种方法综合。黑盒测试方法包括等价类划分、因果图、正交实验设计法、边值分析、判定表驱动法、功能测试等,这些在实际中不是都能用到,但是可以从不同角度去发现问题。另外还有兼容测试、极值测试、容错测试、性能测试。
6)自动化测试:不管工作中是否用到这些工具,但是自己必须要去学习、充实。
最后:在实践中总结,在学习中进步。
原文地址:http://blog.51cto.com/13201210/2096372