软件测试面试题4

1、测试流程

一、测试需求分析阶段:阅读需求,理解需求,主要就是对业务的学习,分析需求点,参与需求评审会议。

二、测试计划阶段:主要任务是编写测试计划,参考软件需求规格说明书、项目总体计划,内容包括测试范围(来自需求文档)、进度的安排,人力物力的分配,整体测试策略的制定,和风险的评估与规避措施有一个制定,一般有测试负责人编写,当然我们也会参与相关的评审工作。

三、测试设计阶段:主要任务是编写测试用例,会参考需求文档(原型图)、概要设计、详细设计等文档,有不明确的也会及时和开发、产品经理沟通。用例编写完成后会进行评审。

四、测试执行阶段:首先搭建测试环境,执行预测(冒烟),以判定当前版本可测与否,如果预测通过,正式进入系统测试,遇到问题提交Bug到缺陷管理平台,并对bug进行跟踪,直到被测软件达到测试需求要求,没有重大bug,测试结束。

五、测试评估阶段:出测试报告,对整个测试的过程和版本质量做一个详细的评估。确认是否可以上线。

2、测试设计方法

1、白盒测试

白盒测试又称为结构测试,是针对被测单元内部如何工作的测试。它检查的是程序内部逻辑结构

语句覆盖:很简单就是程序中的每条语句都要至少执行一次

判定覆盖:每个分支真假都要执行一次

条件覆盖:每个分支的判定条件都要执行一次,针对复杂的判定如 【if a>5 or b<7】, a>5和b<7都要执行一次。

条件组合覆盖:将每个分支的判定条件进行组合并测试

路径覆盖:每条可行的路径都要执行一次

2、黑盒测试

黑盒测试又称为功能测试,它是在已知产品功能,通过测试来检测每个功能是否能正常使用。黑盒测试时不考虑程序内部结构,只是检查程序功能是否能按照需求规格说明书规定正常使用

边界值分析:这个很简单测试边界值,测试的是输入域、输出域的临界值。如数组的最后一个和第一个元素

等价类划分:将系统的输入域划分为若干部分,然后选取具有代表性的数据进行测试。选取的数据的测试结果就能完全等价与这一类的测试结果。比如测试手机号,不考虑特殊字符,利用等价类的思想进行测试。即有效等价类用例即输入11位手机号,输出正确。无效等价类,即输入大于11位的手机号,和小于11位的手机号

错误推测法:基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法。

正交实验设计法:从大量的实验中挑选有代表性的影响点,研究多因素、多水平的一种设计方法。

因果图法:描述系统输入和输出之间的引入关系、约束关系来设计用例。

判定表分析法:分析和表达多种输入条件下系统执行不同的设计方法

异常分析法:针对系统可能存在的异常操作,分析系统对错误的处理能力和恢复能力。以此来设计测试用例。

3、灰盒测试

3、测试工具

软件测试分为功能测试、接口测试、自动化测试、性能测试几大方向,每个方向用到的测试工具都不尽相同。功能测试会用到SVN、禅道、QC\ALM、Jira等软件测试管理工具。接口测试则会用到Jmeter、Postman、Fiddler软件,使用Jmeter可以执行测试用例,对页面跳转,参数传递等功能进验证。

自动化测试则又分为Web自动化测试和移动自动化测试。Web自动化测试主要会用到Selenium软件以及Firebug插件工具,使用Selenium可以对网站的核心功能进行自动化测试,包括元素定位、鼠标键盘的模拟操作及自动化测试框架的使用等。Web自动化测试主要用到的是Appium以及Monkey软件。Appium可以对APP核心功能进行测试验证,包括ID、xpath、list元素定位,数据交互、模块封装以及自动化测试框架的使用,生成测试报告,对APP功能进行评估等。

性能测试则会用到Loadrunner软件,它包含VuGen、Controller、Analysis。这些组件。VuGen用于协议、参数化、集合点、事务、检查点、思考时间、关联、文件下载、浏览器模拟设置。Controller用于手动场景设计、场景运行、IP。Wizard应用、负载生成器、服务水平协议(SLA)、场景监控、服务器硬件监测。Analysis则用于HTTP报文结构、吞吐量相关、事务相关、网页细分图、执行结果分析、图表分析。

4、selenium

Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。

