测试基础知识

测试基础知识

 

(1)测试分为哪几个分类或阶段?

一般来说分为5个阶段:单元测试、集成测试、系统测试、回归测试,验收测试

 

(2) 单元测试的测试对象、目的、测试依据、测试方法?

  • 测试对象:模块内部的程序错误,
  • 目的是消除局部模块逻辑和功能上的错误和缺陷。
  • 测试依据:模块的详细设计
  • 测试方法:白盒测试。

 

(3) 测试的策略有哪些?

黑盒/白盒/灰盒,静态/动态,手工/自动,冒烟测试,回归测试,公测(Beta测试的策略)

  • 按测试策略分类:静态与动态测试、黑盒与白盒测试、手工和自动测试、冒烟测试、回归测试;
  • 按测试阶段分类:单元测试、集成测试、系统测试;
  • 其他常见测试方法:1、功能测试 2、性能测试 3、压力测试 4、负载测试 5、易用性测试 6、安装测试 7、界面测试

 

(4)简述什么是静态测试、动态测试、黑盒测试、白盒测试、α测试、β测试。

  • 静态测试是不运行程序本身而寻找程序代码中可能存在的错误或评估程序代码的过程。

  • 动态测试是实际运行被测程序,输入相应的测试实例,检查运行结果与预期结果的差异,判定执行结果是否符合要求,从而检验程序的正确性和可靠性,并分析系统运行效率和健壮性等性能。

  • 黑盒测试,把被测试的程序当作一个黑盒,不考虑其内部结构,在知道该程序的输入和输出之间的关系或程序功能的情况下,依靠软件规格说明书来确定测试用例和推断测试结果的正确性。目的是检测软件的各个功能是否能得以实现

  • 白盒测试也称为结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试,是基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量。

  • α测试是由一个用户在开发者的场所进行的测试(请到公司来玩游戏,)在一个受控的环境中进行。在开发者的指导下进行测试(内测)。
    Beta测试不能由程序员或测试员完成

  • β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场(公测)
     

(5) 目前主要的测试用例设计方法是什么?

白盒测试逻辑覆盖、循环覆盖、基本路径覆盖
白盒测试:也称为结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试,是基于代码的测试
常用白盒测试方法:

  • 静态测试:不用运行程序的测试;
  • 动态测试:需要执行代码,通过运行程序找到问题;

逻辑覆盖包括:

  • 语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖

黑盒测试:黑盒测试也称功能测试。把程序看作一个不能打开的黑盆子,不考虑程序内部结构,对程序接口进行测试。“黑盒”法着眼于程序外部结构、目的是检测软件的各个功能是否能得以实现

  • 常用的黑盒测试方法:

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

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

因果图法;
场景法;
正交实验设计法;
判定表驱动分析法;
错误推测法;
功能图分析法。**

 

(6) 单元测试、集成测试、系统测试 区别

  • 粒度不同:
    单元测试粒度最小,集成测试粒度居中,系统测试粒度最大。
  • 测试方式不同:
    单元测试一般由开发小组采用白盒方式来测试,集成测试一般由开发小组采用白盒加黑盒的方式来测试,系统测试一般由独立测试小组采用黑盒方式来测试。
  • 测试内容不同:
    单元测试主要测试单元是否符合“设计”,集成测试既验证“设计”,又验证“需求”,系统测试主要测试系统是否符合“需求规格说明书”。
  • 使用阶段不同:
    单元测试为开发人员在开发阶段要做的事情,集成测试和系统测试为测试人员在测试周期内级层做的工作。

 

(7)软件测试的流程是什么?

  • 需求调查:全面了解,应用领域、开发周期、开发环境、功能,性能,质量,测试要求等。根据系统概况进行项目所需的人员、时间和工作量的估计。

  • 制定初步的项目计划。

  • 测试准备:组织测试团队、培训、建立测试和管理环境等。

  • 测试设计:按照测试要求进行每个测试项的测试设计。

  • 测试实施:按照测试计划实施测试。

  • 测试评估:根据测试的结果,出具测试评估报告。

 

