软件测试分类
按阶段分类
单元测试
逻辑覆盖、循环覆盖、同行评审、桌前检查、代码走查、代码评审、景泰数据流分析
单元:单元是程序里最小的,可单独执行编码的单位。
如:源代码:如JAVA中的一个类/C语言中的一个函数,用白盒测试;功能模块:如web产品的一个页面,用黑盒测试
集成测试
将所有程序模块进行有序的、递增的测试,测试关注点是接口的传递参数与返回数据
系统测试
根据需求说明书,测试集成系统以验证整个系统功能与非功能是否满足需求。关注软硬件,分为自底向下和自顶向上,一般为黑盒测试。
验收测试
由用户验证是否可以接受整个系统,目的是识别未知应用环境对系统的影响。
α测试:内测版本
在软件公司内部展开的测试,由公司专业的测试人员执行的测试
β测试:公测版本
在软件公司外部展开的测试,可以由非专业的测试人员执行的测试
按是否看源代码分类
黑盒测试
黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用
白盒测试
白盒测试也称结构测试或逻辑驱动测试,是指基于一个应用代码的内部逻辑知识,即基于覆盖全部代码、分支、路径、条件的测试
覆盖准则由弱到强依次是语句覆盖、判定覆盖(分支覆盖)、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖
语句覆盖:程序中每条语句至少被执行一次。
判定覆盖:程序中的每个分支至少执行一次。每个判断的取真、取假至少执行一次。
条件覆盖:每个条件至少有一次为真值,有一次为假值。
判定/条件覆盖:判定中每个条件的所有可能结果至少出现一次,每个判定本身所有可能结果也至少出现一次。
组合覆盖:每个判定中条件结果的所有可能组合至少出现一次。
路径覆盖:覆盖程序中所有可能的路径。
灰盒测试
灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况
通常,灰盒方法中使用自动化软件测试工具来执行测试过程。提供给测试人员的模块驱动程序可以减轻手动代码生成的负担。
是否运行
静态测试
静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性
动态测试
动态测试方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能。
是否自动化
手工测试 自动化测试
其他策略
冒烟测试:对系统进行最基本功能的测试
最核心的业务流程(注册==》登录==》选商品==》购物车==》支付==》订单管理)
回归测试:修复一个bug后,把之前测试用例在新代码下重新测试 bug回归 旧功能回归
随机测试:对被测软件的重要功能进行复测
探索性测试:同时设计测试用例与执行测试,边测试边学习被测系统