软件测试面试最全八股文

请你说一说测试用例的边界
参考回答:
边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。

常见的边界值

1)对16-bit 的整数而言 32767 和 -32768 是边界

2)屏幕上光标在最左上、最右下位置

3)报表的第一行和最后一行

4)数组元素的第一个和最后一个

5)循环的第 0 次、第 1 次和倒数第 2 次、最后一次

● 请你说一下软件质量的六个特征
参考回答:
按照软件质量国家标准GB-T8566--2001G,软件质量可以用下列特征来评价:

a.功能特征:与一组功能及其指定性质有关的一组属性,这里的功能是满足明确或隐含的需求的那些功能。

b.可靠特征:在规定的一段时间和条件下,与软件维持其性能水平的能力有关的一组属性。

c.易用特征:由一组规定或潜在的用户为使用软件所需作的努力和所作的评价有关的一组属性。

d.效率特征:与在规定条件下软件的性能水平与所使用资源量之间关系有关的一组属性。

e.可维护特征:与进行指定的修改所需的努力有关的一组属性。

f.可移植特征:与软件从一个环境转移到另一个环境的能力有关的一组属性。

● 请你说一下设计测试用例的方法
参考回答:
黑盒测试:

1.等价类划分

等价类划分是将系统的输入域划分为若干部分,然后从每个部分选取少量代表性数据进行测试。等价类可以划分为有效等价类和无效等价类,设计测试用例的时候要考虑这两种等价类。

2.边界值分析法

边界值分析法是对等价类划分的一种补充,因为大多数错误都在输入输出的边界上。边界值分析就是假定大多数错误出现在输入条件的边界上,如果边界附件取值不会导致程序出错,那么其他取值出错的可能性也就很小。

边界值分析法是通过优先选择不同等价类间的边界值覆盖有效等价类和无效等价类来更有效的进行测试,因此该方法要和等价类划分法结合使用。

3.正交试验法

正交是从大量的试验点中挑选出适量的、有代表性的点。正交试验设计是研究多因素多水平的一种设计方法,他是一种基于正交表的高效率、快速、经济的试验设计方法。

4.状态迁移法

状态迁移法是对一个状态在给定的条件内能够产生需要的状态变化,有没有出现不可达的状态和非法的状态,状态迁移法是设计足够的用例达到对系统状态的覆盖、状态、条件组合、状态迁移路径的覆盖。

5.流程分析法

流程分析法主要针对测试场景类型属于流程测试场景的测试项下的测试子项进行设计,这是从白盒测试中路径覆盖分析法借鉴过来的一种很重要的方法。

6.输入域测试法

输入域测试法是针对输入会有各种各样的输入值的一个测试,他主要考虑 极端测试、中间范围测试,特殊值测试 。

7.输出域分析法

输出域分析法是对输出域进行等价类和边界值分析,确定是要覆盖的输出域样点,反推得到应该输入的输入值,从而构造出测试用例,他的目的是为了达到输出域的等价类和边界值覆盖。

8.判定表分析法

判定表是分析和表达多种输入条件下系统执行不同动作的工具,他可以把复杂的逻辑关系和多种条件组合的情况表达的即具体又明确;

9.因果图法

因果图是用于描述系统输入输出之间的因果关系、约束关系。因果图的绘制过程是对被测系统的外部特征的建模过程,根据输入输出间的因果图可以得到判定表,从而规划出测试用例。

10.错误猜测法

错误猜测法主要是针对系统对于错误操作时对于操作的处理法的猜测法,从而设计测试用例

11.异常分析法

异常分析法是针对系统有可能存在的异常操作,软硬件缺陷引起的故障进行分析,分析发生错误时系统对于错误的处理能力和恢复能力依此设计测试用例。

白盒测试:

白盒测试也称为结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试。它根据程序的控制结构设计测试用例,主要用于软件或程序验证。白盒测试法检查程序内部逻辑结构,对所有的逻辑路径进行测试,是一种穷举路径的测试方法,但即使每条路径都测试过了,但仍然有可能存在错误。因为:穷举路径测试无法检查出程序本身是否违反了设计规范,即程序是否是一个错误的程序;穷举路径测试不可能检查出程序因为遗漏路径而出错;穷举路径测试发现不了一些与数据相关的错误。

白盒测试需要遵循的原则有:1. 保证一个模块中的所有独立路径至少被测试一次;2. 所有逻辑值均需要测试真(true)和假(false);两种情况;3. 检查程序的内部数据结构,保证其结构的有效性;4. 在上下边界及可操作范围内运行所有循环。

