软件测试是为了发现程序中的错误而执行程序的过程,常用黑盒功能测试法和白盒结构测试法进行测试,那黑盒功能测试法和白盒结构测试法到底是什么样的测试方法?它们有哪些优劣势呢?

所谓黑盒功能测试法,就是把要测试的软件看成一个黑盒子,不管其内部结构如何以及用什么算法实现需求提供的功能,而是按照需求的功能化要求,设计相应的测试用例,包括测试的输入数据与条件设置和所预期的软件运行输出结果,通过软件运行后所给出的输出(包括字符形式的输出与图象输出)与所预期的结果进行人工或者自动化比较,来验证被测试软件是否能给出正确的结果,从而判断该软件是否满足功能需求。
优点:
(1) 能最直观、最直接地反映出所设计的软件是否满足需求;
(2) 即使没有任何测试工具支援,也能靠人工测试的方法完成;
缺点:
(1) 难以找出某些特殊类型的错误。例如: 当对应于某组输入该被测软件并不提供任何输出信息时,可能只是改变了某种工作状态,如果其中的源代码处理部分有错误,就比较难找出来;
(2) 无法确定哪些测试用例有效或者无效 (所谓无效,并不是说单独使用某个测试用例时不能收到任何测试效果,而是在于它和前面已经使用过的测试用例一起使用时,毫无贡献,只是重复了前面的测试用例已经完成的测试);
(3) 具有无可避免的盲目性。当软件被修改后,由于不知道


