支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera,Edge等。

这个工具的主要功能包括:测试与浏览器的兼容性——测试应用程序看是否能够很好得工作在不同浏览器和操作系统之上。

测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成.Net、Java、Perl等不同语言的测试脚本。

5、jmeter

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。

它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。

另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。

Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。

6、fiddler

Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件)。 Fiddler 要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式。

7、Charles

是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request, response和HTTP headers (包含cookies与caching信息)。

主要功能

  • 支持SSL代理。可以截取分析SSL的请求。
  • 支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。
  • 支持AJAX调试。可以自动将json或xml数据格式化,方便查看。
  • 支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息格式化,方便查看。
  • 支持重发网络请求,方便后端调试。
  • 支持修改网络请求参数。
  • 支持网络请求的截获并动态修改。
  • 检查HTML,CSS和RSS内容是否符合W3C标准。

注意:该软件在特殊情况下会出现劫持浏览器导致无法浏览网页的问题(请谨慎使用)。

8、web测试

Web测试是软件测试的一部分,是针对Web应用的一类测试。由于Web应用与用户直接相关,又通常需要承受长时间的大量操作,因此Web项目的功能和性能都必须经过可靠的验证。通过测试可以尽可能地多发现浏览器端和服务器端程序中的错误并及时加以修正,以保证应用的质量。由于Web具有分布、异构、并发和平台无关的特性,因而它的测试要比普通程序复杂的多。

9、测试指标

1.通用指标

通用指标是指Web应用服务器、数据库服务器必需测试项,包括:

(1)处理器时间:指服务器CPU占用率,一般平均达到70%时,服务就接近饱和。

(2)可用内存数:如果测试时发现内存有变化情况也要注意,如果是内存泄露则比较严重。

(3)物理磁盘读写时间。

2.Web服务器指标

(1)平均每秒响应次数为总请求时间与秒数之比。

(2)平均每秒业务脚本的迭代次数。

(3)成功的请求和失败的请求。

(4)成功的点击次数和失败的点击次数。

(5)每秒点击次数、每秒成功的点击次数和每秒失败的点击次数。

(6)尝试连接数。

3.数据库服务器

(1)用户连接数,也就是数据库的连接数量。

(2)数据库死锁量。

(3)数据库缓存的命中情况。

以上指标只是一些通用指标,对于不同的应用还需作相应的调整,比如程序使用的是.NET技术,则必须加入一些针对性的测试指标。对于这些指标的详细了解,可以参考Windows下面的System Monitor的帮助与Load Runner和ACT的帮助。

10、app测试

一、安装、卸载测试

  • 从不同的渠道获取安装程序是否正常安装

  • 软件在不同操作系统版本下安装是否正常

  • 软件安装后的是否能够正常运行,安装后的文件夹及文件是否写到了指定的目录里

  • 软件安装过程中意外情况的处理是否符合需求(如死机,重启,断电)

  • 安装空间不足时是否有相应提示

  • 安装后没有生成多余的目录结构和文件

  • 对于需要通过网络验证之类的安装,在断网情况下尝试一下

  • 需要对安装手册进行测试,依照安装手册是否能顺利安装

  • 直接删除安装文件夹卸载是否有提示信息

  • 直接卸载程序是否有提示信息

  • 卸载后是否全部删除所有的安装文件夹

  • 卸载过程中出现的意外情况的测试(如死机、断电、重启)

二、UI测试

  • 是否易于导航,导航是否直观
  • 导航帮助是否准确直观导航与页面结构、菜单、连接页面的风格是否一致
  • 横向比较,各控件操作方式统一
  • 自适应界面设计,内容根据窗口大小自适应
  • 页面标签风格是否统一
  • 页面的图片应有其实际意义而要求整体有序美观
  • 界面整体使用的颜色不宜过多
  • 输入框说明文字的内容与系统功能是否一致
  • 文字长度是否加以限制
  • 文字内容是否表意不明
  • 是否有错别字
  • 信息是否为中文显示
  • 是否有敏感性词汇、关键词
  • 是否有敏感性图片,如:涉及版权、专利、隐私等图片

