测试按照项目的开发阶段流程分为:单元测试(技术角度) 、集成测试(技术角度)、系统测试(针对业务)验收测试(交付测试)。
软件测试的分类:
按照对象的可见度分为:黑盒测试 跟 白盒测试.
根据状态分为 :静态测试 跟动态测试
根据测试执行方式:自动化测试 跟手动测试
黑盒测试:把被测试的软件看成一个完全看不见的盒子,看不到代码实现,只是单纯的测试项目的功能,界面,从用户的视角来项目的完整性,不关注内部的实现,操作简单。更贴近用户的使用角度。测试覆盖率较低,一般覆盖到代码量的40%。针对黑盒的自动化测试,复用率较低。她主要测试的是不是不正确或者遗漏的功能.在接口上输入能否正确的接受,能否是输出正确的结构,还有查看性能是不是满足需求.(主要应用于系统测试阶段).
白盒测试: 结构话测试,测试程序的逻辑性。
语句 条件 条件组 分支 路径.
优点:1.迫使测试人员去仔细考虑软件的实现,理解原理
2.可以检测代码中每条分支和路径
3.提示隐藏在代码中的错误.
4.对代码的测试比较彻底.
缺点:1.昂贵。
2.无法检测代码中的遗漏的路径(逻辑)和数据敏感性错误 。
3.不能直接验证需求的正确性.
白盒的主要测试方法:
灰盒测试:介于黑盒跟白盒测试之间,关注输出对于输入的正确性,同时也关注内部表现.
静态测试:不需要执行被测程序,而是通过评审软件文档或者代码,检测软件是不是符合编程标准,减少出现错误的概率.
互审(代码评审)走查 会议
动态测试:运行被测试的程序,通过运行结果与预期结果之间的差异,分析运行效率 正确性 健壮性。
手工测试优点:1.容易发现缺陷
2.容易实施
3.创造性 灵活性
缺点:覆盖量化难。重复测试效率低 不一致性,可靠性低 人力资源依赖
自动化测试:效率高 速度快,复用性高,准确 可靠,不知疲劳,
缺点:机械 发现缺陷率低 一次性投入大。
按照测试模式来分类
瀑布模式、敏捷测试、基于脚本的测试、基于风险的测试、探索式测试