(8)软件生存周期及其模型是什么?

软件生存周期又称为软件生命期,生存期。是指从形成开发软件概念起,到开发的软件使用以后,直到失去使用价值消亡为止的整个过程。一般来说,整个生存周期包括计划(定义)、开发、运行(维护)三个时期。

 

(9)一台客户端有300个客户 与 300个客户端有300个客户对服务器施压,有什么区别?

  • 300个用户在一个客户端上,需要更大的带宽,并且会占用客户机更多的资源,影响测试的结果。线程之间可能发生干扰,而产生一些异常。
  • IP地址的问题,可能需要使用IP Spoof来绕过服务器对于单一IP地址最大连接数的限制。
  • 所有用户在一个客户端上,不必考虑分布式管理的问题,而用户分布在不同的客户端上,需要考虑使用控制器来整体调配不同客户机上的用户。

 

(10)负载测试和压力测试区别

压力测试:

  • 检查系统在瞬间峰值负荷下的正确执行能力。例如,对服务器做压力测试时就可以增加并发操作的用户数量;或者向服务器不停发送请求或特别大的数据等;看看服务器保持正常运行所能达到的最大状态。如模拟上万个用户从终端同时登录,这是压力测试中常常使用的方法。

负载测试:

  • 用于检查系统在使用大量数据的时候正确工作的能力,即检验系统的能力最高能达到什么程度。例如,对于信息检索系统,让它使用频率达到最大;对于多个终端的分时系统,让它所有的终端都开动。

 

(11)什么是兼容型测试?兼容性测试侧重哪些方面?

  • 兼容测试主要是检查软件在不同的硬件平台、软件平台上是否可以正常的运行,即是通常说的软件的可移植性。
  • 兼容测试的重点是,对兼容环境的分析。通常,是在运行软件的环境不是很确定的情况下,才需要做兼容。根据需求文档,把用户的使用环境整理成表单,就得出做兼容测试的兼容环境了。

 

(12)测试和开发需要怎么结合

测试和开发应该按照W模型的方式进行结合,测试和开发同步进行,能够尽早发现软件缺陷,降低软件开发的成本。

在这里插入图片描述

在V模型中,测试过程被加在开发过程的后半部分,

  • 单元测试:检测代码的开发是否符合详细设计的要求。
  • 集成测试:检测此前已测试过的各组成部分是否能完好地结合到一起。
  • 系统测试:检测已集成在一起的产品是否符合系统规格说明书的要求。
  • 验收测试:检测产品是否符合最终用户的需求。

V模型的缺陷:

  • 测试在需求分析、系统设计及编码之后,忽视了对它们的验证,因此需求阶段的缺陷很可能在后期的验收测试才被发现。

    在这里插入图片描述

相对于V模型,W模型增加了软件各开发阶段中应同步进行的验证和确认活动。

W模型强调:

  • 测试与开发全期同步进行,而且测试的对象不仅仅是程序,需求、设计等同样要测试。W模型有利于尽早地全面的发现问题,及早制定应对措施,这将显著减少总体测试时间,加快项目进度。

 

(13)手工测试与自动化测试的优缺点

手工测试:测试人员执行测试用例不使用任何自动化工具(俗称点点点)

  • 优点:
    测试人员可根据经验,审美,是非判断和对错误的猜测。
    缺点:
  • 过于依赖于测试人员的能力,重复的测试,代价昂贵、容易出错。

自动化测试:通过自动化工具执行定制好的测试脚本来进行测试
优点:

  • 对程序的回归测试更方便。
  • 可以在短时间内进行更多且繁琐的测试。
  • 可以执行一些手工测试困难或不可能进行的测试。
  • 将繁琐的任务自动化可以更好地利用资源。
  • 测试的脚本技术具有复用性。

缺点:

  • 不能取代手工测试
  • 手工测试比自动测试发现的缺陷更多
  • 对测试质量的依赖性极大
  • 不能提高有效性。
  • 工具本身并无想像力

 

