-
产品需求变更怎么办?
- 1.先看改动范围,如果改动范围小,可以重新测试
- 2.如果改动范围大,可以和产品商量需求变更放在下一个版本完成,或者延迟发布,延长测试时间
- 3.如果不能争取测试时间,加班加点完成,并且在测试报告中写明需求变更的情况,避免背锅
-
软件测试的流程(如何开展测试)
- 需求评审
- 需求是否合理
- 需求是否可测
- 测试计划
- 人
- 时间
- 业务点(要测试哪些功能)
- 资源(用什么工具)
- 测试设计(有的公司没有时间做)
- 测试用例
- 全面开展测试
- 测试执行
- 测试环境搭建,测试工具搭建
- 测试执行
- bug提交
- 新版本发布
- 新功能测试
- 回归测试
- 测试报告总结
- 需求评审
- 总结:需求评审,测试计划,测试用例设计,执行测试,测试报告
-
测试方法
- 按照是否查看代码分为:黑色测试,白盒测试,灰盒测试
- 白盒测试(结构测试,逻辑驱动测试)
- 缺点:耗费比较大,不能检测到代码中遗漏的逻辑
- 优点:可以检测代码的每一条分支和路径,揭示隐藏在代码中的错误,对代码的测试比较彻底
- 测试方法:语句覆盖,条件覆盖,判定覆盖,条件组合覆盖,基本路径覆盖
- 检查程序内部逻辑,对所有的路径进行测试,是一种穷举路径的测试方法
- 黑盒测试(功能测试,数据驱动测试)
- 不查看代码内部的逻辑,只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否恰当地接收输入数据而产生正确的输出信息
- 测试方法:等价类划分(有效等价,无效等价),边界值划分,因果图法,场景法
- 优点:容易实施,不需要关注内部实现
- 缺点:覆盖率比较低
- 灰盒测试
- 将黑盒测试和白盒测试结合在一起的综合测试方法,基于程序运行时的外部表现和程序内部逻辑设计测试用例的方法
- 白盒测试(结构测试,逻辑驱动测试)
- 按开发阶段划分:单元测试,集成测试,系统测试(冒烟测试,回归测试),验收测试
- 单元测试(开发初期阶段)
- 对象:代码模块
- 任务:模块接口测试,模块局部数据结构测试,模块边界条件测试,模块中的所有数据通路测试(通常情况下是白盒测试)
- 优点:能尽早发现错误,降低修改成本
- 集成测试(在单元测试之后)
- 对象:经过了单元测试的模块
- 任务:期望通过测试返现各断源接口之间存在的问题,最后总把经过测试的单元组合成符合设计要求的软件
- 系统测试
- 对集成好的软件和硬件系统进行测试活动
- 系统测试是最重要的,因为系统测是在产品整体功能相对完善大的阶段,最能体现产品的缺陷。
- 验收测试
- 以用户为主的测试,针对核心业务测试流程进行测试
- 回归测试
- 对旧版本的bug进行了修复时候进行的测试,用来确认修改是否引入了新的错误
- 集成测试和系统测试之间的比较
- 测试角度:集成测试偏重于技术的角度进行测试,系统测试是偏重于业务的角度进行测试。
- 测试内容:集成测试是测试各个单元模块之间的接口,系统测试是测试整个系统的功能和性能;
- 性能测试
- 包含: 并发测试,压力测试,负载测试
- 关注: 响应时间,吞吐量,并发数,每秒能完成的响应数,cpu占用率,耗电量,网络
- 单元测试(开发初期阶段)
- 按照是否查看代码分为:黑色测试,白盒测试,灰盒测试
-
测试朋友圈
- 功能测试:
- 界面/易用性测试:是否符合需求,美观,方便
- 中断测试:前后台切换,锁屏解屏,断网重连,短信电话中断,插拔耳机或数据线
- 网络测试:三大运营商的网络,网络切换(wifi,4g,2g),无网测试,弱网测试(延时,丢包)
- 兼容性测试:安卓手机端,苹果手机端,pad端等
- 安全测试:
- 性能测试:响应时间,吞吐量,内存占用等
-
测试一个行李
- 请问行李箱有什么具体需求嘛?
- 功能测试:大小,厚度,容量,各个面承重等,拉杆伸缩收回是否灵活,开锁解锁是否方便
- 界面测试:材质,颜色,花纹是否符合要求
- 易用性测试:拉杆的手把是否防滑,拉链开合是否拖动
- 兼容性方面:箱子滚轮滚动是否支持沙地,泥土地等
- 安全测试方面:材质是否无毒,边角是否光滑无棱角
- 压力测试方面:长时间的负重
-
web测试和app测试的区别
- web和app的区别
- web是b/d架构,基于浏览器;app是c/s架构,基于客户端。web中只要更新了服务器,客户端就会自动更新,app就不能保证客户端及时更新,因为app的更新是需要用户主动去完成的,如果app中修改了服务器,就意味着客户端用户使用的所用户使用的新版本都要进行回归测试。
- 性能方面
- web关注响应速度,app还看电量,流量,cpu,内存
- 兼容性方面
- web基于浏览器,主要看电脑硬件,电脑系统,app依赖手机或平板,专注系统是安卓还是ios,关心分辨率,屏幕尺寸
- app比web多一项专项测试
- 弱网测试,安装,卸载,更新,界面操作,触摸手势等
- web和app的区别
-
瀑布模型和敏捷模型
- 瀑布模型:
- 分为好几个阶段,每个阶段之间有明显的分层,每一阶段的结果会作为下一个阶段的输入,强调文档。整个周期差不多完成之后才能看到结果,然后进行测试
- 缺点:没有迭代和反馈,不能适应用户不断改变的需求,后期改动成本比较大
- 敏捷模型
- 按照一个短的迭代周期工作,强调快,每次都要交付一些成果,强调开发软件而不是文档,让客户参与进来,快速响应新的需求
- 特点:以用户需求为中枢,而每个迭代周期都需要进行测试
- 瀑布模型:
-
V模型和W模型
- V:把测试放在需求分析,系统设计和编码之后
- W:测试活动和开发同步进行,测试对象不仅仅程序,还包括需求和设计
-
对测试的理解
- 测试是为了更可能多的发现产品的缺陷,避免上线后出现出现重大问题;对开发成果的检验
- 发现并尽量深层次定位BUG产生的原因,一定程度上协助开发找到解决问题的方案
-
为什么做测试
- 为什么不做开发做测试
- 相比于开发来说,测试的开发强度没有那么大,职业的寿命也要长一些
- 对于测试本身的这个行业来说,它属于一个朝阳产业,现在缺口也挺大的,现在越来越重视软件的质量,测试行业还是很有发展的
- 对于我自己来说,我认为目前我的性格,能力,也比较符合测试的需求。
- 为什么不做安全做测试
- 安全行业对安全知识要求得非常深入,目前我们学校对信息安全的培养其实更加侧重于计算机这一块,在安全方面的课程开得不多,一是在开发行业不够有竞争力,而是自己也没有多感兴趣
- 为什么不做开发做测试
-
如何写测试用例
- 用例编号
- 用例标题
- 功能模块名称
- 前置条件
- 输入数据
- 操作步骤
- 预期结果
- 优先级
- 执行结果
- 执行人
-
作为一名软件测试工程师,应该具备什么样的素质和能力
- 硬技能
- 计算机知识:操作系统,计算机网络,并且还要至少会一门编程语言
- 测试知识:各种测试理论,测试方法,测试用例编写
- 业务分析能力:包括熟悉产品的隐藏需求和功能
- 软技能
- 沟通能力,耐心,负责任,耐心
- 硬技能