1、软件测试的流程
以我们公司为例:
- 获取测试需求 (需求评审后,产品会发出来)
- 编写测试计划(管理层面的文档,我们测试经理编写,5W1H原则:why(为什么测)、what(测什么)、when(什么时候测)、where(在什么环境下测)、who(谁来测)、how(怎么测))
- 测试计划评审 (测试经理会将测试计划安排发出来给大家看看,是否有需要调整的地方)
- 制定测试方案(技术层面的文档,我们公司暂时没有)
- 测试方案评审 (我们公司暂时没有)
- 测试用例设计 (我们明确自己的测试模块后,根据需求提取测试点,进行需求确认,根据测试点设计和编写测试用例。最常用等价类划分、边界值分析、错误推测法的用例设计方法)
- 测试用例评审 (用例编写者组织,提前把用例发出来,定会议,拉上开发、测试和产品一起参加评审,评审后会更新测试用例)
- 执行测试 (我们执行,发现bug,bug确认)
- 提交测试报告(提交有效bug至jira指派开发或开发负责人)–>跟踪bug/验证bug(每天中午和晚上下班前询问开发bug解决情况,如果解决及时验证)–>回归测试(bug修复后进行回归测试,检查是否产生新bug)
- 测试总结与复盘(测试结束后对自己的测试过程进行整理复盘,将测试过程中遇到的问题及解决方案输出文档提交至wiki)
2、软件测试的分类
1、按软件开发流程的不同阶段划分:
(1)需求阶段:需求测试
(2)编码阶段:单元测试、集成测试
(3)测试阶段:系统测试
(4)发布阶段:验收测试
2、按测试视角划分:
(1)外部视角:黑盒测试
(2)内部视角:白盒测试
(3)内外兼顾:灰盒测试
3、按测试对象的划分:
(1)GUI测试(图形用户界面)
(2)功能测试
(3)易用性测试
(4)接口测试
(5)性能测试
(6)安全测试
(7)兼容性测试
(8)国际化测试
(9)本地化测试
详细请看:在不同的维度划分下到底有多少种测试分类?
3、说说你对兼容性测试的理解
参考:我们应该怎么去设计产品的兼容性测试?
1.测试软件是否能在不同的操作系统平台上兼容,或测试软件是否能在同一操作平台的不同版本上兼容
2.软件本身能否向前或向后兼容
主要指的是能否兼容不同版本的数据
3.测试软件能否与其他相关的软件兼容
例如杀毒软件,文字处理软件,办公软件之间的兼容性
4.被测软件与标准外设的兼容
例如打印机
5.程序与运行支撑平台版本之间的兼容性
例如是否可以兼容不同的JDK版本,或不同的framework版本等
6.程序与应用服务器之间的兼容性
是否支持不同的应用服务器产品,或支持同一应用服务器的不同版本
7.各个浏览器之间的兼容性
主要是指的B/S架构中,与浏览器各种内核之间的兼容性问题
8.各种屏幕分辨率之间的兼容性
9.不同的网络环境中的兼容性
10.数据库之间的兼容性
不同的数据库之间的数据迁移问题
11.不同版本程序数据文件之间的兼容性
同一数据库在不同版本的软件上是否能够迁移
12.整机的兼容性
例如在本机能安装使用,在其他配置机器能否正常使用
13.其他软件的数据兼容性
即别的软件中的数据文件能否经进行处理
14.低版本软件生成的文件,高版本软件是否能够打开
15.如果是C/S系统,能否支持低版本的客户端程序访问高版本的服务器端或者是否支持高版本的客户端端程序访问低版本的服务器端
16.如果是C/S系统,是否允许不同版本的客户端与同一个服务器进行通信
17.如果是C/S系统,是否允许不同版本的客户端之间进行通信
18.当前软件系统生成的文件或数据是否可以在其他软件中被打开
19.是否支持同时安装或运行两个不同版本的软件
20.不同版本的软件系统是否能够支持以往的数字证书或硬件加密等安全校验文件
21.新版本的系统是否和老的应用插件相兼容
4、测试用例设计方法都有哪些?
1.等价类划分法
顾名思义,等价类划分,就是将测试的范围划分成几个互不相交的子集,他们的并集是全集,从每个子集选出若干个有代表性的值作为测试用例。
2.边界值分析法
长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。选出的测试用例,应选取正好等于、刚刚大于、刚刚小于边界的值,例如,对于在区间min,max的值,测试用例可以记为min,min+,max,max-。
3.错误推测法
错误推测法是指:在测试程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。
4.判定表法
又称为策略表,基于策略表的测试,是功能测试中最严密的测试方法。该方法适合于逻辑判断复杂的场景,通过穷举条件获得结果,对结果再进行优化合并,会得到一个判断清晰的策略表。
5.正交实验法
用语言描述正交实验法会很抽象难懂,简单说,就是在各因素互相独立的情况下,设计出一种特殊的表格,找出能以少数替代全面的测试用例。
其中,上面所说的特殊表格就是正交表,是按照一定规则生成的表。
虽然说是特殊的表格,实际表现形式跟一般的表格没有什么区别,正交表的主要特征是,“均匀分布,整齐划一”,正是因为“均匀”的,所以才能以少数代替全部。
5、简述测试目标有哪些类型?
功能测试、负载测试、性能测试、安全性测试、恢复测试、安装测试、兼容性测试、可用性测试、可靠性测试、国际化测试、本地化测试
6、请描述如何划分缺陷与错误严重性和优先级别
给软件缺陷与错误划分严重性和优先级的通用原则:
(1)严重性表示软件缺陷所造成的危害和恶劣程度。
(2)优先级表示修复缺陷的重要程度和次序。
严重性:
(1)严重:系统崩溃、数据丢失、数据毁坏
(2)较严重:操作性错误、结果错误、遗漏功能
(3)一般:小问题、错别字、UI布局、罕见故障
(4)建议:不影响使用的瑕疵或更好的实现。
优先级:
(1)最高优先级:立即修复,停止进一步测试。
(2)次高优先级:在产品发布之前必须修复。
(3)中等优先级:如果时间允许应该修复。
(4)最低优先级:可能会修复,但是也可能发布。
7、简述一下缺陷的生命周期
打开 : 表示问题被提交等待有人处理。
重新指派 : 问题被重新指派给某人处理。
处理 : 问题在处理中,尚未完成。
固定 : 确认此问题存在,但暂时不进行处理。
回归 : 对已经修复的问题进行回归确认。Reopened :
关闭 : 问题的最后一个状态。
8、 一个文本框要求输入6位数字密码,且对每个账户每次只允许出现三次输入错误,对此文本框进行测试设计的等价区间有哪些?
1.密码为空 登录
2.正确输入(输入正确的值) 登录
3.错误输入
(输入错误的值,输入数据例如:特殊符号、英文字母、汉字及非法字符等一些非正确值;输入方法例如:不足六位,超出六位,最大输入值) 登录/取消
4.连续错误输入三次以上 (查看连续错误输入后的提示信息及结果)
5.其他(是否支持剪贴板操作,例如:复制/剪切/粘贴)
9、常用adb命令
参考:https://blog.csdn.net/qq_28863851/article/details/103566465
10、常用Linux基础命令
参考:https://blog.csdn.net/qq_28863851/article/details/103495852
11、测试用例设计经典面试题——电梯,杯子,笔,桌子,洗衣机
参考:https://blog.csdn.net/qq_28863851/article/details/103513731
12、常见HTTP状态码
参考:https://blog.csdn.net/qq_28863851/article/details/86149174
13、Get请求与Post请求的区别
参考:https://blog.csdn.net/qq_28863851/article/details/103514000
参考:https://blog.csdn.net/qq_28863851/article/details/104048071
14、软件的生命周期
参考:https://blog.csdn.net/qq_28863851/article/details/103512250
15、 App与Web测试的相同点与不同点
参考:https://blog.csdn.net/qq_28863851/article/details/103513422
16、如何测试上传和下载?
参考:https://blog.csdn.net/qq_28863851/article/details/103511610
17、Cookies 和 Session的区别
参考:https://blog.csdn.net/qq_28863851/article/details/98062748
18、登录注册模块功能测试点
参考:https://blog.csdn.net/qq_28863851/article/details/103566763
19、常见SQL面试题和基础知识
参考:https://blog.csdn.net/qq_28863851/article/details/103567283
参考:https://blog.csdn.net/qq_28863851/article/details/103567554
20、跨部门合作
1.明确要合作的部门
2.明确要沟通的人
3.熟悉合作部门的工作流程制度
4.沟通前准备好,约定时间,建立良好的关系
5.换位思考
6.尽可能的将跨部门协作至于最高优先级
7.B方案