软件测试面试大全

软件测试面试大全

一、软件测试基础部分

该部分主要围绕测试基础知识,测试理论、测试方法、测试周期等方面汇总的面试问题。

1、软件项目成员有哪些?

  1. 项目经理: 驱动整个项目的运转,负责制定计划,安排人力,管理进度,协调团队,进行重大决策。
  2. 产品经理(需求开发人员): 和客户沟通需求,并制定产品需求
  3. 架构师 / 系统工程师: 技术专家,经验丰富,负责整个系统的体系架构的设计以及关键模块的设计。
  4. 程序员 / 开发人员: 设计、编写软件,并修复软件中的缺陷。
  5. 测试工程师: 负责找出软件产品存在的问题并报告。

2、软件的概念是什么?

  1. 定义:计算机系统中与硬件相互依存的一部分,它是包括程序,数据及其相关文档的完整集合
  2. 程序:按事先设计的功能和性能要求执行的指令序列
  3. 数据:使程序能正常操纵信息的数据结构
  4. 文档:与程序开发、维护和使用有关的图文资料

3、你对软件测试的定义是怎么的?

  • 定义:软件质量保证的一种手段
  • 概念:是软件工程中的一个非常重要的环节,是开发项目整体的一部分。是有计划有组织的,是伴随软件工程的诞生而诞生的,软件测试不是万能的,不可能发现全部缺陷,软件测试是有局限性的。
  • 目的:验证被测对象是否实现用户需求
  • 弄清:实际结果与预期结果之间的差异

4、你对软件Bug的概念是怎样的?

1. 你怎么定义是不是Bug?

  • 软件没有实现产品的说明书所描述的功能。
  • 软件实现了产品说明书描述不应有的功能。
  • 软件执行了产品说明书没讲的操作。
  • 软件没有实现产品说明书没描述但应该实现的功能(用户体验相关)。
  • 从软件测试员的角度来看,软件难以理解、不易使用、运行缓慢,或者最终用户认为不对。

2. bug的类型都有哪些?

  • Bug有代码编写错误导致的功能问题
  • Defect缺,实现与需求不一致
  • Fault即故障,由于环境系统问题引起运行失败
  • Error即错误,语法错误,逻辑错误,不易发现

5、软件Bug级别有几种?

  • 微小的==》一些小问题
    如:错字,文字排版不整齐等,对功能几乎没有影响,软件产品仍可使用。

  • 一般的==》不太严重的错误
    如:主要功能模块部分丧失、提示信息不够准确、用户界面差和操作运行时间长等。

  • 严重的==》严重错误
    指功能模块和特性没有实现,主要功能部分丧失,次要功能全部丧失。

  • 致命的==》严重的致命的错误
    造成系统崩溃,四级,或造成数据丢失、主要功能完全丧失等。
    如:死机、宕机、黑白屏无法使用、完全卡死

6、软件Bug状态有哪些?

  • 激活状态==》问题没解决
    测试人员新报告的缺陷或者验证后缺陷仍存在。

  • 已修正状态==》开发人员针对缺陷
    修正软件后已解决问题或已通过单元测试 。

  • 关闭状态==》测试人员经过验证后,确认缺陷不存在之后的状态 。

  • 遗留状态==》此次版本升级不修改,遗留到下一版本修改。

  • 非错状态==》就是此问题不是一个Bug,开发可以直接置为关闭

7、你对软件质量是怎样定义的?

  • 软件质量就是“软件与明确的和隐含的定义的需求相一致的程度”;
  • 明确的需求指:软件符合明确叙述的功能和性能需求、文档中明确描述的开发标准;
  • 隐含的需求指:所有专业开发的软件都应具有的隐含特征的程度,比如:符合行业标准。
  • 内部质量:软件内部的设计和静态测试是否合格
  • 过程质量:关注软件的整个生产流程是否规范是否合理
  • 外部质量:关注软件产品本身的功能和性能表现
  • 使用质量:关注软件在使用过程中易用性满意度的表现

