功能测试又称正确性测试,就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能或者说检查软件的功能是否符合规格说明。由于正确性是软件最重要的质量因素,所以功能测试也非常重要。
功能测试基本的方法是构造一些合理输入,检查软件是否得到期望的输出。这显然是一种枚举方法,为了减少枚举的次数,提高测试效率,就有等价类划分和边界值等等各种测试方法。这些基本的测试理论和流程很多测试人员也都知道了,本文就不详细讨论了,下面想说说实际工作中,对于功能测试需要及其注意的几个方面。
首先就是理解业务和需求。需求和业务理解了,才知道客户想要系统实现什么。然后按照需求来进行测试,不满足需求要求的都可以认为是BUG。虽然在实际工作中,拿到一份完整详细的需求是很不容易的,但要做好一个功能测试,前提就是要对需求比较熟悉,各个业务细节都很了解,甚至做到比开发人员还要了解。除此之外,对于现在很多的信息处理相关的系统,还需要对整个业务中数据库的操作比较清楚。比如哪个业务需要用到哪些表,做怎么样的操作。了解了这个就可以不单单从程序前台来看程序,看到数据库的过程,更有利于你找到隐藏的BUG。这些是从前台看不出来的,但实际可能会导致程序出现问题。
第二,了解程序的框架结构。
比如很多B/S结构的系统中,前台是如何和后台通信的,之间是什么协议,什么格式,后台是如何处理这些数据的。再比如C/S结构的系统,服务器端和客户端之间是如何通信的,中间的数据包是什么格式,哪些功能由服务器端实现,哪些功能由客户端实现等等。了解这些有助于你更好的去测试程序以及定位程序错误。
第三,和开发人员沟通。
这里说的沟通并不仅仅指通过沟通试图让开发人员修改每个BUG,这个当然需要沟通,但是并不是指所有的BUG都需要修改,这中间涉及到成本、技术,还有别的问题。除此之外,通过和开发人员搞好关系,对于BUG我们可以问他发生该BUG的原因,修改的大致方法,甚至不修改的原因等等,这有助于以后测试中多注意、多发现这样的问题,甚至提出修改建议。
最后,注意多总结,多学习。千万不能满足于整天在界面上点来点去,可以总结学习的东西很多,操作系统、数据库、网络,或者自动化测试,或者性能测试,等等,注意多学习,多总结提高,这对于无论是继续从事功能测试还是别的测试工作都有很大的好处。相信大家很容易理解这一点,不再多说了。