软件测试面试相关问题
软件开发模型:瀑布模型
需求分析-概要设计-详细设计-编码-软件测试-软件维护
软件测试模型:V模型
需求分析 验收测试
概要设计 系统测试
详细设计 集成测试
编码 单元测试
软件测试模型:W模型(双V模型)
双V模型,边开发,边测试。开发一个V模型,测试一个V模型。
开发 V模型 | 需求分析 | 概要设计 | 详细设计 | 编码 | 集成 | 实施 | 交付 |
---|---|---|---|---|---|---|---|
测试V模型 | 系统测试设计 | 集成测试设计 | 单元测试设计 | 单元测试 | 集成测试 | 系统测试 | 验收测试 |
测试分类
单元测试:对程序的单个子程序进行测试
集成测试:对单元模块组成的子系统进行测试–注意检查模块间接口
系统测试:对整个产品系统进行测试,是否满足需求
验收测试:确保软件准备就绪,验证满足用户需求。
黑盒测试、白盒测试、灰盒测试
黑盒:不关心软件内部结构,只关注输入输出接口
白盒:关注软件内部的代码和执行结果
灰盒:介于黑盒和白盒之间,既关注内部结构,也关注输入输出接口
功能测试、性能测试
功能:功能是否满足用户需求。逻辑功能、界面功能、易用性功能、安装功能、兼容性功能等
性能:通过自动化测试模拟多种正常、峰值以及异常条件对系统进行性能指标测试。时间性能(系统响应时间)、空间性能(软件销毁系统资源)等
手工测试、自动化测试
手工:人工执行测试用例
自动化:重复执行程序进行测试。功能自动化:通过编写程序测试系统的功能。性能自动化:通过工具模拟大量用户像系统发送请求。
冒烟测试、回归测试、随机测试
冒烟:进行大规模测试前,先验证系统基本功能是否具有可测试性。
回归:系统修改后,重新进行测试确认修改是否引入新的错误
随机:模拟用户操作,随机生成测试数据
验收测试: α \alpha α测试、 β \beta β测试
α
\alpha
α测试:用户/公司内部用户在内部开发环境下进行测试。不能由程序员或开发人员进行。
β
\beta
β测试:由用户们在一个或多个用户场所进行。
什么项目适合自动化测试
1.任务明确,不需频繁改动
2.系统稳定,变动少
3.自动化测试脚本可重复使用
4.项目进度压力不大,周期长
5.系统开发规范
6.具备大量自动化测试平台
7.测试人员编程能力高
常用黑盒测试方法
用较少的测试用例覆盖尽可能多的模块输入输出接口。
1.等价类划分法:将数据划分为有效等价类和无效等价类,每个类别选取少部分有代表性的值
2.边界值检测法:根据数据规定的取值区间,选择边界值,刚好小于边界值,刚好大于边界值
3.错误推断法:根据软件常见的、可能出现的错误设计测试用例。
常用白盒测试方法
用较少的测试用例覆盖尽可能多的内部程序逻辑结构。
1.语句覆盖:设计测试用例,确保每个可执行语句至少被执行一次。
2.判断覆盖:每个判定分支至少被执行一次。
3.条件覆盖:每个条件下的所有可能结果都至少出现一次(不一定覆盖所有分枝)。
4.路径覆盖:每个可执行路径至少执行一次。
界面(UI)测试需要关注什么?
关注界面布局、美观、符合用户习惯、元素风格是否统一等
1.文字测试:字号、颜色、位置等
2.图片测试:大小、清晰度、位置等
3.布局测试:位置、分布是否合理
4.控件测试:对话框(位置、状态等)、文本框(是否有提示、长度限制、支持文本类型、字体大小、是否可以复制粘贴等)、滑轮控制(界面是否可以上下滑动等)、选项按钮(不选、单选、多选,选择状态是否变化)等。
软件测试目标
用尽可能少的测试用例覆盖尽可能多的系统功能。