8、软件质量的特性有哪些?

  • 件质量的六大特性是什么?
    1.功能性
    定义:软件在指定的使用环境下,满足用户显性或隐性需求的能力
    适合性:软件为指定的任务和用户目标提供一组合适功能的能力
    准确性:软件提供具有所需精确度的正确或相符的結果或效果的能力
    互操作性:软件与一个或更多个的规定系统进行交互的能力
    2.可靠性
    定义:软件在指定的条件下使用,维持规定的性能级别的能力
    成熟性:软件为避免由软件中错误而导致失控的能力,
    容错性:在软件出现故障或违反指定接口的情况下,软件维持规定性能级别的能力,
    易恢复性:在失效发生的情况下软件里重建规定的件能级别并恢复受直接影响的数据的能力
    可靠性依从性:软件遵循与可靠件相关的标准,约定以及法律法规的能力
    3.效率
    定义:在规定的条件下,相对于所用资源的数量,软件提供适当性能的能力
    时间特性:在规定的条件下软件执行其功能时,提供适当的响应和处理时间以及吞吐率的能力
    资源利用性:在规定的条件下软件执行其能力时,使用合适的资源数量和类别的能力
    效率依从件:软件遵循与效率相关的标准和约定的能力
    4.易用性
    定义:在指定的条件下使用时,软件被学习,理解,使用和吸引用户的能力
    易理解性:软件的使用,用户能理解软件是否合适,以及如何将软件用于特定的任务和使用环境的能力
    易学习:软件使用户能学习其应用的能力易操作性:软件使用用户操作和控制它的能力
    吸引性:软件吸引用户的能力
    易用性依从性:遭循与易用性相关的标准、约定风格指南或法规的能力
    5.可维护
    定义:软件可被修改的能力,修改可能包括修正、改进或软件对环境、需求和功能规格说明变化的适应性
    易分析性:软件诊断软件的缺陷,失效原因或识别待修改部分的能力,
    易改变性:软件指定的修改可以被实现的能力
    稳定性:软件避免由于软件修改而造成意外结果的能力,
    易测试性:软件使已修改软件能被确认的能力
    可维护依从性:遵循与维护相关标准和约定的能力
    6.可移植
    定义:软件从一种环境迁移到另一种环境的能力
    适用性:软件能适用于不同的环境的能力
    易安装性:软件在指定环境中被安装的能力
    共存性:软件在公共环境中同与其分享公共资源的其他独立软件共存的能力
    易替换性:软件在同样的环境下,替代另一个相同用途的指定软件产品的能力
    可移植性依从性:软件遵循可移植性相关的标准和约定的能力

9、软件生命周期概念是什么?

需求分析 —》可行性分析 —》概要设计 —》详细设计 —》编码实现 —》调试和测试 —》软件验收与应用 —》维护升级 —》废弃

10、软件测试目的是什么?

测试的目的不仅仅是为了发现软件缺陷与错误,而且也是对软件质量进行度量和评估,以提高软件的质量。

  1. 发现:被测对象与用户需求之间的差异
  2. 增加:用户对被测对象的质量信息
  3. 获取被测对象信息,为决策提供依据
  4. 为软件质量的可持续运行提供保障
  5. 预防Bug,降低风险

11、软件测试原则是什么?

基于测试是为了寻找软件的错误与缺陷,评估与提高软件质量,因此我们提出了这样的一组测试原则,如下所示。

  1. 所有的软件测试都应追溯到用户需求。
  2. 应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭。
  3. 完全测试是不可能的,测试需要终止。
  4. 测试无法显示软件潜在的缺陷。
  5. 充分注意测试中的群集现象。
  6. 程序员应避免检查自己的程序。
  7. 尽量避免测试的随意性

12、测试分为哪几个阶段?

  • 单元测试
  • 集成测试
  • 系统测试
  • 验收测试

13、如何做好测试计划

5W原则:

  1. What (明确测试什么)
  2. Why(明确测试目标)
  3. When(明确项目开始时间、结束时间)
  4. How(明确测试方案)
  5. Where(明确资料的位置)