常用白盒测试方法:

静态测试:不用运行程序的测试,包括代码检查、静态结构分析、代码质量度量、文档测试等等,它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具(Fxcop)自动进行。

动态测试:需要执行代码,通过运行程序找到问题,包括功能确认与接口测试、覆盖率分析、性能分析、内存分析等。

白盒测试中的逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。六种覆盖标准发现错误的能力呈由弱到强的变化:

1.语句覆盖每条语句至少执行一次。

2.判定覆盖每个判定的每个分支至少执行一次。

3.条件覆盖每个判定的每个条件应取到各种可能的值。

4.判定/条件覆盖同时满足判定覆盖条件覆盖。

5.条件组合覆盖每个判定中各条件的每一种组合至少出现一次。

6.路径覆盖使程序中每一条可能的路径至少执行一次。

● 请你说一说测试工程师的必备技能
参考回答:
需要的知识:

•    软件测试基础理论知识,如黑盒测试、白盒测试等;

•    编程语言基础,如C/C++、java、python等;

•    自动化测试工具,如Selenium、Appium、Robotium等;

•    计算机基础知识,如数据库、Linux、计算机网络等;

•    测试框架,如JUnit等。

需要具备的能力:

•    业务分析能力,分析整体业务流程、分析被测业务数据、分析被测系统架构、分析被测业务模块、分析测试所需资源、分析测试完成目标;

•    缺陷洞察能力,一般缺陷的发现能力、隐性问题的发现能力、发现连带问题的能力、发现问题隐患的能力、尽早发现问题的能力、发现问题根源的能力;

•    团队协作能力,合理进行人员分工、协助组员解决问题、配合完成测试任务、配合开发重现缺陷、督促项目整体进度、出现问题勇于承担;

•    专业技术能力,掌握测试基础知识、掌握计算机知识、熟练运用测试工具;

•    逻辑思考能力,判断逻辑的正确性、对可行性逻辑分析、站在客观角度思考;

•    问题解决能力,技术上的问题、工作中的问题、沟通问题;

•    沟通表达能力,和技术人员、产品人员、上下级的沟通;

•    宏观把控能力,有效控制测试时间、有效控制测试成本、有效制定测试计划、有效进行风险评估、有效控制测试方向。

● 请你说一下app性能测试的指标
参考回答:
1、内存:内存消耗测试节点的设计目标是为了让应用不占用过多的系统资源,且及时释放内存,保障整个系统的稳定性。当然关于内存测试,在这里我们需要引入几个概念:空闲状态、中等规格、满规格。

空闲状态指打开应用后,点击home键让应用后台运行,此时应用处于的状态叫做空闲;中等规格和满规格指的是对应用的操作时间的间隔长短不一,中等规格时间较长,满规格时间较短。

内存测试中存在很多测试子项,清单如下:

●空闲状态下的应用内存消耗;

●中等规格状态下的应用内存消耗;

●满规格状态下的应用内存消耗;

●应用内存峰值;

●应用内存泄露;

●应用是否常驻内存;

●压力测试后的内存使用。

2、CPU:

使用Android提供的view plaincopy在CODE上查看代码片派生到我的代码片

adbshell dumpsys CPUinfo |grep packagename >/address/CPU.txt来获取;

使用top命令view plaincopy在CODE上查看代码片派生到我的代码片

adbshell top |grep packagename>/address/CPU.txt来获取。

3、流量:

网络流量测试是针对大部分应用而言的,可能还有部分应用会关注网速、弱网之类的测试。

流量测试包括以下测试项:

应用首次启动流量提示;

应用后台连续运行2小时的流量值;

应用高负荷运行的流量峰值。

4、电量:

●测试手机安装目标APK前后待机功耗无明显差异;

●常见使用场景中能够正常进入待机,待机电流在正常范围内;

●长时间连续使用应用无异常耗电现象。

5、启动速度:

第一类:首次启动--应用首次启动所花费的时间;

第二类:非首次启动--应用非首次启动所花费的时间;

第三类:应用界面切换--应用界面内切换所花费的时间。

6、滑动速度、界面切换速度

7、与服务器交互的网络速度

● 请你说一说app测试的工具
参考回答:
功能测试自动化

a) 轻量接口自动化测试

jmeter,

b) APP UI层面的自动化

