二、 软件应用测试的方法(怎么测?)
测试方法可以从不同的角度阶段进行划分,它们与测试内容是交叉进行的。
1. 按测试阶段划分(测试生命周期)
这是最经典的V模型分类,对应开发过程的各个阶段。
单元测试:针对软件中最小的可测试单元(如一个函数、方法、类)进行测试,通常由开发人员完成。
集成测试:将多个单元模块组装后,测试它们之间的接口和交互是否正确。
系统测试:在完整的、集成好的系统上进行测试,验证功能和非功能需求是否全部满足。(上面提到的所有测试内容都在此阶段执行)
验收测试:由最终用户或客户进行的测试,目的是确认软件是否满足合同要求,可以交付。通常包括:
Alpha测试:在开发环境下,由模拟用户进行。
Beta测试:在真实用户环境中,由真实用户进行。
2. 按测试对象是否可见划分
黑盒测试:测试者只关心软件的输入和输出,不了解内部代码结构。主要用于测试功能和部分非功能需求。
白盒测试:测试者基于内部代码逻辑来设计测试用例,检查代码路径、分支、条件等。主要由开发人员进行,用于单元测试和集成测试。
灰盒测试:介于黑盒和白盒之间,测试者了解部分内部结构,但测试仍基于外部行为。
3. 按测试执行方式划分
手动测试:由测试人员逐步执行测试用例,观察结果。优点是灵活、适合探索性测试和易用性测试;缺点是重复劳动效率低。
自动化测试:利用脚本和工具自动执行测试。优点是高效、可重复、适合回归测试和性能测试;缺点是初期开发成本高,不适用于频繁变动的UI。
4. 其他测试方法
回归测试:在软件修改(修复缺陷或增加新功能)后,重新执行之前的测试用例,确保修改没有引入新的错误或导致其他功能失效。
冒烟测试:在对一个新版本进行大规模测试之前,先进行基本功能测试,确认软件“冒烟”(基本可用)后才进入详细测试。
探索性测试:依赖于测试人员的经验、知识和直觉,而不是预设的测试用例。它更像是“边学习、边设计、边执行”的测试。