白盒测试:是通过程序的源代码进行测试而不使用用户界面。这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正。
  黑盒测试:又被称为功能测试、数据驱动测试或基于规格说明的测试,是通过使用整个软件或某种软件功能来严格地测试, 而并没有通过检查程序的源代码或者很清楚地了解该软件的源代码程序具体是怎样设计的。测试人员通过输入他们的数据然后看输出的结果从而了解软件怎样工作。(以上来自百度百科)
  我的理解是白盒测试,是对源代码进行测试,跟我们在oj上做题类似,用一些具有代表性的数据去测试整个程序的可行性以及全面性;而黑盒测试,顾名思义,是把整个程序当作黑盒,我们在看不见这个程序的情况下进行测试,我们是站在用户的角度,去测试这个软件的运行过程,去对比软件的功能与需求说明书所写的内容,相比于白盒测试,黑盒测试应该算是与白盒测试互补的测试,可以发现一些在只看程序的情况下发现不了的问题及错误。
  白盒测试主要测试内容(目前想到的):
  1、数据结构的测试;
  2、逻辑真假的测试;
  3、对于循环嵌套及跳出边界的测试;
  ……
  黑盒测试的主要内容:
  1、性能测试;
  2、功能测试(对照需求说明书);
  2、是否存在明显的数据结构错误;
  3、软件安全性测试;
  4、稳定性测试压力测试等等。