14、软件测试流程

  • 第一步:
    对要执行测试的产品/项目进行需求分析,确定测试策略,制定测试计划。该计划被审核批准后转向第二步。测试工作启动前一定要确定正确的测试策略和指导方针,这些是后期开展工作的基础。只有将本次的测试目标和要求分析清楚,才能决定测试资源的投入。

  • 第二步:
    设计测试用例。设计测试用例要根据测试需求和测试策略来进行,进度压力不大时,应该设计的详细,如果进度、成本压力较大,则应该保证测试用例覆盖到关键性的测试需求。该用例被批准后转向第三步。

  • 第三步:
    如果满足“启动准则”(EntryCriteria),那么执行测试。执行测试主要是搭建测试环境,执行测试用例。执行测试时要进行进度控制、项目协调等工作。

  • 第四步:
    提交缺陷。这里要进行缺陷审核和验证等工作。

  • 第五步:
    消除软件缺陷。通常情况下,开发经理需要审核缺陷,并进行缺陷分配。程序员修改自己负责的缺陷。在程序员修改完成后,进入到回归测试阶段。如果满足“完成准则”(ExitCriteria),那么正常结束测试。

  • 第六步:
    撰写测试报告。对测试进行分析,总结本次的经验教训,在下一次的工作中改。
    软件测试过程管理,主要包括软件测试是什么样的过程,如何评价一个软件测试过程,如何进行配置管理和测试风险分析以及测试成本的管理。

15、了解测试流程吗?

  1. 需求分析【需求沟通,确定需求,功能点含义,】
  2. 需求评审【制定测试方案】
  3. 设计测试用例
  4. 用例评审
  5. 测试计划
  6. 搭建测试环境
  7. 测试执行
  8. bug 处理
  9. 回归测试
  10. 测试报告
  11. 跟进上线

16、了解 bug 处理流程吗?

在这里插入图片描述
bug分级;优先级(高中低)、严重程度(高中低)
bug分类:UI、系统、接口
bug状态:新建、待修改、待验证、已验证、遗留、关闭

17、你工作中的沟通对象一般都是哪些人?

  • 产品、开发、UED
  • 市场、运维、运营
  • 领导、下属

18、常用的测试工具有哪些?

  1. 网络调试工具:Fiddler
  2. 页面调试工具: Chrome Inspector firebug
  3. WEB自动化工具:QTP、Selenium
  4. 移动端工具: ADB,Monkey, MonkeyRunner
  5. 移动端自动化框架:Appium 、Robotium 、Android、selendroid
  6. 平台知识:windows、mac、android、Linux
  7. 服务端压力工具Loadrunner、JMter
  8. mysql 可视化工具

19、工作效率如何?都有哪些成果?

  1. 如何安排任务的,如何提高测试效率?
  2. 工作中的成果都有哪些?
  3. 如何团队间协调工作的?

20、测试执行步骤是怎么样的?

  1. 部署测试环境
  2. 对测试用例进行分类
  3. 执行测试用例
  4. 记录测试结果,对缺陷进行分级分类
  5. 反馈缺陷并跟踪直至缺陷关闭

21、软件测试模型有哪些?

  • 瀑布流
    计划—>需求分析—>设计—>编码—>测试—>运行维护
    瀑布模型是最正宗最规范的流程。
    特点:
    1.软件开发的各项活动严格按照线性方式进行。
    2.当前活动接受上一项活动的工作结果。
    3.当前活动的工作结果需要进行验证。
    缺点:
    1.由于开发模型是线性的,增加了开发的风险。
    2.早期的错误可能要等到开发后期的阶段才能发现

  • V字形

  • W字型(双V)

  • 螺旋型
    制定计划—>风险分析—>实施工程(需求确认、软件需求、软件产品设计、设计确认与认证、详细设计、开发、测试)—>客户评估。
    特点:
    1.螺旋模型是将瀑布模型与快速原型模型结合起来
    2.强调了其他模型所忽视的风险分析
    3.每一次螺旋包括4个步骤:制定计划、风险分析、实施工程、客户评估

  • 敏捷
    特点:
    1.短周期开发
    2.增量开发
    3.由程序员和测试人员编写的自动化测试来监控开发进度
    4.通过口头沟通、测试和源代码来交流系统的结构和意图
    5.编写代码之前先写测试代码,也叫做测试先行
    缺点:
    1.团队的组建较难,人员素质要求较高
    2.对测试员要求完全掌握各种脚本语言编程,能执行单元测试、自动化测试

  • X模型

  • H模型

  • 原型模型
    客户与开发公司紧密联系,开发周期长。开发会受到需求变更的影响
    特点:
    1.实现客户与系统的交互。
    2.进一步细化待开发软件需求。
    3.开发人员可以确定客户的真正需求是什么

