【面经笔记】软件测试相关问题

为什么选择测试这行?

答:它是一个新兴的行业,有发展潜力,而且很锻炼人,需要掌握更多的技能,比做开发要更全面。


请问功能测试和性能测试的区别是什么?

答:1)测试目的:

功能测试:检测实际软件的功能是否符合用户需求,测功能是不是全部实现,某个实现是不是有BUG。主要为了发现以下几类错误:A、是否有不正确或遗漏的功能?B、功能实现是否满足用户需求和系统设计的隐藏需求?C、能否正确接收输入?能否正确输出结果?

性能测试:验证软件质量的三个质量特性,可靠性,正确性和效率。主要是测试产品的健壮性

2)测试方式:

功能测试按照系用例,按照系统需求说明书和测试用例,对产品的功能一步步进行测试。找出产品功能是否全部实现

性能测试:一般都使用性能工具对产品的健壮性进行评估。通过创建场景和虚拟用户模拟真实环境,进行压力测试和负载测试。


软件测试的流程是什么?

  需求调查:全面了解系统概况、应用领域、软件开发周期、软件开发环境、开发组织、时间安排、功能需求、性能需求、质量需求及测试要求等。根据系统概况进行项目所需的人员、时间和工作量估计以及项目报价。
  制定初步的项目计划。
  测试准备:组织测试团队、培训、建立测试和管理环境等。
  测试设计:按照测试要求进行每个测试项的测试设计,包括测试用例的设计和测试脚本的开发等。
  测试实施:按照测试计划实施测试。
  测试评估:根据测试的结果,出具测试评估报告。
  


你所熟悉的软件测试类型有哪些?

  测试类型有:功能测试、性能测试、界面测试
  功能测试在测试工作中占有比例最大,功能测试也叫黑盒测试。
  性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。
  界面测试,界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。
  区别在于,功能测试关注产品的所有功能,要考虑到每个细节功能,每个可能存在的功能问题。性能测试主要关注产品整体的多用户并发下的稳定性和健壮性。界面测试则关注与用户体验相关内容,用户使用该产品的时候是否已用,是否易懂,是否规范(用户无意输入无效的数据,当然考虑到体验性,不能太粗鲁的弹出警告)。做某个性能测试的时候,首先它可能是个功能点,首先要保证她的功能是没有问题的,然后再考虑性能的问题。
 
 


你认为做好测试用例设计工作的关键是什么

  白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结构。黑盒测试用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题。软件的黑盒测试意味着测试要在软件的接口处进行,这种方法是把测试对象看作是一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或者数据驱动测试。黑盒测试主要是为了发现以下几类错误:、
  1-是否有不正确或遗漏的功能
  2-在接口上,输入是否能正确的接受?能否输出正确的结果。
  3-是否有数据结构错误或外部信息(例如数据文件)访问错误
  4-性能上是否能够满足要求
  5-是否有初始化或终止性错误
  软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看作一个打开的盒子,它允许测试人员利用程序内部的逻辑结构和有关信息,设计或者选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一直。因此白盒测试又称为结合测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查:
  1-对程序模块的所有独立的执行路径至少测试一遍。
  2-对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。
  3-在循环的边界和运行的界限内执行循环体。
  4-测试内部数据结构的有效性,等等。
  


25、请详细介绍一下各种测试类型的含义

  1-单元测试(模块测试)是开发者编写的一小段代码,用于检验被测试代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。单元测试是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了证明这段代码的行为和我们期望的一致。
  2-集成测试(也叫组装测试、联合测试)是单元测试的逻辑扩展。它最简单的形式是:两个已经经过测试的单元组合成一个组件,并且测试它们之间的接口。从这一层上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。
  3-系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中制定功能的有效方法。(常见的联调测试)。系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求而遵循系统设计。
  4-验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,并且可以让用户将其执行软件的既定功能和任务。验收测试是向未来的用户表明系统能够像预订要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是验收测试的任务,即软件的功能和性能如同用户所合理期待的那样。
  


26、测试计划工作的目的是什么?测试计划工作的内容都包括什么?其中哪些是最重要的?

  软件测试计划是知道测试过程的纲领性文件,包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。


配置和兼容性测试的区别是什么?

  配置测试的目的是保证软件在其相关的硬件上能够正常运行,而兼容性测试主要是测试软件能否与不同的软件正确协作。
  配置测试的核心内容就是使用各种硬件来测试软件的运行情况,一般包括:
  (1)软件在不同的主机上的运行情况,例如Dell和Apple;
  (2)软件在不同的组件上的运行情况,例如开发的拨号程序要测试在不同厂商生产的Modem上的运行情况;
  (3)不同的外设;
  (4)不同的接口;
  (5)不同的可选项,例如不同的内存大小;
  兼容性测试的核心内容:
  (1)测试软件是否能在不同的操作系统平台上兼容;
  (2)测试软件是否能在同一操作系统平台的不同版本上兼容;
  (3)软件本身能否向前或者向后兼容;
  (4)测试软件能否与其它相关的软件兼容;
  (5)数据兼容性测试,主要是指数据能否共享;
  配置和兼容性测试通称对开发系统类软件比较重要,例如驱动程序、操作系统、数据库管理系统等。具体进行时仍然按照测试用例来执行


