草帽路飞UU 发表于 2019-3-28 14:21:49

黑白盒测试,动静态测试的区别与联系

本文如有纰漏请指正。
有一天遇到一个问题,判断观点是否正确:白盒测试有可能是静态测试;黑盒有可能是静态测试....,这个问题需要弄清楚黑白盒,动静态测试的根本区别是什么。


黑盒测试,白盒测试的区别:代码是否可见(也就是你是否要查看代码)。
黑盒测试:是基于规格说明(需求文档)的测试。测试人员不考虑/不关心软件内部结构,只关心程序的功能是否符合他的功能说明。又被称为功能测试(黑盒只是功能测试的一部分2017-7-27 16:50:08)、数据驱动测试。
白盒测试:基于设计文档(结构)的测试。关注软件内部结构和程序的设计实现。又称为结构测试或逻辑驱动测试。


静态测试,动态测试的区别:程序是否运行。
静态测试:静态测试是指不运行被测程序本身,通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。静态测试主要包括各阶段的评审、代码检查、程序分析、软件质量度量等,用于对被测程序进行特性分析。
动态测试:通过运行被测程序来检查运行结果与预期结果的差异,并分析运行效率和健壮性等指标;这种方法包括三部分:构造测试用例、执行程序、分析程序的输出结果。


这个地方还是让自己联想了一下V模型,最开始的时候我狭隘的认为只有V模型左侧的才是静态测试,但是实际上,V模型左侧只是静态测试的一部分,V模型右侧同样也会有静态测试(程序不运行),而在想到在V模型左侧(需求,设计,开发阶段)进行测试的时候,这也就会联想到W模型。进而这些都是贯穿在一起的。


所以在项目里同一个测试,既有可能属于黑盒测试,也有可能属于动态测试;既有可能属于静态测试,也有可能属于白盒测试。而且它们之间还有
包括交叉的关系,总结以下4句话:
黑盒测试有可能是动态测试(运行程序,只看输入和输出),也有可能是静态测试(不运行程序,只是查看界面)
白盒测试有可能是动态测试(运行程序,并分析代码结构),也有可能是静态测试(不运行程序,只是静态查看代码)
动态测试有可能是黑盒测试(运行程序,只看输入和输出),也有可能是白盒测试(运行程序,并分析代码结构)
静态测试有可能是黑盒测试(不运行程序,只是查看界面),也有可能是白盒测试(不运行程序,只是静态查看代码)


页: [1]
查看完整版本: 黑白盒测试,动静态测试的区别与联系