(14)请你说一下如何写测试用例

  • 测试人员尽早介入,彻底理解清楚需求,这个是写好测试用例的基础
  • 如果以前有类似的需求,可以参考类似需求的测试用例。
  • 清楚输入、输出的各种可能性,以及各种输入的之间的关联,理解清楚需求的执行逻辑,通过等价类、边界值、判定表等方法找出大部分用例
  • 根据自己的经验分析遗漏的测试场景,补充测试用例
  • 多总结,书写格式一定要清晰

 

闲聊问题(测试很喜欢问)
 

(1)你的测试职业发展是什么?

测试经验越多,测试能力越高。所以我的职业发展是需要时间积累的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年积累测试经验,按如何做好测试工程师的要点去要求自己,不断更新自己改正自己,做好测试任务。
优势在于我对测试坚定不移的信心和热情,虽然经验还不够,但测试需要的基本技能我有信心在工作中得以发挥。

 

(2)你认为测试人员需要具备哪些素质

做测试应该要有一定的协调能力,因为测试人员经常要与开发接触处理一些问题,如果处理不好的话会引起一些冲突,这样的话工作上就会不好做。还有测试人员要有一定的耐心,有的时候做测试很枯燥乏味。除了耐心,测试人员不能放过每一个可能的错误。

 

(3)你为什么能够做测试这一行

虽然我的测试技术还不是很成熟,但是我觉得我还是可以胜任软件测试这个工作的,因为做软件测试不仅是要求技术好,还有有一定的沟通能力,耐心、细心等外在因素。综合起来看我认为我是胜任这个工作的。

 

(4)测试的目的是什么?

测试的目的是找出软件产品中的错误,是软件尽可能的符合用户的要求。当然软件测试是不可能找出全部错误的。

 

(5)怎样看待加班问题

我觉得 任何一家单位都有可能要加班。如果自己的工作没有按时完成,那自觉加班是理所当然的,当然,自己要不断提高工作效率,避免这种原因导致的加班。如果遇到紧急任务或者突发状况时,为了顺利配合团队完成任务,我会尽自己所能加班共同完成。

 

(6)结合你以前的学习和工作经验,你认为如何做好测试。

根据我以前的工作和学习经验,我认为做好工作首先要有一个良好的沟通,只有沟通无障碍了,才会有好的协作,才会有更好的效率,再一个就是技术一定要过关,做测试要有足够的耐心,和一个良好的工作习惯,不懂的就要问,实时与同事沟通这样的话才能做好测试工作。

 

(7)你为什么选择软件测试行业

  • 由于国内软件企业对软件测试技术的认知比较晚,因此在这方面的专业人才在国内非常短缺,理论上开发和测试应该1:1的,但是软件测试人才却不足需求量的1/10,而现在供与求的差距还在进一步拉大。
  • 由于用户对产品质量需求的提升,所以对测试的技术和流程有了更高的要求,测试不再仅仅是发现错误,它涉及的范围更广,所以测试人员在企业内部职能只会越来越重要,特别是北上广深等一带,而其他城市也会陆续跟上发展。所以,软件测试的前景只会是越来越好。

 

(8)根据你以前的工作或学习经验描述一下软件开发、测试过程,由哪些角色负责,你做什么

要有架构师、开发经理、测试经理、程序员、测试员。我在里面主要是负责所分到的模块执行测试用例。

 

(9)根据你的经验说说你对软件测试/质量保证的理解

软件质量保证与测试是根据软件开发阶段的规格说明和程序的内部结构而精心设计的一批测试用例(即输入数据和预期的输出结果),并根据这些测试用例去运行程序,以发现错误的过程。它是对应用程序的各个方面进行测试以检查其功能、语言有效性及其外观排布。

 

