2. 本文内容顺序:测试根本理论、测试岗常常被问到的场景题、智力题、测试岗高频算法题、数据库、 Linux知识点。
3. 本文阅读建议:我结合了自身的口试经历,把高频的、主要的知识点都用★标注了,★越多代表自己被问得次数越多。(当然这也只是我的口试经历,存在局限性。)
4. 叨逼叨:亲测,测试岗的口试难度相对开拓岗确实低一些,不过口试的内容差别倒不是特殊大,像计网、OS、数据构造、数据库、算法/刷题这些都是要准备的,并且测试岗的口试还须要你额外节制测试干系的知识,也便是本文的一、二两部分内容。不然你叫口试官怎么想你呢?你一点测试的理论知识都不理解,对方只会以为你大概率是做不来开拓才想着试试测试岗吧,以是得快速支棱起自己的测试技能树,让口试官以为你是有志于干测试开拓的。 这一点很主要。

————————————————
常用自动化测试工具1、Appium官网: http://appium.io
AppUI自动化测试
Appium 是一个移动端自动化测试开源工具,支持iOS 和Android 平台,支持Python、Java 等措辞,即同一套Java Python 脚本可以同时运行在iOS 和Android平台,Appium 是一个C/S 架构, 核心是一个 Web 做事器,它供应了一套 REST 的接口。当收到客户真个连接后,就会监听到命令,然后在移动设备上实行这些命令,末了将实行结果放在 HTTP 相应中返还给客户端。
License:免费
2、Selenium(★★)官网: https://www.seleniumhq.org/download/
WebUI自动化测试
Selenium是一个用于Web运用程序测试的工具,Selenium已经成为Web自动化测试工程师的首选。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7、8、9)、Mozilla Firefox、Mozilla Suite等。这个工具的紧张功能包括:测试与浏览器的兼容性——测试你的运用程序看是否能够很好得事情在不同浏览器和操作系统之上。测试系统功能——创建回归测试考验软件功能和用户需求。支持自动录制动作和自动天生 .Net、Java、Perl平分歧措辞的测试脚本。Selenium 是ThoughtWorks专门为Web运用程序编写的一个验收测试工具。其升级版本为Webdriver。
License:免费
3、Postman(★★★)官网: https://www.getpostman.com
接口测试
Postman 供应功能强大的 Web API 和 HTTP 要求的调试,它能够发送任何类型的HTTP 要求 (GET, POST, PUT, DELETE…),并且能附带任何数量的参数和 Headers。不仅如此,它还供应测试数据和环境配置数据的导入导出,付费的 Post Cloud 用户还能够创建自己的 Team Library 用来团队协作式的测试,并能够将自己的测试收藏夹和用例数据分享给团队。
License:免费
4、Jmeter(★★★)官网: https://jmeter.apache.org
接口测试,性能测试
JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现;
JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、java工具、数据库和查询、ftp做事器或者其他的资源)。JMeter用于仿照在做事器、网络或者其他工具上附加高负载以测试他们供应做事的受压能力,或者剖析他们供应的做事在不同负载条件下的总性能情形。你可以用JMeter供应的图形化界面剖析性能指标或者在高负载情形下测试做事器/脚本/工具的行为。
利用Jmeter做接口测试须要把稳一点,小心利用“用户定义变量”,Jmeter组件有优先级的,如果多个线程同时实行的时候,“用户定义变量”组件定义的变量可能会乱套。
License:免费
5、Loadrunner官网: https://software.microfocus.com/en-us/products/loadrunner-load-testing/overview
性能测试
LoadRunner,是一种预测系统行为和性能的负载测试工具。通过以仿照上千万用户履行并发负载及实时性能监测的办法来确认和查找问题,LoadRunner能够对全体企业架构进行测试。企业利用LoadRunner能最大限度地缩短测试韶光,优化性能和加速运用系统的发布周期。 LoadRunner可适用于各种体系架构的自动负载测试,能预测系统行为并评估系统性能。
License:商业
6、Jenkins(★★★★★)官网: https://jenkins.io
持续集成
自动化构建 编译,支配,任务实行,测试报告,邮件关照等。
License:免费
手机兼容性测试(机型选择)
测试根本理论
https://blog.csdn.net/lim13760114815/article/details/88396681
软件测试开拓流程:1.需求剖析
在测试前拿到产品需求文档,进行需求剖析及需求评审前先对需求文档进行详细的阅读,对有疑问的地方进行标注。
详细可从以下进行:
a.剖析产品功能点
b.产品核心竞争力
c.Kano模型、马斯洛需求剖析、多问几个为什么、高下文剖析法
2.订定测试用例(主要)
工欲善其事,必先利其器;对测试而言,测试用例便是器,做好了才能把好关
a.利用思维导图列举测试大纲,只管即便发散,想到什么就写什么,;先放后收,对知识点进行总结和归纳,标记重点测试模块,删除冗余及重复测试点。
b.可利用边界值法、等价类划分法、缺点推测法、因果图法等设计案例
c.根据测试大纲制订测试用例,需包含模块名、测试优先级、操作步骤、期望结果、测试结果、备注
3.评审测试用例
a.测试作为主导,联合开拓、项目经理、PM进行测试用例评审
b.可先讲解测试大纲,让开发、项目经理、PM心中对测试用例有个大概;后再进行详细测试用例讲解
4.实行测试
a.根据测试用例实行测试
b.创造问题保留现场,记录测试方法,关照开拓办理问题
c.覆盖测试用例之外若有韶光可进行探索性测试
5.提交Bug并推动Bug办理
a.在Bug管理工具上提交Bug,详细记录测试步骤
b.根据Bug严重程度划分Bug等级:致命、严重、一样平常、提示
c.推动开拓办理问题,记录问题进展,一样平常谈天沟通,若问题严重则需通过邮件推动办理
6.回归测试
a.对已修复的Bug进行验证
b.对Bug所在模块进行基本功能测试;整体进行冒烟测试,确保不会由于修正Bug而引起其他功能涌现问题
7.编写并提交测试报告
可利用金字塔事理设计测试报告,先总后分,上级统领下级,下级推导出上级,环环相扣
a.对Bug进行汇总,筛选出各个等级的Bug存活情形
b.订定Bug创造及办理曲线图,一样平常版本正常应是前期多,后期收敛,存活的是级别较低的Bug
c.总结归纳版本情形,评估发布与否
软件测试方法(★★★★★)1. 软件测试方法 :白盒测试、黑盒测试、灰盒测试、静态测试、动态测试
2. 白盒测试 :是一种测试用例设计方法,在这里盒子指的是被测试的软件,白盒,顾名思义即盒子是可视的,你可以清楚盒子内部的东西以及里面是如何运作的,因此白盒测试须要你对系统内部的构造和事情事理有一个清楚的理解,并且基于这个知识来设计你的用例。
白盒测试技能一样平常可被分为静态剖析和动态剖析两类技能。
静态剖析紧张有:掌握流剖析技能、数据流剖析技能、信息流剖析技能。
动态剖析紧张有:逻辑覆盖率测试(分支测试、路径测试等),程序插装等。
白盒测试优点:迫使测试职员去仔细的思考软件的实现;可以检测代码中的每条分支和路径;揭示隐蔽在代码中的缺点;对代码的测试比较彻底;最优化。
白盒测试缺陷:昂贵;无法检测代码中遗漏的路径和数据敏感性缺点;不验证规格的精确性。
3. 黑盒测试又叫功能测试 ,这是由于在黑盒测试中紧张关注被测软件的功能实现,而不是内部逻辑。在黑盒测试中,被测工具的内部构造,运作情形对测试职员是不可见的,测试职员对被测产品的验证紧张是根据其规格,验证其与规格的同等性。
在绝大多数没有用户参与的黑盒测试中,最常见的测试有:功能性测试、容量测试、安全性测试、负载测试、规复性测试、标杆测试、稳定性测试、可靠性测试等。
4. 灰盒测试 :白盒测试和黑盒测试每每不是决然分开的,一样平常在白盒测试中交叉利用黑盒测试的方法,在黑盒测试中交叉利用白盒测试的方法。灰盒测试便是这类界于白盒测试和黑盒测试之间的测试。
最常见的灰盒测试是集成测试 。
5. 静态测试 :是一种不通过实行程序而进行测试的技能。它的关键功能是检讨软件的表示和描述是否同等,没有冲突或者没有歧义。
6. 动态测试 :包含了程序在受控的环境下利用特定的期望结果进行正式的运行。它显示了一个别系在检讨状态下是精确还是禁绝确。
单元测试属于白盒测试范畴;集成测试属于灰盒测试范畴;系统测试属于黑盒测试范畴 。
————————————————
CI/CD理解(★★★★★)摘自 如何理解持续集成、持续交付、持续支配? - yumminhuang的回答 - 知乎 https://www.zhihu.com/question/23444990/answer/89426003
持续集成
持续集成强调开拓职员提交了新代码之后,急速进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否精确地集成在一起。
持续交付
持续交付在持续集成的根本上,将集成后的代码支配到更贴近真实运行环境的「类生产环境」(production-like environments)中。比如,我们完成单元测试后,可以把代码支配到连接数据库的 Staging 环境中更多的测试。如果代码没有问题,可以连续手动支配莅临盆环境中。
持续支配
持续支配则是在持续交付的根本上,把支配莅临盆环境的过程自动化。
我个人以为持续集成、持续交付、持续支配非常值得推广。开拓过程中最怕集成时碰着问题导致返工,而持续集成、持续交付、持续支配正好可以早创造早办理,从而可以避免这个问题。
接口文档(★★★)一、什么是接口文档?
在项目开拓中,web项目的前后端分离开拓,APP开拓,须要由前后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开拓,到项目结束前都要一贯掩护。
二、为什么要写接口文档?
1、项目开拓过程中前后端工程师有一个统一的文件进行沟通互换开拓
2、项目掩护中或者项目职员更迭,方便后期职员查看、掩护
三、接口规范是什么?
首先接口分为四部分:方法、uri、要求参数、返回参数
1、方法:新增(post) 修正(put) 删除(delete) 获取(get)
2、uri:以/a开头,如果须要登录才能调用的接口(如新增、修正;前台的用户个人信息,资金信息等)后面须要加/u,即:/a/u;中间一样平常放表名或者能表达这个接口的单词;get方法,如果是后台通过搜索查询列表,那么以/search结尾,如果是前台的查询列表,以/list结尾;url参数就不说了。
3、要求参数和返回参数,都分为5列:字段、解释、类型、备注、是否必填
字段是类的属性;解释是中文释义;类型是属性类型,只有String、Number、Object、Array四种类型;备注是一些阐明,或者可以写一下例子,比如卖力json构造的情形,最好写上例子,好让前端能更好理解;是否必填是字段的是否必填。
4、返回参数构造有几种情形:1、如果只返回接口调用成功还是失落败(如新增、删除、修正等),则只有一个构造体:code和message两个参数;2、如果要返回某些参数,则有两个构造体:1是code/mesage/data,2是data里写返回的参数,data是object类型;3、如果要返回列表,那么有三个构造体,1是code/mesage/data,data是object,里面放置page/size/total/totalPage/list 5个参数,个中list是Arrary类型,list里放object,object里是详细的参数。
把稳:uri地址里不许可涌现大写字母,如果是两个单词拼接,用/分开
示例:
要求地址:get /a/student/list
要求参数:
返回参数:
单元测试(★★★)
理解:类比电视机组装完后不能点亮,如果检测的话,须要一个一个电器器件去排查。如果从一开始对每个元器件进行测试,就能够极大程度的打消这个问题。
定义:单元测试是指,对软件中的最小可测试单元在与程序其他部分相隔离的情形下进行检讨和验证的事情,这里的 最小可 测试单元常日是指 函数或者 类。
单元测试常日由开拓工程师完成,一样平常会伴随开拓代码一起递交至代码库。单元测试属于 最严格的软件测试手段,是最靠近代码 底层实现的验证手段,可以在软件开拓的早期以最小的本钱担保局部代码的质量。其余,单元测试都因此自动化的办法实行,以是在大量 回归测试的场景下更能带来高收益。
如何设计一个好的测试用例:(★★★)“好的”测试用例一定是一个 完备 的凑集,它能够 覆盖所有等价类 以及各种 边界值 ,而跟能否创造毛病无关。
一个“好的”测试用例,必须具备以下 三个特色 。
1. 整体完备性 : “好的”测试用例一定是一个完备的整体,是有效测试用例组成的凑集,能够完备覆盖测试需求。
2. 等价类划分的准确性 : 指的是对付每个等价类都能担保只要个中一个输入测试通过,其他输入也一定测试通过。
3. 等价类凑集的完备性 : 须要担保所有可能的边界值和边界条件都已经精确识别。
三种最常用的测试用例设计方法:
等价类划分法、边界值剖析法、缺点推测方法。
第一,等价类划分法
我们只要从每个等价类中任意选取一个值进行测试,就可以用少量具有代表性的测试输入取得较好的测试覆盖结果。
现在,我给你看一个详细的例子:学生信息系统中有一个“考试成绩”的输入项,成绩的取值范围是0~100之间的整数,考试成绩及格的分数线是60。为了测试这个输入项,显然不可能用0~100的每一个数去测试。通过需求描述可以知道,输入0~59之间的任意整数,以及输入60~100之间的任意整数,去验证和戳穿输入框的潜在毛病可以看做是等价的。
那么这就可以在0~59和60~100之间各随机抽取一个整数来进行验证。这样的设计就构成了所谓的“有效等价类”。
你不要以为进行到这里,已经完成了等价类划分的事情,由于 等价类划分方法的另一个关键点是要找出所有“无效等价类” 。显然,如果输入的成绩是负数,或者是大于100的数等都构成了“无效等价类”。
在考虑了无效等价类后,终极设计的测试用例为:
有效等价类1:0~59之间的任意整数;
有效等价类2:59~100之间的任意整数;
无效等价类1:小于0的负数;
无效等价类2:大于100的整数;
无效等价类3:0~100之间的任何浮点数;
无效等价类4:其他任意非数字字符。
第二,边界值剖析方法
边界值剖析是对等价类划分的补充,你从工程实践履历中可以创造,大量的缺点发生在输入输出的边界值上,以是须要对边界值进行重点测试,常日选取恰好即是、刚刚大于或刚刚小于边界的值作为测试数据。
我们连续看学生信息系统中“考试成绩”的例子,选取的边界值数据该当包
括:-1,0,1,59,60,61,99,100,101。
第三,缺点推测方法
缺点推测方法是指 基于对被测试软件系统设计的理解、过往履历以及个人直觉,推测出软件可能存在的毛病,从而有针对性地设计测试用例的方法。 这个方法强调的是对被测试软件的需求理解以及设计实现的细节把握,当然还有个人的能力。
缺点推测法和目前非常盛行的“探索式测试方法”的基本思想和理念是不谋而合的,这类方法在目前的敏捷开拓模式下的投入产出比很高,因此被广泛运用。但是,这个方法的缺陷也显而易见,那便是难以系统化,并且过度依赖个人能力。
总结:在我看来,深入理解被测软件需求的最好方法是,测试工程师在需求剖析和设计阶段就开始参与,由于这个阶段是理解和节制软件的原始业务需求的最好机遇。
上文摘自《测试工程师全栈技能进阶与实践》 茹炳晟
针对某一个产品写测试用例:(★★★★★)此类问题险些每个口试官都会问!
基本思路:可以从功能测试,UI测试,稳定性测试,压力测试(边界极限),安全测试,本地化测试等角度去考虑
1、基本功能测试
硬度:是否达到设计标准
装载能力:在杯子内分别装入少量的、半杯的、潢杯的,看其装载量是否达到设计标准
装载种类:开水(是否产生异味)、温水、冷水、咖啡
用水杯装水看漏不漏;水能不能被喝到
输入条件: 冷水,热水,冰水。。。
输出条件: 是否退色 是否变形 是否有毒
一杯开水(假定100摄氏度)保温的韶光(多久后变到室温),自然还有冰块在室温下多永劫光融化
2、界面测试(UI测试)
看其形状、大小设计是否符合需求规格解释书的定义,适宜人方便拿起喝水;
外不雅观是否吸引人,赏心悦目;
广告图案沾水后是否掉色、模糊;
广告图案是否利用环保材料、不影相应用者康健和回收再利用;
广告图案是否和当地政治、宗教符合,没有冲突;
广告图案是否做到了本地化和国际化。
3、易用性测试
看其形状、大小设计是否适宜人方便拿起;
残疾人士用此杯去喝水的随意马虎程度;
杯子设计是否上大下小,在运输过程中可以套在一起有效利用空间,在利用时也随意马虎拿开
4、稳定性测试(247)
装入液体后记录其多久往后会漏水;
5、安全性测试
杯子所用的材料(包括纸基、涂层和广告颜料)是否符合食品卫生标准,在内外温度待环境成分下是否会与所盛各种饮料反应,而产生对人体有害的物质;
6、本地化测试
为国际化和本地化的须要,广告图案和笔墨是否在政治、宗教和文化方面具有广泛的适用性;
安全性:杯子有没有毒或细菌;
可靠性:杯子从不同高度落下的破坏程度;
可移植性:杯子再不同的地方、温度等环境下是否都可以正常利用;
7、对设计的改进建议
“如果是一次性杯子,能否标示已利用(比如:变色)”和“杯子是否有利用者标贴(多人利用时防止稠浊)”。
压力测试:用根针并在针上面不断加重量,看压强多大时会穿透
8、 性能测试
温度/杯质的抗压力/寿命/广告漆的耐久度/等等
测试一个输入框(计数)(★★)相信不少朋友在笔试的时候都碰着过测试用例设计的笔试题。常日是一个上岸页面,上面有用户名,密码的输入框,再多一点的有个验证码。
不过假如你见到的因此下的这道测试用例设计笔试题,不用问,口试官一定是看过《Google软件测试之道》的。(也脑补一下,万一壁试官是看过CC师长西席的简书呢…… 嗯嗯,梦想还是要有的)
出题韶光:
在一个Web测试页面上,有一个输入框,一个计数器(count)按钮,用于打算一个文本字符串中字母a涌现的个数。这里的问题是,请设计一系列测试用例用以测试这个Web页面。
很多朋友可能拿到这道题的时候已经开始写下1.2.3.了,不过根据履历上来说,追求数量而非质量的方向,是一种低效的事情办法。(特殊在有口试官在阁下看到你答题的时候,请保持沉思者状保持10-15秒)
能够针对题目提出一些问题来的候选者会被认为更有潜质来做测试职员,比如大写还是小写?只是英语吗?打算完成后文本会被打消吗?多次按下按钮会发生什么事情?诸如此类。
常日说来,我们考虑一个测试工具的时候至少从以下六方面来考虑。
功能性
易用性
可靠性
性能
安全
兼容性
如果你是一个测试菜鸟,从功能性出发,你可能会列出以下一个范例的列表:
“banana”:3(一个合法的英笔墨)。
“A” 和“a”:1(一个大略有正常结果的合法输入)。
“”:0(一个大略的结果为0的合法输入)。
Null:0(大略的缺点输入)。
“AA” 和“aa”:2(个数大于1并且所有字符都为a/A的输入)。
“b”:0(一个大略的非空合法输入,结果为0)。
“aba”:2(目标字符涌如今开头和结尾,以探求循环边界缺点)。
“bab”:1(目标字符涌如今中间)。
space/tabs:N(空缺字符与N个a的稠浊)。
不包含a的长字符串:N(N大于0)。
包含a的长字符串:N(N是a的倍数,试试龙妈的名字)。
{java/C/HTML/JavaScript}:N是a涌现的个数(可实行字符,或缺点,或代码阐明)。
….
更精良的测试工程师,会开始考虑后面五个方面,设计以下用例。
质疑界面的外不雅观、调色板和比拟度(这与干系运用风格同等么?)
文本框太小了,建议加长以便显示更长的输入字符串
这个运用能否在同一台做事器上运行多个实例,多个用户同时利用是否会有问题。
是否会根据用户的输入自动匹配内容?
建议利用真实的数据,如从词典或书中选择输入内容。
提出疑问:“输入的数据是否会被保存”,输入字符串可能包含地址或其他身份信息。
输入HTML和JavaScrip,看是否会毁坏页面渲染。
考试测验复制/粘贴字符串。
提出疑问:“打算足够快么?在大并发下利用”。
提出疑问:“用户怎么找到该页面?”
提出疑问:“有快捷键的设置么?比如输完字符后敲入回车键而不是点击提交按钮”
还有一些测试点,只有履历丰富的测试工程师才会想到。
意识到打算会通过URL-encodedHTTP GET要求通报到做事器,字符串可能会在网络传输时被截断,因此,无法担保支持多长的URL。
建议将此功能参数化,为什么只对字母a打算呢?
考虑打算其它措辞中的a(α,Alpha)。
考虑到该运用是否该当国际化。
考虑到输入法全角输入和半角输入是否相同。
考虑编写脚本或者手工采样来探知字符串长度的上限,然后确保在此区间内功能正常。
考虑背后的实现和代码。大概已经有一个计数器遍历该字符串。
提出疑问:“HTTP POST方法和参数会被黑掉码?大概有安全漏洞?”
用脚本创建各种有趣的排列组合和字符串特性,如长度、a的个数等,自动天生测试输入和验证。
针对“用户登录”设计测试用例(★★★)以用户登录为例,一样平常的小白可能只能够想到一些功能性测试(如下)。
现在,针对“用户登录”功能,基于等价类划分和边界值剖析方法,我们设计的测试用例包括:
1. 输入已注册的用户名和精确的密码,验证是否登录成功;
2. 输入已注册的用户名和禁绝确的密码,验证是否登录失落败,并且提示信息精确;
3. 输入未注册的用户名和任意密码,验证是否登录失落败,并且提示信息精确;
4. 用户名和密码两者都为空,验证是否登录失落败,并且提示信息精确;
5. 用户名和密码两者之一为空,验证是否登录失落败,并且提示信息精确;
6. 如果登录功能启用了验证码功能,在用户名和密码精确的条件下,输入精确的验证码,验证是否登录成功;
7. 如果登录功能启用了验证码功能,在用户名和密码精确的条件下,输入缺点的验证码,验证是否登录失落败,并且提示信息精确。
的确,上面的测试用例集已经涵盖了紧张的功能测试场景。但是在一个精良的测试工程师眼中,这些用例只能达到勉强及格的标准。
现在,我跟你分享一下有履历的测试工程师会再增加的测试用例:
1. 用户名和密码是否大小写敏感;
2. 页面上的密码框是否加密显示;
3. 后台系统创建的用户第一次登录成功时,是否提示修正密码;
4. 忘却用户名和忘却密码的功能是否可用;
5. 前端页面是否根据设计哀求限定用户名和密码长度;
6. 如果登录功能须要验证码,点击验证码图片是否可以改换验证码,改换后的验证码是否可用;
7. 刷新页面是否会刷新验证码;
8. 如果验证码具有时效性,须要分别验证时效内和时效外验证码的有效性;
9. 用户登录成功但是会话超时后,连续操作是否会重定向到用户登录界面;
10. 不同级别的用户,比如管理员用户和普通用户,登录系统后的权限是否精确;
11. 页面默认焦点是否定位在用户名的输入框中;
12. 快捷键Tab 和Enter等,是否可以正常利用。
从软件测试的维度来看,还该当包含非功能性需求。紧张涉及 安全性、性能以及兼容性 三大方面。 在上面所有的测试用例设计中,我们完备没有考虑对非功能性需求的测试,但这些每每是决定软件质量的关键成分。
安全性测试用例包括:
1. 用户密码后台存储是否加密;
2. 用户密码在网络传输过程中是否加密;
3. 密码是否具有有效期,密码有效期到期后,是否提示须要修正密码;
4. 不登录的情形下,在浏览器中直接输入登录后的URL地址,验证是否会重新定向到用户登录界面;
5. 密码输入框是否不支持复制和粘贴;
6. 密码输入框内输入的密码是否都可以在页面源码模式下被查看;
7. 用户名和密码的输入框等分别输入范例的“SQL注入攻击”字符串,验证系统的返回页面;
8. 用户名和密码的输入框等分别输入范例的“XSS跨站脚本攻击”字符串,验证系统行为是否被修改;
9. 连续多次登录失落败情形下,系统是否会阻挡后续的考试测验以应对暴力破解;
10. 同一用户在同一终真个多种浏览器上登录,验证登录功能的互斥性是否符合设计预期;
11. 同一用户先后在多台终真个浏览器上登录,验证登录是否具有互斥性。
性能压力测试用例包括:
1. 单用户登录的相应韶光是否小于3秒;
2. 单用户登录时,后台要求数量是否过多;
3. 高并发场景下用户登录的相应韶光是否小于5秒;
4. 高并发场景下做事真个监控指标是否符合预期;
5. 高凑集点并发场景下,是否存在资源去世锁和不合理的资源等待;
6. 永劫光大量用户连续登录和登出,做事器端是否存在内存泄露。
兼容性测试用例包括:
1. 不同浏览器下,验证登录页面的显示以及功能精确性;
2. 相同浏览器的不同版本下,验证登录页面的显示以及功能精确性;
3. 不同移动设备终真个不同浏览器下,验证登录页面的显示以及功能精确性;
4. 不同分辨率的界面下,验证登录页面的显示以及功能精确性。
微信红包测试用例(★★★★★)单个红包:
1、红包金额为空、0、0.01、200.00、200.01、199.99、200
2、留言输入数字、字母、汉字、分外字符
3、留言长度
4、留言复制粘贴
5、表情选择收藏表情、其他表情
6、删除表情、重新选择表情
7、选择支付办法 零钱、银行卡、添加新卡支付。个中钱数<红包钱数、个中钱数=红包钱数、个中钱数>红包钱数
8、利用指纹确认付款(精确的、缺点的指纹)
9、利用密码确认付款(精确的、缺点的密码)
10、红包成功发送后 相应支付办法中钱数减少(减少金额与红包金额同等)
11、接管者能看到红包详细信息,红包金额、留言、表情均能精确显示
12、红包被拆开后显示已领取,领取者零钱中增加精确金额,再次领取只能查看红包信息
13、发红包者自己领红包
14、红包24小时未被领取提示红包被退回,相应支付办法中钱数增加(增加金额与红包金额同等),对方不能领红包
群发红包-普通红包: (只写了与单个红包不同的地方)
1、红包个数 为空、0、001、100、99、101
2、红包拆开每个金额一样 均为发红包时设置的单个金额对应的钱数
3、红包被拆时,有相应提示
4、发红包者自己领红包
5、红包24小时内未被拆完,剩余钱被退回,相应支付办法中钱数增加
群发红包-拼手气红包:
1、红包总额/红包个数<0.01
2、红包每个人拆开金额不同,总金额与发红包设置的总额同等
3、红包24小时内拆完后显示最佳手气
4、红包24小时内未被拆完不显示最佳手气
兼容性: 安卓、苹果 不同型号版本手机
UI测试: 界面无错别字,风格统一
中断测试: 不同运用之间切换、断网、来电、短信、低电量、手机没电
网络测试: 2g/3g/4g WiFi 移动联通电信 弱网 无网
微信朋友圈测试用例(★★★★★)功能测试
1、朋友圈发送功能
1)只发送文本
a、考虑文本长度:1-1500字符(该数据为百度数据)、超出最大字符长度
b、文本是否支持复制粘贴
c、为空验证
2)只发送图片
a、本地相册选择/拍摄
b、图片数量验证:1-9张图片、超出9张
c、为空验证
3)只发送视频
a、本地相册选择/拍摄
b、视频秒数验证:1-10s,超出10s
c、视频个数验证:1个,超出1个
d、视频格式验证:支持的视频格式,例mp4、不支持的视频格式
e、视比年夜小验证:苹果400kb以内、Android200-300kb(此为百度数据)、超出规定大小
f、视频预览增编削操作
g、为空验证
4)发送文本+图片:输入知足哀求的文本、图片进行一次验证
5)发送文本+视频:输入知足哀求的文本、视频进行一次验证
6)发送图片+视频:不支持发送
7)朋友圈发送内容是否有限定,例如涉及黄赌毒等敏感字
8)所在位置
a、不显示位置:发送到朋友圈动态不显示位置
b、选择对应位置:搜索支持、自动定位、手动编辑
C、点击取消,返回上一级页面
9)谁可以看
a、设置公开:所有朋友可见
b、设置私密(仅自己可见):自己查看朋友圈-可见、好友查看朋友圈-不可见
c、设置部分可见(部分朋友可见):选择的部分好友-可见、不当选择的好友-不可见、是否有人数上限
d、设置不给谁看(选中的朋友不可见):不当选中的朋友-可见、当选中的朋友-不可见、是否有人数上限
e、点击取消,返回发送页面
10)提醒谁看
a、提醒单人/提醒多人:被提醒的朋友-收到提醒、未被提醒-未有提醒
b、是否有人数上限
c、点击取消,返回发送页面
11)同步QQ空间:默认不同步、同步到QQ空间
12)取消发送朋友圈操作
a、选择相机,点击取消,返回朋友圈页面
b、进入朋友圈发送页面,选择文本图片,点击取消
13)朋友圈当天发送次数是否有上限限定
2、朋友圈浏览功能
1)文本查看:
a、过长文本内容是否隐蔽,并支持查看全文
b、右键选择复制、收藏、翻译
c、url链接是否支持点击跳转网页
2)图片查看
a、小图右键支持收藏/编辑
b、点击支持大图浏览
c、选择发送给朋友、收藏、保存图片、编辑
d、多张图片支持旁边滑动浏览
3)视频查看
a、右键视频支持静音播放/搜藏
b、点击视频播放按键支持播放视频
c、选择发送给朋友、收藏、保存视频、编辑
4)分享动态浏览:QQ空间/"大众年夜众号文章/非腾讯产品分享后朋友圈是否正常显示
5)赞:点赞、取消点赞
6)评论
a、评论长度:评论字数合理长度、评论超过字数上限
b、评论类型:纯中文、纯数字、纯字母、纯字符、纯表情(微信表情/手机自带表情)、稠浊类型、包含url链接;
c、评论是否支持复制粘贴
d、为空验证
e、揭橥评论后删除
f、评论回答操作
7)删除朋友圈动态
8)改换相册封面
9)刷新是否正常获取新动态
10)上滑是否加载更多
界面/易用性测试
1、技能职员角度:页面布局设计是否跟产品原型图/ui效果图同等
2、但除了考虑1之外,我们同样要考虑到用户利用:功能操作是否简便,页面布局排版风格是否都雅合理,提示语干系信息是否易于理解
中断测试
1、紧张考虑:a)核心功能 b)当前功能存在实时数据交流,例发朋友圈、浏览朋友圈进行中断,是否随意马虎涌现崩溃
2、中断包括:前后台切换、锁屏解锁、断网重连、app切换、来电话/来短信中断、插拔耳机线/数据线
网络测试
1、三大运营商不同网络制式测试
2、网络切换测试:WIFI/4G/3G/2G
3、无网测试:对付缓存在本地的数据,部分朋友圈信息是否支持浏览
4、弱网测试:
a、延时:页面相应韶光是否可接管、不同网络制式是否区分超时时长、涌现要求超时,是否给予相应的提示
b、丢包:有无超时重连机制、如果未相应,是否给予相应提示
c、页面呈现的完全性验证
兼容性测试
1、Android手机端、苹果手机端、pad版(主流)功能界面显示是否正常
2、各平台朋友圈展示数据是否同等
安全测试
发送朋友圈时,文本输入脚本代码,是否涌现非常
性能测试
1、做事器性能测试
可通过loadrunner/jmeter工具实现,紧张关注TPS、相应韶光、吞吐量、CPU、内存等
2、app客户端性能测试
可通过GT工具实现,运行时关注cpu、内存、流量、电量等占用率
3、app压力稳定性测试
通过monkey工具实现,频繁发送朋友圈,浏览朋友圈要求,是否随意马虎发生崩溃
智力题1000 瓶无色无味的药水,个中有一瓶毒药,10只小白鼠拿过来做实验。喝了无毒的药水第二天没事儿,喝了有毒的药水后第二天会去世亡。如何在一天之内(第二天)找出这瓶有毒的药水?(被问过)
现在有9个球,个中有1个球相对轻一点。你手里只有一个天平,称2次,若何找出那个轻的球?(被问过)
25匹马赛跑,共有5个赛道,最少赛多少次可以找出前三名、前五名?(被问得太多)
64匹马赛跑,8个赛道的问题。
一个瓶子,有三种颜色糖果,问多少次,能确保拿到两个颜色同等的糖果。
70克盐,20克砝码,一个天平,称出5克盐。
两个杯子倒水:一个7升,一个3升,如何在一个杯子倒出5升?(被广州一家公司问过,公司名字我记不太清了,当时说了两种方法)
两根分布不屈均的烛炬,每根燃烧的韶光是一个小时,问若何算出15分钟的韶光?(秋招时上海美团三面有问,一开始没思路,口试官一贯在勾引)
测开岗高频算法题:三个数字的最大乘积
有两个很长很很长的字符串,但是字符都是数字,实现这俩字符串的加法,输出为一个字符串。如str1="1231213347845713824718237489123748343246217489132", str2="623478573127438912743892017489132748172341324132"
两数之和 标签:哈希表 (★★★)
str1能不能最多交流两次字符变成str2,并设计测试用例。
和为s的连续正数序列 标签:暴力、双指针
有效括号 标签:栈 (★★★★)
数组中重复的数字 标签:哈希表 (★★★★★)
7的倍数或者包含7打印"-",别的的打印数字,每行不超过5个数字
从1到100000000中取出一个数(自己申明一个变量,比如num = 2333),写代码找出取出的是哪个数。 标签:二分查找
一个数在有序数组里涌现的次数。标签:二分
字符串转整数,并写测试用例。 标签:数学,有很多非数字类型须要考虑,还有数字越界的情形须要考虑,比较稽核测试思维 (★★★★★)
连续子数组的最大和 标签:分治、DP (★★★★)
在字符串中找出没有重复字符的最长的连续子串,并返回子串及长度,譬如“aaabcdcbcbbb" 最宗子串为abcd,长度为4
判断链表是否有环 标签:双指针
两个栈实现一个行列步队 (★★)
最长不含重复字符的子字符串 标签:双指针、滑动窗口 (★★★★★)
可以创造,测开岗的算法题难度相对要低一些,差不多都是 剑指offer上或者 力扣上的热门且难度为大略、中等的题。把每个 标签的前5~10道题刷一刷,口试的时候基本够用。
数据库:数据库:三张表food(id,name), materials(id, price), xxx(food_id, materials_id, quality) 给food_id,求本钱
数据库:表中有学生,课程,分数,求均匀分最高的学生
给定成绩表中的id、name、subject、score、stu_id,打算每个人的总成绩并排名(哀求显示字段:姓名,总成绩)
mysql语句统计表中男女生人数
SQL多表联结
数据库:查找均匀分>60分的学生姓名 -- 采取嵌套查询
left join , right join, inner join的差异
SQL语句:三张表学生表,成绩表,课程表查询学生A的语文成绩
Sql--查询每门课程都大于60分的学生姓名
MYSQL对学天生就列表进行分组求和并对成绩从高到低排序
sql语句查询课程1的成绩比课程2 的成绩高的学号
联表查询 学生表(学生id,姓名,性别,分数)student(s_id,name,sex,score),班级表(班级id,班级名称)class(c_id,c_name),学生班级表(班级id,学生id)student_class(c_id,s_id) ,(1)查询一班得分在80分以上的学生 (2)查询所有班级的名称,和所有班中女生人数和女生的均匀分
Linux知识点(★★★★)已根据口试经历,将高频考点用★标注,可以优先看带★的。
题一:(★★★★★)
绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?
答案:
绝对路径: 如/etc/init.d
当前目录和上层目录: ./ ../
主目录: ~/
切换目录: cd
问题二:(★★★★★)
怎么查看当提高程?怎么实行退出?怎么查看当前路径?
答案:
查看当提高程: ps
实行退出: exit
查看当前路径: pwd
问题三:
怎么清屏?怎么退出当前命令?怎么实行就寝?怎么查看当前用户 id?查看指定帮助用什么命令?
答案:
清屏: clear
退出当前命令: ctrl+c 彻底退出
实行就寝 : ctrl+z 挂起当提高程fg 规复后台
查看当前用户 id: ”id“:查看显示目前上岸账户的 uid 和 gid 及所属分组及用户名
查看指定帮助: 如 man adduser 这个很全 而且有例子; adduser --help 这个见告你一些常用参数; info adduesr;
问题四:(★★★★★)
Ls 命令实行什么功能? 可以带哪些参数,有什么差异?
答案:
ls 实行的功能: 列出指定目录中的目录,以及文件
哪些参数以及差异: a 所有文件l 详细信息,包括大小字节数,可读可写可实行的权限等
问题五:
建立软链接(快捷办法),以及硬链接的命令。
答案:
软链接: ln -s slink source
硬链接: ln link source
问题六:(★★★★)
目录创建用什么命令?创建文件用什么命令?复制文件用什么命令?
答案:
创建目录: mkdir
创建文件:范例的如 touch,vi 也可以创建文件,实在只要向一个不存在的文件输出,都会创建文件
复制文件: cp 7. 文件权限修正用什么命令?格式是怎么样的?
文件权限修正: chmod
格式如下:
问题八:(★★★★★)
查看文件内容有哪些命令可以利用?
答案:
vi 文件名 #编辑办法查看,可修正
cat 文件名 #显示全部文件内容
more 文件名 #分页显示文件内容
less 文件名 #与 more 相似,更好的是可以往前翻页
tail 文件名 #仅查看尾部,还可以指定行数
head 文件名 #仅查看头部,还可以指定行数
问题九:
随意写文件命令?怎么向屏幕输出带空格的字符串,比如”hello world”?
答案:
写文件命令:vi
向屏幕输出带空格的字符串:echo hello world
问题十:
终端是哪个文件夹下的哪个文件?黑洞文件是哪个文件夹下的哪个命令?
答案:
终端 /dev/tty
黑洞文件 /dev/null
问题十一:(★★★★)
移动文件用哪个命令?改名用哪个命令?
答案:
mv mv
问题十二:(★★★★)
复制文件用哪个命令?如果须要连同文件夹一块复制呢?如果须要有提示功能呢?
答案:
cp cp -r ????
问题十三:(★★★★)
删除文件用哪个命令?如果须要连目录及目录下文件一块删除呢?删除空文件夹用什么命令?
答案:
rm rm -r rmdir
问题十四:
Linux 下命令有哪几种可利用的通配符?分别代表什么含义?
答案:
“?”可替代单个字符。
“”可替代任意多个字符。
方括号“[charset]”可替代 charset 集中的任何单个字符,如[a-z],[abABC]
问题十五:(★★★★★)
用什么命令对一个文件的内容进行统计?(行号、单词数、字节数)
答案:
wc 命令 - c 统计字节数 - l 统计行数 - w 统计字数。
问题十六:(★★★★★)
Grep 命令有什么用? 如何忽略大小写? 如何查找不含该串的行?
答案:
是一种强大的文本搜索工具,它能利用正则表达式搜索文本,并把匹 配的行打印出来。
grep [stringSTRING] filename grep [^string] filename
问题十七:(★★★★★)
Linux 中进程有哪几种状态?在 ps 显示出来的信息中,分别用什么符号表示的?
答案:
问题十八:
怎么使一个命令在后台运行?
答案:
一样平常都是利用 & 在命令结尾来让程序自动运行。(命令后可以不追加空格)
问题十九:(★★★★★)
利用 ps 怎么显示所有的进程? 怎么利用 ps 查看指定进程的信息?
答案:
ps -ef (system v 输出)
ps -aux bsd 格式输出
ps -ef | grep pid
问题二十:
哪个命令专门用来查看后台任务?
答案:
job -l
问题二十一:
把后台任务调到前台实行利用什么命令?把停下的后台任务在后台实行起来用什么命令?
答案:
把后台任务调到前台实行 fg
把停下的后台任务在后台实行起来 bg
问题二十二:(★★★)
终止进程用什么命令? 带什么参数?
答案:
kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]
kill-9 pid
问题二十三:
怎么查看系统支持的所有旗子暗记?
答案:
kill -l
问题二十四:
搜索文件用什么命令? 格式是怎么样的?
答案:
find <指定目录> <指定条件> <指定动作>
whereis 加参数与文件名
locate 只加文件名
find 直接搜索磁盘,较慢。
find / -name "string"
问题二十五:
查看当前谁在利用该主机用什么命令? 查找自己所在的终端信息用什么命令?
答案:
查找自己所在的终端信息:who am i
查看当前谁在利用该主机:who
问题二十六:
利用什么命令查看用过的命令列表?
答案:
history # 查看历史命令 保留1000个历史命令,超出会将最老的删除
!
951 # 可以根据查得命名编号直接在其前个感叹号实行这个编号对应的命令
问题二十七:(★★★★★)
利用什么命令查看磁盘利用空间? 空闲空间呢?
答案:
df -hl
文件系统 容量 已用 可用 已用% 挂载点
Filesystem Size Used Avail Use% Mounted on /dev/hda2 45G 19G 24G 44% /
/dev/hda1 494M 19M 450M 4% /boot
问题二十八:(★★★★★)
利用什么命令查看网络是否连通?
答案:
netstat
问题二十九:(★★★★★)
利用什么命令查看 ip 地址及接口信息?
答案:
ifconfig
问题三十:
查看各种环境变量用什么命令?
答案:
查看所有 env
查看某个,如 home: env $HOME
问题三十一:
通过什么命令指定命令提示符?
答案:
问题三十二:
查找命令的可实行文件是去哪查找的? 怎么对其进行设置及添加?
答案:
whereis [-bfmsu][-B <目录>...][-M <目录>...][-S <目录>...][文件...]
补充解释:whereis 指令会在特定目录中查找符合条件的文件。这些文件的烈性应属于原始代码,二进制文件,或是帮助文件。
问题三十三:
通过什么命令查找实行命令?
答案:
which 只能查可实行文件
whereis 只能查二进制文件、解释文档,源文件等
问题三十四:
怎么对命令进行取别名?
答案:
alias la='ls -a'
问题三十五:
du 和 df 的定义,以及差异?
答案:
du 显示目录或文件的大小
df 显示每个<文件>所在的文件系统的信息,默认是显示所有文件系统。
(文件系统分配个中的一些磁盘块用来记录它自身的一些数据,如 i 节点,磁盘分布图,间接块,超级块等。这些数据对大多数用户级的程序来说是不可见的,常日称为 Meta Data。) du 命令是用户级的程序,它不考虑 Meta Data,而 df 命令则查看文件系统的磁盘分配图并考虑 Meta Data。
df 命令得到真正的文件系统数据,而 du 命令只查看文件系统的部分情形。
问题三十六:(★★★★★)
awk 详解。
答案:
问题三十七:
当你须要给命令绑定一个宏或者按键的时候,该当怎么做呢?
答案:
可以利用bind命令,bind可以很方便地在shell中实现宏或按键的绑定。
在进行按键绑定的时候,我们须要先获取到绑定按键对应的字符序列。
比如获取F12的字符序列获取方法如下:先按下Ctrl+V,然后按下F12 .我们就可以得到F12的字符序列 ^[[24~。
接着利用bind进行绑定。
[root@localhost ~]# bind ‘”\e[24~":"date"'
把稳:相同的按键在不同的终端或终端仿照器下可能会产生不同的字符序列。
【附】也可以利用showkey -a命令查看按键对应的字符序列。
问题三十八:
如果一个linux新手想要知道当前系统支持的所有命令的列表,他须要怎么做?
答案:
利用命令compgen -c,可以打印出所有支持的命令列表。
问题三十九:
如果你的助手想要打印出当前的目录栈,你会建议他怎么做?
答案:
利用Linux 命令dirs可以将当前的目录栈打印出来。
【附】:目录栈通过pushd popd 来操作。
问题四十:
你的系统目前有许多正在运行的任务,在不重启机器的条件下,有什么方法可以把所有正在运行的进程移除呢?
答案:
利用linux命令 ’disown -r ’可以将所有正在运行的进程移除。
问题四十一:
bash shell 中的hash 命令有什么浸染?
答案:
linux命令’hash’管理着一个内置的哈希表,记录了已实行过的命令的完全路径, 用该命令可以打印出你所利用过的命令以及实行的次数。
问题四十二:
哪一个bash内置命令能够进行数算。
答案:
bash shell 的内置命令let 可以进行整型数的数算。
#! /bin/bash
…
…
let c=a+b
…
…
问题四十三:(★★★★★)
若何一页一页地查看一个大文件的内容呢?
答案:
通过管道将命令”cat file_name.txt” 和 ’more’ 连接在一起可以实现这个须要.
[root@localhost ~]# cat file_name.txt | more
问题四十四:
数据字典属于哪一个用户的?
答案:
数据字典是属于’SYS’用户的,用户‘SYS’ 和 ’SYSEM’是由系统默认自动创建的
问题四十五:
若何查看一个linux命令的概要与用法?假设你在/bin目录中有时看到一个你从没见过的的命令,若何才能知道它的浸染和用法呢?
答案:
利用命令whatis 可以先出显示出这个命令的用法简要,比如,你可以利用whatis zcat 去查看‘zcat’的先容以及利用简要。
问题四十六:
利用哪一个命令可以查看自己文件系统的磁盘空间配额呢?
答案:
利用命令repquota 能够显示出一个文件系统的配额信息
————————————————
须要推举软件测试题库可以斯我:题库~