一、总结
1、根据是否可见分为黑盒测试与白盒测试
2、根据是否使用软件分为静态测试与动态测试
3、根据执行方式分为手工测试与自动化测试
二、具体介绍
1、黑盒测试:又称功能性测试或行为测试,测试员不知道软件是如何运行的,只知道软件要做什么、能做什么。
优点:①、容易实施,不需要关注内部是如何实现的
②、更贴近用户的视角
缺点:①、测试覆盖率较低
②、自动化测试用例复用率低,维护成本高
关注点:①、软件功能是否正确实现或遗漏
②、接口的设计是否正确实现
③、系统的文件输入处理是否正确以及输出是否符合要求
通常在系统测试阶段使用黑盒测试(单元测试->集成测试->系统测试->验收测试)。
常用的测试方法:①、等价类划分法,②、边界值分析法,③、错误推测法,④、因果图法,⑤、正交实验分析法,⑥、状态图迁移法,⑦、流程分析法
2、白盒测试:又称结构性测试或透明盒测试,测试员可以访问程序员的代码,并可以通过检查代码的线索来协助测试(白盒测试有时会受到程序的逻辑影响,陷入错误的思维)。
优点:①、迫使测试员去了解软件的实现,理解原理
②、可以检查代码中的每条分支和路径
③、可以揭示隐藏在代码中的错误
缺点:①、工作量较大
②、无法检测代码中遗漏的路径
③、不能直接验证需求的正确性
常用的测试方法:①、代码检测法,包括审查与走查,②、静态结构分析法,分析程序代码的结构等是否合理,③、静态质量度量法,根据一些质量标准来评估代码质量,④、逻辑覆盖法。
逻辑覆盖有六种覆盖标准:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖发现错误的能力呈由弱至强的变化。语句覆盖每条语句至少执行一次。判定覆盖每个判定的每个分支至少执行一次。条件覆盖每个判定的每个条件应取到各种可能的值。判定/条件覆盖同时满足判定覆盖条件覆盖。条件组合覆盖每个判定中各条件的每一种组合至少出现一次。路径覆盖使程序中每一条可能的路径至少执行一次。
3、静态测试:无需执行被测程序,通过评审代码、界面或软件文档,检查软件是否符合编程标准,代码是否正确。
主要方式包括:①、代码测试:同事审查,走查:编写人讲述,校验:其他人讲诉
②、界面测试:主要是参考设计图、产品原型
③、文档测试:主要测试用户手册和需求说明是否符合用户的实际需求
4、动态测试:通过运行被测程序,检查运行结果与预期结果是否一致,并分析程序的运行效率、正确性和健壮性等。
通常黑盒测试都属于动态测试。
5、手工测试:由专门的测试人员从用户视角来验证软件是否满足设计要求,更适用于针对深度的测试和强调主观判断的测试。
优点:容易发现缺陷,实施简单
缺点:很依赖测试人员的专业性,覆盖量化难
6、自动化测试:使用单独的测试工具软件控制测试的自动化执行以及对预期的结果进行自动检查。
主要包括:单元测试、接口测试、性能测试
优点:效率高,速度快,复用性高,覆盖率容易度量,不会感到疲倦
缺点:机械,发现缺陷率低,一次性投入大
自动化测试不可能完全代替手工测试,只能帮助测试员更好地工作
网友评论