22、测试用例是怎么设计的?

用例设计:

  1. 对需求进行模块化分解;
  2. 使用科学有效的设计方法;

测试用例都有哪些设计方法
6种黑盒测试方法,如下:

  1. 等价类划分法 (有效、无效)
  2. 边界值分析法 (+1,-1)
  3. 因果图表法 ()
  4. 判定表方法
  5. 状态迁移法
  6. 正交实验法 (多组合交互组合测试)
  7. 错误推错法 (经验)
  8. 场景法 (登陆成功,成功后购买成功、登陆成功,成功后购买失败,登陆失败)

测试用例覆盖类型:

  1. UI界面检查
  2. 功能逻辑
  3. 流程验证
  4. 网络问题
    网络不通
    2G/3G/4G网络切换
    飞行模式
  5. 数据升级
  6. 适配
  7. 版本兼容和系统兼容

23、测试计划包含哪一些内容?

  • 概述
  1. 测试目的
  2. 项目背景
  3. 测试要求与范围
  4. 预期读者
  5. 参考资料
  • 测试环境
  1. 系统架构
  2. 软硬件环境要求
  3. 测试环境部署图
  • 测试规划
  1. 测试范围
  2. 测试工具
  3. 人员、角色及职责
  • 测试策略
  1. 系统框架测试
  2. 业务流程测试
  3. 功能点测试
  4. UI界面测试
  5. 性能测试
  6. 兼容性测试
  7. 安全测试
  • 测试进度安排
  • 测试风险分析
  • 风险规避

24、测试报告包含有哪些内容?

  1. 测试背景说明
  2. 测试范围说明
  3. 测试环境说明
  4. 测试方法说明
  5. 测试结果结论
  6. 质量或风险评估
  7. 附录缺陷列表

25、一条bug记录包含哪些内容?

  1. 测试工程师、开发人员、bug日期

  2. bug标题, bug正文, bug附件

  3. bug优先级、bug严重等级

  4. bug所属模块

  5. bug状态(新建、已修复、已验证、遗留等)

  6. bug处理记录

26、Alpha测试与Beta测试的区别?

  • Alpha测试是由一个用户在开发环境下进行的测试

  • Beta测试在用户真实环境测试,通过后进入发布阶段

27、软件测试分类

  1. 按照开发阶段划分软件测试:单元测试、集成测试、系统测试、验收测试。

  2. 按照测试实施组织划分软件测试:开发方测试、用户测试(alpha测试,Beta测试)、第三方测试。

  3. 按照测试技术划分:白盒测试、灰盒测试、黑盒测试。

软件测试方法和技术的分类与软件开发过程相关联,它贯穿了整个软件生命周期。

28、软件测试风险

  1. 软件测试中的软件风险分析是根据预测软件将出现的风险,制定软件测试计划并排列优先等级,风险分析是对软件中潜在的问题进行识别、估计和评价的过程。

  2. 风险也包括进度风险、质量风险、人员风险、变更风险、成本风险等

29、TDD(测试驱动开发,Test Driver Developer)

测试驱动开发的基本思想就是在开发功能代码之前,先编写测试用例。也就是说在明确要开发某个功能后,首先思考如何对这个功能进行测试,并完成测试代码的编写,然后编写相关的代码满足这些测试用例。然后循环进行添加其他功能,直到完成全部功能的开发。