android:UI Automator Viewer,Android Junit,Instrumentation,UIAutomator,

iOS:基于Instrument的iOS UI自动化,

性能测试

a) Web前端性能测试

网络抓包工具:Wireshark

网页文件大小

webpagetest

pagespeed insight

chrome adb

b) APP端性能测试

Android内存占用分析:MAT

iOS内存问题分析:ARC模式

Android WebView性能分析:

iOS WebView性能分析

c) 后台服务性能测试

负载,压力,耐久性

可拓展性,基准

工具:apacheAB,Jmeter,LoadRunner,

专项测试

a) 兼容性测试

手工测试:操作系统,分辨率,rom,网络类型

云平台:testin,脚本编写,Android。

b) 流量测试

Android自带的流量管理,

iOS自带的Network

tcpdump抓包

WiFi代理抓包:Fiddler

流量节省方法:压缩数据,json优于xml;WebP优于传统的JPG,PNG;控制访问的频次;只获取必要的数据;缓存;

c) 电量测试

基于测试设备的方法,购买电量表进行测试。

GSam Battery Monitoe Pro

iOS基于Instrument Energy工具

d) 弱网络测试

手机自带的网络状况模拟工具

基于代理的弱网络的模拟:

工具:windows:Network Delay Simulator

Mac:Network Link Conditioner

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/190381.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Grub编译与调试

Grub编译与调试 文章目录 Grub编译与调试1. Grub编译2. Grub文件生成2.1 grub.efi2.2 grub.cfg2.3 将grub安装至UEFI引导界面 3. GRUB界面4. 编辑GRUB选项5. 手动找grub.cfg6. 没有grub.cfg的情况下引导内核7. Grub增加串口7.1 使能串口7.2 使能串口输入 8. Grub打开debug 1. G…

springboot启动项目自动动态加载数据库的groovy脚本

将groovy脚本保存在数据库中,页面支持动态增删改查,启动springboot项目时,从数据库中读取groovy配置表,然后编译脚本,项目中就可以直接调用使用脚本。 开发环境:springbootMybatisPlus 脚本实体类&#x…

c++ 的几种用法

1. 声明引用:别名 改变ref a 都修改源数据 源地址数值 int a 10; int& ref a; // 声明一个引用变量ref,它引用了变量a 为什么要用别名: 1 给变量起一个更容易理解的名子 2 给函数/方法 传参 取这个参数的地址的值 修改的是源数据值 更高效 不多用…

TD-LTE通信

TD-LTE 目录 1 TD-LTE的发展历程 2 1.1 第一代移动通信系统 2 1.2 第二代移动通信系统 2 1.3 第三代移动通信系统 2 1.4 第四代移动通信系统 3 2 TD-LTE简析概述 3 2.1 TD-LTE概念 3 2.2 TD-LTE的特点 3 2.3 TD-LTE的优缺点 4 2.3.1 优点 4 2.3.2 缺点 4 2.4 TD-LTE规模试验需…

mysql-binlog,redolog 和 undolog区别

binlog MySQL的binlog(二进制日志 或 归档日志)是一种记录数据库的更改操作的日志。它包含了对数据库进行的插入、更新和删除操作的详细信息。binlog是以二进制格式存储,可以用于恢复数据库、数据复制和数据同步等操作。具体来说&#xff0c…

工业机器视觉megauging(向光有光)使用说明书(五,轻量级的visionpro)

这个说明主要介绍抓线功能。 第一步,添加线工具,鼠标双击工具箱“抓线”,出现如下界面: 第二步,我们拉一条,“九点标定”到“抓线1”的线,和visionpro操作一样: 第三步,…

torch中的随机数种子

如何在torch生成随机数时,设置随机种子,要求每次调用生成的随机数都一样 在 PyTorch 中,可以使用 torch.manual_seed(seed) 函数设置随机种子,以确保每次运行代码时生成的随机数都一样。 以下是一个示例代码,展示了如…

vue循环v-for遍历图表

循环遍历图表 index.vue主页面 <view v-if"powerPage"><view v-for"(item, index) in powerDetailsData.addMap" :key"index"><PowerEChartsCity:echartData"powerDetailsData.addMap[index]"></PowerEChartsC…

LeetCode 1094. 拼车:优先队列

【LetMeFly】1094.拼车&#xff1a;优先队列 力扣题目链接&#xff1a;https://leetcode.cn/problems/car-pooling/ 车上最初有 capacity 个空座位。车 只能 向一个方向行驶&#xff08;也就是说&#xff0c;不允许掉头或改变方向&#xff09; 给定整数 capacity 和一个数组…

