每天十道软件测试面试题(四)
1、性能测试包含了哪些软件测试(至少举出3种)?
负载测试(Load Testing):负载测试是一种主要为了测试软件系统是否达到需求文档设计的目标,譬如软件在一定时期内,最大支持多少并发用户数,软件请求出错率等,测试的主要是软件系统的性能。
压力测试(Stress Testing):强度测试也就是压力测试,压力测试主要是为了测试硬件系统是否达到需求文档设计的性能目标,譬如在一定时期内,系统的cpu利用率,内存使用率,磁盘I/O吞吐率,网络吞吐量等,压力测试和负载测试最大的差别在于测试目的不同。
容量测试(Volume Testing):确定系统最大承受量,譬如系统最大用户数,最大存储量,最多处理的数据流量等。
或者在下面选择几项:
-
并发测试-测试多用户并发访问同一个应用、模块、数据时是否产生隐藏的并发问题
-
基准测试 - 比较新的或未知测试对象与已知参照标准(如现有软件或评测标准)的性能。
-
争用测试 - 核实测试对象对于多个主角对相同资源(数据记录、内存等)的请求的处理是否可以接受。
-
性能配置 - 核实在操作条件保持不变的情况下,测试对象在使用不同配置时其性能行为的可接受性。
-
负载测试- 核实在保持配置不变的情况下,测试对象在不同操作条件(如不同用户数、事务数等)下性能行为的可接受性。
-
强度测试 - 核实测试对象性能行为在异常或极端条件(如资源减少或用户数过多)之下的可接受性。
-
容量测试 - 核实测试用户同时使用软件程序的最大数量
2、请问什么是性能测试、负载测试、压力测试?
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
负载测试(Load Testing):负载测试是一种主要为了测试软件系统是否达到需求文档设计的目标,譬如软件在一定时期内,最大支持多少并发用户数,软件请求出错率等,测试的主要是软件系统的性能。
压力测试(Stress Testing):强度测试也就是压力测试,压力测试主要是为了测试硬件系统是否达到需求文档设计的性能目标,譬如在一定时期内,系统的cpu利用率,内存使用率,磁盘I/O吞吐率,网络吞吐量等,压力测试和负载测试最大的差别在于测试目的不同。
3、什么时候可以开始执行性能测试?
在产品相对比较稳定,功能测试结束后。灵活性比较强。
4、app测试性能指标
1、内存:
内存消耗测试节点的设计目标是为了让应用不占用过多的系统资源,且及时释放内存,保障整个系统的稳定性。当然关于内存测试,在这里我们需要引入几个概念:空闲状态、中等规格、满规格。
空闲状态指打开应用后,点击home键让应用后台运行,此时应用处于的状态叫做空闲;中等规格和满规格指的是对应用的操作时间的间隔长短不一,中等规格时间较长,满规格时间较短。
内存测试中存在很多测试子项,清单如下:
-
空闲状态下的应用内存消耗;
-
中等规格状态下的应用内存消耗;
-
满规格状态下的应用内存消耗;
-
应用内存峰值;
-
应用内存泄露;
-
应用是否常驻内存;
-
压力测试后的内存使用。
2、CPU:
-
使用top命令view plaincopy在CODE上查看代码片派生到我的代码片
-
adbshell top |grep packagename>/address/CPU.txt来获取。
3、流量: -
网络流量测试是针对大部分应用而言的,可能还有部分应用会关注网速、弱网之类的测试。
-
流量测试包括以下测试项:
-
应用首次启动流量提示;
-
应用后台连续运行2小时的流量值;
-
应用高负荷运行的流量峰值。
4、电量: -
测试手机安装目标APK前后待机功耗无明显差异;
-
常见使用场景中能够正常进入待机,待机电流在正常范围内;
-
长时间连续使用应用无异常耗电现象。
5、启动速度: -
第一类:首次启动–应用首次启动所花费的时间;
-
第二类:非首次启动–应用非首次启动所花费的时间;
-
第三类:应用界面切换–应用界面内切换所花费的时间。
6、滑动速度、界面切换速度
7、与服务器交互的网络速度
5、测试结束的标准是什么?
-
测试用例执行完毕,用例通过率>98%;
-
测试遗留缺陷不存在级别为严重的bug,且遗留bug不影响版本发布。例如一些界面显示排版问题可以遗留我们公司项目结束的标准是:
-
测试用例回归测试已经全部执行,
-
bug都已被确认,暂缓的bug也有详尽的解释,
-
测试报告、测试总结完成,
-
项目处于试运行或者上线阶段。但是,测试是没有止境的,只能说是相对完成,毕竟就算是上线了,也会出现多多少少的bug出现
-
6、软件测试生命周期
- 需求的了解
- 测试计划
- 测试需求分析
- 测试设计
- 测试脚本
- 执行测试
- 测试总结
7、简述缺陷的生命周期
测试人员应该跟踪一个Bug的整个生命周期,从Open到Closed的所有状态。
- New:新发现的Bug,未经评审决定是否指派给开发人员进行修改。
- Open:确认是Bug,并且认为需要进行修改,指派给相应的开发人员。
- Fixed:开发人员进行修改后标识成修改状态,有待测试人员的回归测试验证。
- Rejected:如果认为不是Bug,则拒绝修改。
- Delay:如果认为暂时不需要修改或暂时不能修改,则延后修改。
- Closed:修改状态的Bug经测试人员的回归测斌验证通过,则关闭Bug。
Reopen:如果经验证Bug仍然存在,则需要重新打开Bug,开发人员重新修改。
- Closed:修改状态的Bug经测试人员的回归测斌验证通过,则关闭Bug。
- 无效的bug:open —> closed open — rejected — closed
8、你是怎样保证软件质量的,也就是说你觉得怎样才能最大限度的保证软件的质量
- 首先,测试并不能够最大限度的保证软件的质量,软件的高质量是开发和设计出来的
- 其中包括:
- 对软件开发过程进行严格监控,使开发的各个 阶段都按照指定的规程进行
- 对各个阶段的产物进行评审
- QA对流程进行监控,对功能和配置进行审计,以达到开发最优化
- 测试人员
- 1,巩固测试流程,严格按照规定和计划完成软件测试内容
大家的测试技能和测试理念可能有所不同,避免意见不统一而耽误扰乱测试进程
- 2,注重个人技能的提升
包括测试用例的编写能力,各种测试辅助工具的使用能力,以更高效更全面的实施测试
- 3,建立和巩固测试理念
与第一点观点一致,这也是从测试人员向QA转化的关键点
9、目前主要的测试用例设计方法是什么
等价类、边界值、判定表、场景法、错误推断法·····
10、给你一个网站,你如何测试?
1.查找的需求描述,网站设计等相关文档,分析测试的需求。
2.制定测验计划,确认测验范围和测验战略,通常由下列部分组成:功能性测试;界面测试;性能测试;数据库测试;安全性测试;兼容性测试