三、功能测试

  • 注册:关注长度限制、类型限制、重复注册、短信接入、前后台数据一致性
  • 登录:正误情况、多设备登录、禁用账户登录、登录超时、登录中断网/网络切换、登录后界面
  • 注销:注销后再登录、取消注销
  • 应用前后台切换:前后台切换、锁屏解屏、电话/短信中断后回到app、必须处理的提示框处理后回到app、杀掉进程后重新启动app
  • 免登录:登录后杀掉进程重新启动app、无网络、切换用户登录、密码更换、退出登录下次启动app、卸载重装
  • 数据更新:手动或自动刷新、从后台切换到前台时数据更新、实时更新、定时更新、数据展示的处理逻辑(服务器获取、本地缓存)、更新异常处理(弱网、断网、服务器响应异常、数据为空)
  • 定位、相机、语音、蓝牙等系统服务:已开启、未开启根据提示开启、未开启并拒绝开启
  • 推送测试:推送消息内容、链接跳转、免打扰或拒接收

四、性能测试

  • Monkey进行app稳定性测试
  • 借助腾讯的GT监控app的cpu、内存、流量、耗电量等
  • 收集同类产品性能数据(基线测试)
  • 根据系统以往运营数据确定部分性能指标
  • 评估典型用户应用场景下,服务器系统资源的使用情况
  • 不同网络响应速度、服务器接口压力测试

五、交叉事件测试

  • 多个App同时运行是否影响正常功能
  • App运行时前/后台切换是否影响正常功能
  • App运行时拨打/接听电话
  • App运行时发送/接收信息
  • App运行时发送/收取邮件
  • App运行时切换网络(2G、3G、4G、WIFI)
  • App运行时浏览网络
  • App运行时使用蓝牙传送/接收数据
  • App运行时使用相机、计算器等手机自带设备

六、兼容性测试

功能性测试可以在模拟器上进行,但是兼容性测试必须是在真机上进行。

1、android设备兼容性:

  • 不同手机品牌兼容(华为、小米、魅族、oppo、vivo、oneplus、三星、google Nexus)
  • 同一品牌下,还要选择不同的系列(mate、p、荣耀、低端、小米、红米、note、max)
  • 同一个品牌、同一个系列(处理器不同、内存、屏幕不同、Android版本、GSM、CDMA、3G、4G)
  • android版本兼容,9.0版本,至少往前兼容两个版本8.0、7.0、6.0等

2、IOS设备兼容性:

  • IOS系统闭源,没有碎片话问题,主要覆盖最新的几个版本即可,7.0~10.0
  • 苹果设备单元:iphone4~iphone10,p系列等,ipad、ipod
  • 网络制式(GSM、CDMA、3G、4G)

3、众测平台

现在很多众测平台提供兼容性的测试,比如优测,testin、蒲公英等,可以直接购买平台的兼容性测试服务,很方便地拿到兼容性测试报告。

软件测试面试题4_第1张图片

11、金融测试

金融IT服务行业做了3年多测试,多与证券行业金融测试相关也有保险,基金行业等业务涉猎。如果是想提高业务知识的话,建议考证券从业资格,去证券业协会上找报名和考试事宜,不考也可以,可以找他们的教材看看,证券基础知识,证券交易,基金投资等,总共有5本,这里面业务基础知识还是很基础全面的。还有银行业及财务相关的书都可以看看。

个人感觉目前互联网金融大多都是P2P,借贷,理财产品类的,涉及传统金融行业业务的不多,貌似阿里蚂蚁聚宝和平安陆金所也是理财,保险,基金居多,证券交易这块还没正式开始吧。不管是互联网金融还是传统金融业务核心就是数据流通或者说资金流通,某种意义上说就是算钱的事儿。区别就是业务标的不同交易规则(买卖方式或者操作方式)不同。有这些传统金融业务基础知识应该也是有帮助的。具体还看你往哪个方向吧。希望对你有帮助。

金融行业是国民经济发展的重中之重,直接关系到国家产业经济发展的稳定性。金融业软件测试作为整个金融产品生产周期中重要的一个环节,起着重要作用,尤其是对金融产品创新和风险控制等方面有着不可或缺的作用。

一、金融业软件测试主要特点

金融业软件系统具有集中度高、规模庞大、耦合性强、业务复杂、需求变化快等特点,这就要求金融业软件测试要比一般行业成熟度更高。

金融业软件测试的主要特点如下:

1.重视产品质量,有较完善的测试体系和测试工具。

2.测试组织规模相对较大,外包人员在总体人员中占比较高。

3.测试团队既要懂复杂的金融业务,又要懂专业的测试技术。

4.愿意探索新的测试方法,不断优化测试工作和测试流程。

二、金融行业软件测试的现状

根据某项调查,金融企业应用系统的数量,中小银行应用系统数量普遍在100个左右,有一半银行超过100个应用系统;虽然保险行业应用系统数量相对较少,但大部分保险公司拥有10-50个应用系统;而且这些数量还有进一步上涨的趋势。调查数据也表明,金融行业IT部门的测试能力目前远远低于金融机构对测试的要求。即使是IT成熟度比较高的企业,也难以覆盖所有应用系统的测试需求。金融企业的测试需要和信息科技部门的测试能力之间存在一定的差距。

三、金融测试常用的测试工具

无论作为内部测试或第三方测试,都必须采用一些自动化的测试工具来进行测试的管理和执行。测试工具主要包含以下几类:

  1. 测试管理工具

如:Test Director、Quality Center、Clear Quest。

2)性能测试工具

如:Load Runner及第三方自己开发的性能测试工具。

3)自动化测试工具

如:QARun、QTP

四、金融软件测试常见面试题

1、网上银行转账是怎么测的,设计一下测试用例。

回答思路:宏观上可以从质量模型(万能公式)来考虑,重点需要测试转账的功能、性能与安全性。设计测试用例可以使用场景法为主,先列出转账的基本流和备选流。然后设计场景,最后根据场景设计数据。实际面试中需要举出具体的例子。

1)先检查界面。

2)再测试功能:

  • 验证同行转账,跨行转账。
  • 验证转账限额。
  • 验证非法账户(挂失,冻结,锁定的账户)的转账。

3)在测试性能方面的。

2、定期存款到期自动转存该怎么测?

回答思路:到期肯定会有边界,所以设计里面可以考虑边界值法。自动转存(首先要搞清楚什么是自动转存。)

3、存钱该怎么测,用什么测试方法

准备思路:存钱要分类:活期、零存整取等(具体规则百度下),然后根据每类的业务规则选择合适的用例设计方法。譬如一次最少存入多少?最多一次能存入多少等。

4、实名认证你们是怎么测得?调取什么平台的资料?

实名认证接口:

1)银行卡实名认证(调用银行接口,验证卡号,姓名,身份证号码,手机号码。需要利用到手机接收到的验证码)

2)身份证实名认证(全国公民身份证号码查询服务中心,或者直接说公安接口)

5、你所熟悉的linux命令

linux:cat,more,less,head -n,tail -n,find ,| grep,ps -ef,tar,gzip,mv,cp,touch,mkdir,vi,top

也可以结合搭建环境的过程说用到的命令。

6、你们也测试后台管理吗?个人芝麻信用积分是调取哪里的资料?

测试后台管理:

1 后台也测,但是我主要测试前台,我的关注点是前台,后台只是拿来用,能配合前台正常走完流程就行。

2 后台主要对前台进行管理,主要有贷款管理,资金管理。

贷款管理:可以查看投资人的投资情况,也可以查看借款人的借款产品,对借款产品进行管理。比如审批,每期的还款提醒,预警等。

资金管理:管理查看用户的充值,审批用户的提现过程。

芝麻信用积分:调用的是支付宝的接口,芝麻信用:调用的是支付宝那边的接口(支付宝提供这样的芝麻信用服务,每查一次收取大概0.1元)

五、总结:

金融软件测试与其他软件测试有不同的之处,如下:

第一:金融软件的测试算法是测试的核心,验证测试数字在不同的场合条件下,一定要保证数据的准确性。

第二:与外部存管银行的各种接口数据的准确,稳定,安全。

第三:金融软件在整个业务过程中涉及到很多合同相关的内容的测试,合同上甚至连一个文字,一个空格都要测试到。

第四:运营报表,整个数据是给老板看的一定要保持计算和统计数据的准确性。

第五:和其他软件测试流程一样,保证业务的逻辑要正确无误。

软件测试面试题4_第2张图片

软件测试面试题4_第3张图片

你可能感兴趣的:(软件测试,#,面试题,需求分析,单元测试,功能测试)