常见的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。

  1-等价类划分
  常见的软件测试面试题划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.
  2-边界值分析法
  边界值分析方法是对等价类划分方法的补充。测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.
  使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.
  3-错误推测法
  基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.
  错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例-例如, 在单元测试时曾列出的许多在模块中常见的错误-以前产品测试中曾经发现的错误等, 这些就是经验的总结。还有, 输入数据和输出数据为0的情况。输入表格为空格或输入表格只有一行-这些都是容易发生错误的情况。可选择这些情况下的例子作为测试用例.
  4-因果图方法
  前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等-考虑输入条件之间的相互组合,可能会产生一些新的情况-但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多-因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例-这就需要利用因果图(逻辑模型)-因果图方法最终生成的就是判定表-它适合于检查程序输入条件的各种组合情况.
  5-正交表分析法
  有时候,可能因为大量的参数的组合而引起测试用例数量上的激增,同时,这些测试用例并没有明显的优先级上的差距,而测试人员又无法完成这么多数量的测试,就可以通过正交表来进行缩减一些用例,从而达到尽量少的用例覆盖尽量大的范围的可能性。
  6-场景分析方法
  指根据用户场景来模拟用户的操作步骤,这个比较类似因果图,但是可能执行的深度和可行性更好。
  


50、您认为做好测试用例设计工作的关键是什么?

  白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果
  黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题


如何测试qq软件?

1、 配置测试

配置测试的目的是保证软件在其相关的硬件上能够正常运行。
配置测试的核心内容就是使用各种硬件来测试软件的运行情况,一般包括:

  (1)软件在不同的机器上的运行情况,例如不同型号的手机、电脑、平板、笔记本等;
  (3)不同的外设:如qq界面在不同显示器/屏,不同分辨率下的显示效果是否正常;
  (4)不同的接口
  (5)不同的配置可选项:例如不同的手机配置,电脑配置,如:cpu,gpu,内存;

2、兼容性测试

而兼容性测试主要是测试软件能否与不同的软件正确协作
兼容性测试的核心内容:

  (1)测试软件是否能在不同的操作系统平台上兼容:windows系统,linux系统,android系统,ios系统下是否正常运行。
  
  (2)测试软件是否能在同一操作系统平台的不同版本上兼容:不同版本的系统是否正常运行;
  
  (3)软件本身能否向前或者向后兼容:不同版本qq之间是否能正常通信,覆盖,更新,回滚;
  
  (4)测试软件能否与其它相关的软件兼容:不同版本的qq与各种不同版本的浏览器,文件管理器,不同版本的显卡驱动,不同版本的声卡驱动等之间的兼容性。

  (5)数据兼容性测试,主要是指数据能否共享:不同版本的qq是否可以共用数据包,如qq升级后,本地保存的历史消息是否能正常显示;

3、功能测试

测试qq软件需求文档所叙述的各项功能,如:发送接收文字,图片,视频,语音等。是否正常。

4、性能测试

负载测试和压力测试都属于性能测试。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试,可以理解为资源的极限测试。
负载测试是在固定测试环境,在其它测试角度(负载方面)不变的情况下,变化一个测试角度并持续增加压力,查看系统的性能曲线和处理极限,以及是否有性能瓶颈存在(拐点)。

对qq性能测试:
1、长时间运行是否出现异常
2、高频启动,同时运行多个客户端是否正常
3、同时与多个好友建立连接是否正常
4、高速发送消息,图片,语音,视频,
5、发送超长消息,图片,语音,视频等
6、网络状况差的情况下是否还能正常通信

5、单元测试
6、集成测试
7、系统测试
8、验收测试

9、安全测试


输入框测试

一般的讲,常见输入框测试应该可以分以下几种情况进行测试:

1、 唯一性
如:用户名注册,输入后即检查用户名是否已存在

2、 输入类型
1)字母(大写、小写)
2) 数字(整数、小数;正数、负数、0)
3)中文
4)特殊字符(包括xml敏感字符、json敏感字符)

3、 输入长度
1)允许输入范围
2)临界值
3)不允许输入范围

4、提示信息(对一些异常情况进行处理,主要检查提示的正确性、完备性、友好性等,一般是结合bottom 进行测试)

5、 兼容性
1) 不同浏览器的兼容性
2) 系统兼容性 (手机、电脑、平板等)
3)外设兼容性:不同分辨率下是否正常


测试百度输入框

1、兼容性测试:在不同浏览器,不同分辨率,不同放大倍数下的显示是否正常,能否正常输入
2、安全性测试:网络安全

3、功能测试:

搜索结果:内容是否重复,相关性,广告推广等
搜索限制:输入限制是否正常,不良信息是否过滤
搜索纠正:错别字,拼音检查
图片搜索:拖拽,本地上传,图片限制等

输入等价类:
输入长度:0,1,10,100
输入字符:字母,汉字,运算符,空格,TAB,回车,html标签等
输入方式:复制粘贴,键盘敲击
输入内容:图片,文字

4、性能测试


如何测试一个三角形是否是一个等腰三角形,写出测试用例

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值