【JavaSE学习专栏】第03篇 数组

文章目录 1 数组的定义2 数组声明创建3 数组的初始化4 数组的四个基本特点5 数组边界6 数组的使用7 多维数组8 Arrays类9 冒泡排序9.1 原理9.2 代码实现 10 数组插入算法10.1 问题10.2 分析10.3 代码 11 稀疏矩阵11.1 稀疏数组介绍 1 数组的定义 数组是相同类型数据的有序集合。…

备战春招——12.1 算法

动态规划 动态规划的核心思想就是 本次只由上一次决定。 爬楼梯 第3阶由&#xff08;第1节2&#xff09;和&#xff08;第二节1&#xff09;&#xff0c;不要想着往下迭代&#xff0c;不然那是个无穷底。所以f(x)f(x-1)f(x-2) (x>2)。所以就是当前只与上个操作相关。 cla…

Jmeter组件执行顺序与作用域

一、Jmeter重要组件 1&#xff09;配置元件---Config Element&#xff1a; 用于初始化默认值和变量&#xff0c;以便后续采样器使用。配置元件大其作用域的初始阶段处理&#xff0c;配置元件仅对其所在的测试树分支有效&#xff0c;如&#xff0c;在同一个作用域的任何采样器…

肖sir__mysql之单表练习题2__(2)

mysql之单表练习题 一.建表语句 create table grade(class int(4),chinese int(8),english int(4),math int(8),name varchar(20),age int(8),sid int(4)primary key auto_increment) DEFAULT charsetutf8; insert into grade(class,chinese,english,math,name,age)values(1833…

012 OpenCV sobel边缘检测

目录 一、环境 二、soble原理介绍 三、源码实验 一、环境 本文使用环境为&#xff1a; Windows10Python 3.9.17opencv-python 4.8.0.74 二、soble原理介绍 Sobel边缘检测是一种广泛应用于图像处理领域的边缘检测算法&#xff0c;它通过计算图像灰度函数在水平方向和垂直…

微服务--03--OpenFeign 实现远程调用 (负载均衡组件SpringCloudLoadBalancer)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 OpenFeign其作用就是基于SpringMVC的常见注解&#xff0c;帮我们优雅的实现http请求的发送。 RestTemplate实现了服务的远程调用 OpenFeign快速入门负载均衡组件Spr…

Java医院综合绩效考核系统支持主流绩效方案

医院绩效考核管理系统是采用B/S架构模式设计、使用JAVA语言开发、后台使用MySql数据库进行管理的一整套计算机应用软件。系统和his系统进行对接&#xff0c;按照设定周期&#xff0c;从his系统获取医院科室和医生、护士、其他人员工作量&#xff0c;对没有录入信息化系统的工作…

软件测试经典面试题分析——软件测试流程(第1天)

需求分析 跟同事之间探讨客户需求 对需求文档进行测试 互相交换想法 2、需求评审 如何评审 首先提前一天发邮件给格个参会人员&#xff0c;准备参与XXX项目需求评审 参与人员&#xff1a;产品经理&#xff0c;项目经理&#xff0c;研发负责人&#xff0c;研发小组成员&a…

【前端】html不渲染换行\n\t\r等的问题

方法一 string.replace(/\r\n/g,</br>) 方法二 推荐 使用 pre 元素 <style> /* 设置 white-space 样式 */ pre {white-space: pre-wrap; } </style><div><pre>{{sqlHtml}}</pre></div>pre 元素 <pre> 元素可定义预格式化…

Python学习路线 - Python语言基础入门 - 基础语法

Python学习路线 - Python语言基础入门 - 基础语法 字面量什么是字面量常用的值类型字符串 注释注释的作用注释的分类 变量什么是变量变量的特征 数据类型type()语句type()语句的使用方式数据类型转换 标识符什么是标识符标识符命名规则标识符命名规则 - 内容限定标识符命令规则…

基于docker容器部署JVM参数分析

基于docker容器部署JVM参数分析 公司项目推荐的 jvm 配置&#xff0c;简述下配置含义 -XX:UseContainerSupport -XX:MaxRAMPercentage75.0 -XX:InitialRAMPercentage75.0 -XX:MinRAMPercentage75.0 // JVM提供了MaxRAMPercentage,InitialRAMPercentage,MinRAMPercentage三…