(10) 职业规划

  • 在工作的第一个阶段,先尽快适应工作的环境,包括测试环境和测试工具等,把自己负责的部分快速的完成,不能出差错。
  • 第二个阶段要熟悉整个业务流程,所有模块的结构和依赖关系,知道每个模块为什么要这么设计,该具体去怎么测试
  • 第三个阶段要培养团队协作意识,可以独立或者在别人的协作下完成整个测试项目。

在工作和项目中多写博客或者笔记,积累技术影响力,将经验总结成文档。同时与同事搞好关系。

 

(11)软件测试的核心竞争力

测试人员的核心竞争力在于

  • 提早发现问题,问题发现的越早,解决的成本越低。
  • 并能够发现别人无法发现的问题,别人发现不了,而你可以发现,那么你就是无法被替代。

 

微信红包功能测试

功能测试

  • 在红包钱数,和红包个数的输入框中只能输入数字
  • 红包里最多和最少可以输入的钱数 200 0.01
  • 拼手气红包最多可以发多少个红包 100、超过最大拼手气红包的个数是否有提醒
  • 当红包钱数超过最大范围是不是有对应的提示
  • 当发送的红包个数超过最大范围是不是有提示
  • 当余额不足时,红包发送失败
  • 在红包描述里是否可以输入汉字,英文,符号,表情,纯数字,汉字英语符号,是否可以输入它们的混合搭配
  • 输入红包钱数是不是只能输入数字
  • 红包描述里许多能有多少个字符 10个
  • 红包描述,金额,红包个数框里是否支持复制粘贴操作
  • 红包描述里的表情可以删除
  • 发送的红包别人是否可以领取、发的红包自己可不可以领取 2人
  • 24小时内没有领取的红包是否可以退回到原来的账户、超过24小时没有领取的红包,是否还可以领取
  • 用户是否可以多次抢一个红包
  • 发红包的人是否还可以抢红包 多人
  • 红包的金额里的小数位数是否有限制
  • 可以按返回键,取消发红包
  • 断网时,无法抢红包
  • 可不可以自己选择支付方式
  • 余额不足时,会不会自动匹配支付方式
  • 在发红包界面能否看到以前的收发红包的记录
  • 红包记录里的信息与实际收发红包记录是否匹配
  • 支付时可以密码支付也可以指纹支付
  • 如果直接输入小数点,那么小数点之前应该有个0
  • 支付成功后,退回聊天界面
  • 发红包金额和收到的红包金额应该匹配
  • 是否可以连续多次发红包
  • 输入钱数为0,"塞钱进红包"置灰

性能测试

  • 弱网时抢红包,发红包时间
  • 不同网速时抢红包,发红包的时间
  • 发红包和收红包成功后的跳转时间
  • 收发红包的耗电量
  • 退款到账的时间

兼容测试

  • 苹果,安卓是否都可以发送红包
  • 电脑端可以抢微信红包

界面测试

  • 发红包界面没有错别字
  • 抢完红包界面没有错别字
  • 发红包和收红包界面排版合理,
  • 发红包和收到红包界面颜色搭配合理

安全测试

  • 对方微信号异地登录,是否会有提醒 2人
  • 红包被领取以后,发送红包人的金额会减少,收红包金额会增加
  • 发送红包失败,余额和银行卡里的钱数不会少
  • 红包发送成功,是否会收到微信支付的通知

易用

  • 红包描述,可以通过语音输入
  • 可以指纹支付也可以密码支付

 

23. 反问

技术面反问:

岗位主要负责的工作
从规划到完成任务的工作流程是什么?
最常用的技术
还需要学习哪些内容
最近半年工作压力最大的时候,面临什么情况?
平时团队内是如何沟通交流的和分配任务的?
不能在预期时间内完成工作会怎样?
团队正在经历的尚未解决的挑战是什么?
HR面反问:

部门的组织架构是怎么样的
岗位的考核标准
试用期的情况
针对新员工有哪些培训
五险一金缴纳情况
年假、事假、病假、产假等每年都有多少天?
公司的晋升通道和晋升机制是怎样的?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340