30、各种测试名词解释

  • 什么是单元测试(Unit Testing)
  1. 单元测试是指对软件中的最小可测试单元进行检查和验证。
  2. 对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。
  3. 总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。
  • 什么是集成测试(Integration Test)
  1. 集成测试,也叫组装测试或联合测试。
  2. 在单元测试的基础上,将所有模块按照设计要求(如根据结构图〕组装成为子系统或系统,进行集成测试。
  3. 实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现。
  • 集成测试的关注点:
    1.在把各个模块连接起来时,穿越模块接口的数据是否会丢失。
    2.各个子功能组合起来,能否达到预期的要求。
    3.一个模块的功能是否会对另一个模块的功能产生不利的影响。

  • 集成测试可以划分成3个级别:

  1. 模块内集成测试。
  2. 子系统内集成测试。
  3. 系统间集成测试。
  • 什么是系统测试(System Testing)
  1. 将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试.
  2. 系统测试是针对整个产品系统进行的测试
  3. 目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案
  4. 系统测试发现问题之后要经过调试找出错误原因和位置,然后进行改正。是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。
  5. 对象不仅仅包括需测试的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等。
  • 系统测试范围/策略
    功能测试、性能测试、压力测试、容量测试、安全性测试、GUI测试、安装测试、配置测试、异常测试、备份测试、健壮性测试、文档测试、在线帮助测试、网络测试、稳定性测试
  • 什么是验收测试(Acceptance Test)
  1. 它是一项确定产品是否能够满足合同或用户所规定需求的测试。这是管理性和防御性控制
  2. 主要确认软件是否按合同要求进行工作,既是否满足软件需求规格说明书中的要求。
  • 验收测试分类:
  1. 非正式的验收测试
    а测试(alpha)
    软件开发公司组织内部人员模拟各类用户行为对即将上市的产品进行测试。
    ß测试(beta)
    软件开发公司组织各方面的典型客户在日常工作中实际使用,并要求用户报告异常情况、提出改进意见,然后公司再进行完善。
  2. 正式的验收测试
    有正规的测试过程,需要制定测试计划、定义测试方案、选择测试用例,进行测试,结果提交。着重考虑软件是否满足合同规定的所有功能和性能,文档资料是否完整、准确,人机界面和其他方面。
  • 静态测试(Static Testing)
    在这里插入图片描述

  • 动态测试(Execution-Based Testing)
    实际运行被测试的软件,输入相应的测试数据,检查界面的输出结果是否和预期结果相一致的过程。

  • 黑盒测试(Black box)
    把软件看成一个黑盒子,不管内部逻辑和内部特性,只依据规格说明书检查程序的功能是否符合功能说明

  • 白盒测试(White box)
    又称为结构测试。着重于程序内部结构和算法,不关心功能和性能指标。

  • 灰盒测试(Gray box)
    介于白盒和黑盒测试之间,基于程序运行时刻的外部表现同时又结合程序内部逻辑结构来设计用例,执行程序并采集程序路径执行信息和外部用户接口结果的测试技术。

  • 灰盒测试有啥缺点?
    当然,凡事都有优点和缺点,灰盒测试自然也不例外。下面列举它的主要缺点。

  1. 不适用于简单的系统
       所谓的简单系统,就是简单到总共只有一个模块。由于灰盒测试关注于系统内部模块之间的交互。如果某个系统简单到只有一个模块,那就没必要进行灰盒测试了。
  2. 对测试人员的要求比黑盒测试高
      从上面的介绍来看,灰盒测试要求测试人员清楚系统内部由哪些模块构成,模块之间如何协作。因此,对测试的要求就提高了。因此,会带来一定的培训成本。不过捏,依照俺的经验,培训难度不大。稍微有点基础的测试人员,都可以在短期培训之后胜任。
  3. 不如白盒测试深入
    显然,灰盒不如白盒那么深入。不过捏,考虑到灰盒测试相比白盒测试有显著的成本优势,该缺点不是太明显。
  • 回归测试(Regression Testing )
    对软件的新版本测试时,重复执行上一个版本测试时使用的测试用例。防止出现“以前应用没有的问题现在出问题了” 。

  • 冒烟测试(BVT测试(Build Verification Test ))
    冒烟测试的对象是每一个新编译需要正式测试的版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。冒烟测试,也叫预测试。

  • 随机测试(又名猴子测试,探索性测试)
    测试数据是随机产生的,在测试用例之外。只能作为一个测试的补充。

  • 敏捷测试(敏捷开发引起)
    首先敏捷测试(Agile testing)是测试的一种,原有测试定义中通过执行被测系统发现问题,通过测试这种活动能够提供对被测系统提供度量等概念还是适用的。

  • TDD(测试驱动开发,Test Driver Developer)
    测试驱动开发的基本思想就是在开发功能代码之前,先编写测试用例。也就是说在明确要开发某个功能后,首先思考如何对这个功能进行测试,并完成测试代码的编写,然后编写相关的代码满足这些测试用例。然后循环进行添加其他功能,直到完成全部功能的开发。

二、网络基础知识

本篇收集了几个被问的频率较高的linux面试题

1、linux 常用命令 — 基础命令

  1. cd
    语法:cd [路径]
    功能:切换目录
    进入home目录:cd /home
    cd . :进入当前目录
    cd … :进入上一级目录
    cd - :进入上次的目录
    cd :进入当前目录的home目录
    cd ~ :进入当前目录的home目录
    cd / :进入到根目录
  2. ls
    语法:ls [选项] [路径]
    功能:显示文件以及目录
    -a 显示所有文件以及目录。
    -l 列出文件名称外,还将文件形态、权限、拥有者、文件大小等详细信息列出。
    例:
    1.ls:显示当前目录下的所有文件及目录
    2.ls /home:显示home目录下的所有文件及目录
  3. cp
    语法:cp [选项] 源文件或目录 目标文件或目录
    功能:拷贝文件
    -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
    -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
    例:cp /home/test1.txt /data
    将home目录下的test1.txt文件复制到data目录下
  4. mkdir
    语法:mkdir [文件夹名]
    功能:新建一个目录
    例:mkdir /user_tool
    建立一个名字为“user_tool”的文件夹
  5. rmdir
    语法:rmdir [选项] [文件夹名]
    功能:删除目录
    - p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。
    例:rmdir /user_tool
    删除一个名字为“user_tool”的文件夹
  6. rm
    语法:rm [选项] [文件以及文件夹]
    功能:删除档案及目录
    -r是递归处理,就是一层一层的删;将目录及以下之档案亦逐一删除。
    -f是强制删除。
    例:rm -r homework
    删除homework目录及其下的所有文件及子目录
    rm -r *
    删除当前目录下的所有文件及目录
  7. tar
    压缩和解压命令
    语法:tar [选项] [文件目录列表]
    功能:对文件目录进行打包备份
    tar -cvf log.tar log2012.log 仅打包,不压缩!
    tar -zcvf log.tar.gz log2012.log 打包后,以 gzip 压缩
    tar -jcvf log.tar.bz2 log2012.log 打包后,以 bzip2 压缩
    tar –xvf file.tar 解压 tar包
    tar -xzvf file.tar.gz 解压tar.gz
    tar -xjvf file.tar.bz2 解压 tar.bz2
    tar –xZvf file.tar.Z 解压tar.Z
  8. mv
    修改文件或文件夹名
    mv [options] 源文件或目录 目标文件或目录。
    例:
    mv test.txt wbk.txt
    mv file1 file2
    把当前目录下的file1文件名改成file2,如果该目录下有file2,则覆盖以前的file2文件。
  9. pwd
    语法:pwd
    显示当前工作目录的绝对路径
  10. clear
    语法:clear
    功能:清屏
  11. cat
    查看文件
    例:
    cat /proc/version
    查看linux内核版本
  12. chmod
    语法格式为:chmod [who] [opt] [mode] 文件/目录名
    功能:修改文件的写读执行权限
    参数分别表示User、Group、及Other的权限。
    r=4,w=2,x=1
    若要rwx属性则4+2+1=7;
    若要rw-属性则4+2=6;
    若要r-x属性则4+1=5。
    例:chmod 777 a.txt
  13. find
    语法:find [文件及路径]
    功能:查找指定的文件
    find . -name “*.c”
    将目前目录及其子目录下所有扩展名是c的文件列出来。
  14. vi
    语法:vi/vim 文件名
    功能:编辑文件
  15. locate
    语法:cp [选项][文件目录]
    功能:查找文件或目录
    例:
    locate /etc/my
    /etc/my.cnf
    搜索etc目录下所有以my开头的文件
  16. grep
    语法:grep [选项] ”模式“ [文件]
    功能:搜索字符串得 grep 命令
    例:grep test *file
    在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件
  17. ps
    语法:ps [options] [–help]
    功能:显示当前进程 (process) 的状态
    例:ps -a
    列出所有的进程
  18. kill
    语法:kill [进程名]
    功能:杀死进程
    例:
    kill 12345
    将进程12345结束
    注意:可以先用ps 或 top命令查看进程的id,然后再用kill命令杀死进程
  19. tree
    功能:以树状图列出文件目录结构
    注意:如果tree安装包没有安装,请执行:sudo apt install tree
  20. tail
    查看文件的后几行
    -n 后面接数字,表示查看几行(也可以不加, 默认查看文件后10 行 )
    例:tail -5 /etc/passwd
    查看后5行内容
  21. top
    用于动态地监视进程活动与系统负载等信息,其格式为top,按q退出。 在这里插入图片描述

    PID:当前运行进程的ID USER:进程属主 PR:每个进程的优先级别
    NInice:反应一个进程“优先级”状态的值,其取值范围是-20至19,一共40个级别。这个值越小,表示进程”优先级”越高,而值越大“优先级”越低。一般会把nice值叫做静态优先级
    VIRT:进程占用的虚拟内存
    RES:进程占用的物理内存
    SHR:进程使用的共享内存
    S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
    %CPU:进程占用CPU的使用率 %MEM:进程使用的物理内存和总内存的百分比
    TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
    COMMAND:进程启动命令名称

  22. free查看内存

    total : 总计物理内存的大小。
    used : 已使用多大。
    free : 可用有多少。
    Shared : 多个进程共享的内存总额。
    Buffers/cached : 磁盘缓存的大小。
    available:可用有多少。
    Swap:用于临时内存,当系统的真实内存不够用时,可以临时使用磁盘空间来充当内存。

  23. cat /proc/meminfo查看内存
    在这里插入图片描述

2、http/https协议

  1. 浏览器输入url按回车背后经历了哪些?
    (1)进行DNS解析(域名解析),获取Web服务器的IP地址。
    (2)建立TCP连接。
    三次握手过程:
    第一次握手:客户端向服务器端发送请求,等待服务器确认。
    第二次握手:服务器收到请求并确认,回复一个指令。
    第三次握手:客户端收到服务器的回复指令并返回确认。
    (3)向Web服务器发送HTTP请求。
    (4)Web服务器接收到请求并处理。
    (5)Web服务器返回响应。
    (6)浏览器对响应进行解码,并显示数据。
    (7)页面显示完成后,浏览器发送异步请求。
    (9)关闭TCP连接。

  2. get和post的区别?
    (1).GET在浏览器回退时是无害的,而POST会再次提交请求。
    (2).GET产生的URL地址可以被Bookmark,而POST不可以。
    (3).GET请求会被浏览器主动cache,而POST不会,除非手动设置。
    (4).GET请求只能进行url编码,而POST支持多种编码方式。
    (5).GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
    (6).get方式提交数据的大小(一般来说1024字节),http协议并没有硬性限制,而是与浏览器、服务器、操作系统有关,而POST理论上来说没有大小限制,http协议规范也没有进行大小限制,但实际上post所能传递的数据量根据取决于服务器的设置和内存大小。
    (7).对参数的数据类型,GET只接受ASCII字符,而POST没有限制。
    (8).GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
    (9).GET参数通过URL传递,POST放在Request body中。

  3. cookies机制和session机制的区别
    具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。
    同时我们也看到,由于采用服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的,但实际上还有其他选择。

  4. 常见的HTTP状态码有哪些?

    • 2xx(3种)
      200 OK:表示从客户端发送给服务器的请求被正常处理并返回
      204 No Content:表示客户端发送给客户端的请求得到了成功处理,但在返回的响应报文中不含实体的主体部分(没有资源可以返回);
      206 Patial Content:表示客户端进行了范围请求,并且服务器成功执行了这部分的GET请求,响应报文中包含由Content-Range指定范围的实体内容。
    • 3xx(5种)
      301 Moved Permanently永久性重定向,表示请求的资源被分配了新的URL,之后应使用更改的URL;
      302 Found临时性重定向,表示请求的资源被分配了新的URL,希望本次访问使用新的URL;
      301与302的区别:前者是永久移动,后者是临时移动(之后可能还会更改URL)
      303 See Other:表示请求的资源被分配了新的URL,应使用GET方法定向获取请求的资源;
      302与303的区别:后者明确表示客户端应当采用GET方式获取资源
      304 Not Modified:表示客户端发送附带条件(是指采用GET方法的请求报文中包含if-Match、If-Modified-Since、If-None-Match、If-Range、If-Unmodified-Since中任一首部)的请求时,服务器端允许访问资源,但是请求为满足条件的情况下返回改状态码;
      307 Temporary Redirect:临时重定向,与303有着相同的含义,307会遵照浏览器标准不会从POST变成GET;(不同浏览器可能会出现不同的情况);
    • 4xx(4种)
      400 Bad Request:表示请求报文中存在语法错误
      401 Unauthorized未经许可,需要通过HTTP认证;
      403 Forbidden:服务器拒绝该次访问(访问权限出现问题
      404 Not Found:表示服务器上无法找到请求的资源,除此之外,也可以在服务器拒绝请求但不想给拒绝原因时使用;
    • 5xx(2种)
      500 Inter Server Error:表示服务器在执行请求时发生了错误,也有可能是web应用存在的bug或某些临时的错误时;
      503 Server Unavailable:表示服务器暂时处于超负载或正在进行停机维护,无法处理请求;
  5. http协议有哪几种请求方式?
    Get:请求指定的页面信息,并返回实体主体
    Post:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中,post请求可能会导致新的资源的建立和/或已有资源的修改
    Head:类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
    Options:允许客户端查看服务器的性能
    Put:从客户端向服务器传送的数据取代指定的文档的内容
    Delete:请求服务器删除指定的页面
    Trace:回显服务器收到的请求,主要用于测试或诊断
    Connect:http/1.1协议中预留给能够将连接改为管道方式的代理服务器

  6. http和https区别?

    • https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
    • http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
    • http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
    • http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
  7. http报文格式是怎样的?
    http的请求报文和响应报文的格式基本一样,主要分为三部分:

    • 起始行(start line): 描述请求或响应的状态
    • 头部字段(header): 以 key:value 的形式展示
    • 数据实体(entity/ body) :实际要传输的数据,可以是文本,也可以是图片、文件、视频等二进制数据
  8. 常见的 POST 提交数据方式

    • application/x-www-form-urlencoded:在发送前编码所有字符(默认),提交的数据按照 key1=val1&key2=val2 的方式进行编码,key 和 val 都进行了 URL 转码。
    • multipart/form-data:不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。
    • text/xml:空格转换为 “+” 加号,但不对特殊字符编码。使用 HTTP 作为传输协议,XML 作为编码方式的远程调用规范。
    • application/json:JSON 格式支持比键值对复杂得多的结构化数据。
  9. 什么是DNS?
    DNS是一个域名系统,是万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串,DNS就是进行域名解析的服务器。。

  10. 什么是Http协议无状态协议?怎么解决Http协议无状态协议?
    无状态协议:

    • 协议对于事务处理没有记忆能力【事物处理】【记忆能力】
    • 对同一个url请求没有上下文关系【上下文关系】
    • 每次的请求都是独立的,它的执行情况和结果与前面的请求和之后的请求是无直接关系的,它不会受前面的请求应答情况直接影响,也不会直接影响后面的请求应答情况【无直接联系】【受直接影响】
    • 服务器中没有保存客户端的状态,客户端必须每次带上自己的状态去请求服务器【状态】

    解决办法:
    加入cookie、session等机制实现有状态的web。

3、TCP/IP协议

  • 模型
    在这里插入图片描述
  • 各层释义
    应用层:
    向用户提供一组常用的应用程序,比如电子邮件、文件传输访问、远程登录等。远程登录TELNET使用TELNET协议提供在网络其它主机上注册的接口。TELNET会话提供了基于字符的虚拟终端。文件传输访问FTP使用FTP协议来提供网络内机器间的文件拷贝功能。
    传输层:
    提供应用程序间的通信。其功能包括:一、格式化信息流;二、提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值