测试方法:黑盒测试、白盒测试、灰盒测试
测试阶段:单元测试、集成测试、系统测试
测试类型:功能测试、性能测试、异常测试等
1、黑盒测试、白盒测试、灰盒测试
• 黑盒测试方法:已知正确的规格,检验产品规格和已知规格是否一致的测试方法
常见测试的设计方法:
等价类划分法
边界值分析法
判定表法
因果图法
正交分析法
状态迁移法
特点:
1、相对于白盒测试而言,工作量较小、测试过程简单
2、较容易发现规格上的不一致
3、测试的准备可以和开发并行进行
4、可能只测试到部分输入,还有部分输入难于构思到,从而可能测试有遗漏
• 白盒测试方法:已知产品正确的设计逻辑,检查产品运行的逻辑是否和设计逻辑一致的测试方法
常见的测试设计方法:
语句逻辑覆盖率
判定逻辑覆盖率
条件逻辑覆盖率
判定条件逻辑覆盖率
条件组合覆盖率
特点:
1、对测试人员技能要求较高,必须思考产品实现的逻辑
2、测试彻底,利于发现底层代码的错误
3、难度大、成本高
4、无法发现规格的缺陷
• 灰盒测试方法:既有黑盒测试的方法、也有白盒测试的方法
2、静态测试、动态测试
• 动态测试:运行程序进行的测试方法
• 静态测试:不运行程序、直接观察软件产品的测试方法
静态测试考虑的内容:
1、文档的描述是否规范、准确
2、代码的语法规则
3、文档个代码的一致性
手工的静态测试:评审,也叫同行评审peer review
• 正规检视:流程很规范,按照成立评审委员会、召集评审专家、专门碰头会、召开评审会、评审会议记录、决定下一次评审会议。专家人数7-13个。讨论、评审一个阶段的工作,通常定期举行。
• 技术评审:主要目的是为了讨论、决定采用哪种方案。流程较规范,专家人数较少。需从多个方案中选出最佳方案
• 走查:walk through,流程很随意,一般只适用于质量要求不太高、工作量较大
3、人工测试、自动化测试:
• 人工测试:由人手工进行的测试
• 自动化测试:机器辅助进行批量化测试的测试方法
自动化测试,目前只能在测试执行阶段自动化,前期的测试计划、测试设计和测试实现,都需要人工进行
自动化测试的分类:
1、功能测试
2、性能测试
3、白盒测试方法时
功能测试的自动化测试适用的场合:适用于对产品质量要求较高的回归测试中,要求回归次数较多。大数据量的枚举测试
4、单元测试、集成测试、系统测试
• 单元测试:单元测试是对软件的基本组成单位进行的测试,单位具有独立的名称、输入输出的接口和明确的功能特性
目的:检验详细设计是否符合概要设计要求
检验代码是否符合代码规范要求
检验代码和详细设计是否一致
测试依据:详细设计文档(LLD)
测试关注重点:数据结构、逻辑控制、异常处理
测试方法:采用白盒测试方法
评估基准:逻辑覆盖率
• 集成测试:经过单元测试后,将若干个单元组装在一起构成一个小产品,对这个小产品的功能和内部各单元之间的接口进行的测试活动
目的:检验概要设计是否符合需求规格的要求
检验各单位之间的接口
检验单元组装以后的整体功能
测试依据:概要设计文档(LLD)
测试关注重点:单元之间的接口、小产品的功能
测试方法:采用灰盒测试方法
评估基准:接口覆盖率
• 系统测试:经过集成测试,将软件与硬件、网络、某些支持软件、数据结合在一起,放在实际的运行环境中,检验产品是否满足用户的需求
目的:检验产品是否满足用户的需求
测试依据:软件需求说明书(SRS)
测试关注重点:需求说明书(功能、性能、兼容性、安全性等)
测试方法:采用黑盒测试方法
评估基准:需求覆盖率
• 验收测试:是以用户为主的测试
项目型软件的验收:通常叫用户验收测试>>User Acceptance Testing
产品型软件的验收:通常叫alpha测试、beta测试、gama测试、delta测试
Alpha测试:在开发环境下进行测试,测试结果可控。开发者坐在用户旁边,有问题可以及时反馈修改,内部测试版本
Beta测试:在实际使用环境下进行测试,测试结果不可控,网上的测试版本(公测)
• 冒烟测试:对象是每一个新变异的需要正式测试的软件版本,对其重要部分进行大概测试,目的是确认软件基本功能正常,可以进行后续的正式测试工作