黑盒测试:只检查程序的功能,是否按照需求规格说明的规定来运行。着眼于外部结构,不考虑内部逻辑。站在用户视角。
优点:容易实施;更贴近用户视角。缺点:测试覆盖率低,约40%;自动化测试用例复用度低,维护成本高;
关注:是否有遗漏或错误的功能;给定的输入,系统能否有正确的结果;是否有数据结构的错误;访问是否有问题;性 能是否有问题;系统测试使用较多的黑盒测试;
设计方法:等价类划分法,边界值分析法,错误推测法,因果图法,正交实验分析法,流程分析法,状态迁移图法,
白盒测试:针对程序的逻辑结构来设计测试用例,用逻辑覆盖率来强调测试的完整性。语句覆盖、条件覆盖、路径覆盖。
优点:迫使测试人员仔细系统的实现,理解原理;检测代码中每条代码分支和路径;揭示代码中隐藏的错误;对代码测 试比较彻底。
缺点:工作量大,昂贵;无法检测代码中遗漏的逻辑和数据敏感性的错误;不能直接验证需求规格的正确性;
测试方法:代码检测法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、
灰盒测试:介于黑盒、白盒测试之间。关注输出对于输入的正确性,也关注系统逻辑。
静态测试:无需执行被测程序,通过评审文档或代码,度量程序静态复杂度,检查软件是否符合标准,借以发现程序的不足;
方式:互审、走查、会议。
动态测试:通过运行被测程序,来检查运行结果和预期结果的差异,并分析运行效率、正确性和健壮性等。
方法:黑盒主要用动态测试;白盒测试主要用静态测试;
手工测试:由专门的测试人员,从用户视角,来验证软件是否满足设计要求的测试的行为,更适合针对深度的测试和强调主管判 断的测试。
适用类型:众包测试、探索性测试
优点:容易发现缺陷;更加容易实施;具有创造性;
缺点:覆盖量化难;重复测试效率低;不同的人做不一致性,可靠性低;
自动化测试:使用单独的测试工具软件控制测试的自动化执行以及对预期和结果进行自动检查。
适用类型:单元测试、接口测试、性能测试等。
优点:高效率;高复用性;覆盖率容易度量;准确可靠;
缺点:机械、不具备创造性,不太容易发现缺陷;投入大;