功能测试(Functional Testing)是根据产品的需求规格说明书和测试需求列表,验证产品的功能实现是否符合产品的需求规格。它是系统测试过程中最基本的测试,不关注软件内部的实现逻辑。
功能测试的目的主要如下:
(1)是否有不正确或遗漏的功能。
(2)功能实现是否满足用户需求和系统设计的隐藏需求。
(3)能否正确地接受输入?能否正确地输出结果。
(4)验证业务流程是否正确、合理。
以上四个目的在测试过程中并不容易实现。
首先,第一个目的应该是相对比较容易实现的,测试工程师只需要按照需求规格说明书来验证即可。
接着,第二个目的是验证用户的需求是否被正确地实现,但用户的需求不只是那些显式的需求,还包括一些潜在的、隐藏的需求。而测试的难点恰好就是这些隐藏的需求,解决客户隐藏需求最好的办法就是在创建需求规格说明书时,尽量将客户的隐藏需求挖掘出来,但现实中并不是所有的隐藏需求都能被挖掘出来,这时就要求软件测试工程师必须对业务很熟悉,否则在测试过程中就很难发现这些潜在的需求。
再次,第三个目的是验证系统处理输入、输出的正确性,需要注意的是这里所讲的正确的接受输入,不仅仅指有效数据,还包括无效数据的输入,即系统不仅仅要能处理有效数据输入的情况,还应该能处理无效数据输入的情况,这说明在进行测试用例设计时必须考虑这两个方面的数据输入,并且在测试过程中恰恰是输入无效数据容易引起问题。
最后,第四个目的是在测试过程中一个难点,因为这个业务流程在需求规格说明书中不会明确的定义,完全是凭测试工程师的行业经验进行测试,但是如果仅仅靠测试工程师凭行业经验进行测试的话,那么这很难保证产品的质量,所以针对于这个方面的测试更多的是通过Alp