单元测试、集成测试、系统测试区别
-
粒度不同:
- 单元测试粒度最小,集成测试粒度居中,系统测试粒度最大。系统测试用例相对更接近用户接受测试用例,集成测试用例更详细,且对于接口部分更需要重点写。
-
测试方式不同:
- 单元测试一般由开发小组采用白盒方式来测试,集成测试一般由开发小组采用白盒加黑盒的方式来测试,系统测试一般由独立测试小组采用黑盒方式来测试。
-
测试内容不同:
- 单元测试主要测试单元是否符合“设计”(指南是程序设计描述),集成测试既验证“设计”,又验证“需求”(偏程序设计描述),系统测试主要测试系统是否符合“需求规格说明书”(指南是需要说明书)。
-
使用阶段不同:
- 单元测试为开发人员在开发阶段要做的事情,集成测试和系统测试为测试人员在测试周期内级层做的工作。顺序是单元——集成测试——系统测试。
应用场景
- 单元测试:在编码阶段,每完成一段相对完整的代码块时,单元测试几乎贯穿整个编码过程
- 集成测试:在多个模块完成时,整合的时候这些的模块的时候需要做集成测试,比如订单模块与购物车模块完成的时候,这两个模块整合的时候要完成集成测试
- 系统测试:在交付客户使用的时候,要对整个系统进行测试。既包含各模块的验证性测试和功能性测试,又包括整个系统的性能测试(健壮性、安全性、可维护性)。
- 压力测试(使用场景:在用户爆发性出现在某一时间段的时候,比如京东的618中年促销活动的时候,用户使用该系统的数量定会达到一个高点,此时要通过压力测试得知该系统的上限,以便做出更好的对策)
- 性能测试(使用场景:与压力测试的使用场景差不多,只是不需要测出该系统的上限而已)
- 安全性测试(使用场景:在系统交付之前或者交付之后,都可以使用安全性测试对系统进行测试,主要测试黑客是否能通过平台的缺陷捕获用户的信息,通常要与白盒测试结合使用)