软件测试基础问答题
1.软件测试的定义
使用人工或者自动的手段来运行或者测量软件系统的过程,以检验软件系统是否满足规定的需求,并找出与预期结果之间的差异
2.测试按阶段分类
单元测试 集成测试 确认测试 系统测试 验收测试
3.是否需要执行被测试软件分类
- 黑盒测试
- 白盒测试
**黑盒测试:**是将被测试软件看做一个黑盒子,只考虑系统的输入和输出,完全不考虑程序内部逻辑结构和处理过程。黑盒测试的依据是各阶段的需求规格说明(如需求分析阶段是产品的需求规格说明书,单元测试阶段是函数的详细设计说明书)。
**白盒测试:**是将黑盒子打开,研究源代码和程序内部的逻辑结构。白盒测试的依据是程序代码。
利用白盒测试的覆盖指标所设计的测试用例与采用黑盒方法所得到的测试用例常常存在重复。因此,白盒测试一般充当黑盒测试的补充。
4.按测试执行时是否需要人工干预分类:
- 手工测试
- 自动测试
**手工测试:**是完全由人工完成测试工作,包括测试计划的制定,测试用例的设计和执行,以及测试结果的检查和分析等,传统的测试工作都是由人工完成的。
**自动测试:**是各种测试活动的管理与实施,是使用自动化测试工具或自动化测试脚本来进行的测试,包括测试脚本的开发与执行等,以某种自动测试工具来验证测试需求。这类测试在执行过程中一般不需要人工干预。通常在功能测试、回归测试和性能测试中使用较为广泛。
5.其他测试类型:
**冒烟测试:**对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续正常的测试。
**随机测试:**根据测试者的经验对软件进行功能和性能检查,是保证测试覆盖完整性的有效方式和过程。
**性能测试:**验证软件在正常环境和系统条件下重复使用是否还能满足性能指标。
压力测试
负载测试
6.实际工作中,软件测试过程并没有这么复杂,很多情况为了节约成本都是:
1.根据需求制定测试计划
2.根据测试计划和产品需求编写测试用例
3.执行测试用例
4.回归测试
5.验收测试