单项选择题

软件测试是为了发现错误而执行程序的过程。黑盒测试法主要根据______来设计测试用例。

A.程序内部逻辑
B.程序外部功能
C.程序数据结构
D.程序流程图