基础测试知识面试题总结

1、阐述软件生命周期都有哪些阶段?常见的软件生命周期模型有哪

些?
它有如下各方面的内容: 初始构思、需 求分析、功能设计、内部设计、文档计划、测试计划、文档准备、集成、测 试、维护、升级、再测试、逐 步淘汰 (phase-out)、等等
瀑布模型,迭代式模型,快速原型模型,螺旋模型
2、 什么是版本控制,常用的版本控制系统有哪些?
版本控制(Revision control)是一种软体工程技巧,籍以在开发的过程中,确保由不同人所编辑的同一 档案都得到更新。
Git(读音为/g ɪ t/。)是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版 本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
https://git-scm.com/doc
SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管 理系统,它的设计目标就是取代 CVS。互联网上很多版本控制服务已从 CVS 迁移到 Subversion。
https://tortoisesvn.net/support.html
3、 简述软件测试与软件开发之间的关系?
(1)项目规划阶段:负责从单元测试到系统测试的整个测试阶段的监控。
(2)需求分析阶段:确定测试需求分析、系统测试计划的制定,评审后成为管理项目。测试需求分析 是对产品生命周期中测试所需求的资源、配置、每阶段评判通过的规约;系统测试计划则是依据软件的需求 规格说明书,制定测试计划和设计相应的测试用例。
(3)详细设计和概要设计阶段:确保集成测试计划和单元测试计划完成。
(4)编码阶段:由开发人员进行自己负责部分的代码的测试。在项目较大时,由专人进行编码阶段的 测试任务。
(5)测试阶段(单元、集成、系统测试):依据测试代码进行测试,并提交相应的测试状态报告和测 试结束报告。
开发和测试是一个有机的整体!在产品的发布之前,开发和测试是循环进行的, 测出的缺陷要经开发 人员修改后继续测试。在开发的同时测试经理开始编写测试用例,测 试文档要参考开发文档,所以开发和 测试是不可分割的,少了任何一个都不能开发出产品。 从角色方面看,像理论和实验的关系,开发人员通过自己的想象创造出一套思想,之 后测试人员再对
它进行检验、证伪,开发人员再修改的过程从而不断丰富产品。从方法方 面看,是演绎和归纳的关系,一 个要掌握大量的技术,一个要不断的从实例中学习。因这 两方面的不同,所以开发和测试看上去做的工作 很不一样。 开发与测试是相辅相承、密不可分的,开发人员开发出新的产品后要通过测试判断产 品是否完全满足 用户的需求。如果发现缺陷,提交给开发人员进行修复,然后再转交测试 人员进行回归测试,直到产品符 合需求规格说明。一个符合用户需求的产品是开发和测试 共同努力的成果。
4、常见测试模型有哪些?
特点:这是一种古老的瀑布模型,反映了实际和测试之间的关系
局限:仅仅把测试过程作为编码之后的一个阶段,忽视了测试对需求分析,系统设计的验证,如果前面 设计错误,得一直到后期的验收测试才被发现,耗时耗力。
特点:测试与开发同时进行,在 V 模型的基础上,增加了在开发阶段的同步测试
局限:仍然不支持迭代,减少了一定错误发生率,但是需按照流水线进行设计、编码和测试
5. 请根据”V”模型分别概述测试人员在软件的需求定义阶段、设计阶段、编码阶段、系统集成阶段的工作任务及其相应生成的文档?
统集成阶段的工作任务及其相应生成的文档?
需求定义阶段:根据项目需求提取测试需求 并形成测试需求文档,根据提取的测试需求和项目计划进 行测试计划的拟定,测试计划文档
设计阶段:根据测试需求拟定测试方案并形成测试方案文档;根据测试方案制定测试用例,并形成测试 用例文档
编码阶段:执行测试并完善测试用例文档
系统集成阶段:测试总结报告,阶段问题统计报告,测试问题报告
6、 W 模型的描述?
7、 编写测试计划的目的是?
使测试工作顺利进行;使项目参与人员沟通更舒畅;使测试工作更加系统化。
8、 测试计划编写的六要素?
why——为什么要进行这些测试
what—测试哪些方面,不同阶段的工作内容
when—测试不同阶段的起止时间
where—相应文档,缺陷的存放位置,测试环境等
who—项目有关人员组成,安排哪些测试人员进行测试
how—如何去做,使用哪些测试工具以及测试方法进行测试。
9、 项目版本执行过程中,测试人员如何把控测试进度?
a、在项目的系统测试过程中,测试负责人要及时了解测试进度,跟踪 BUG 提交、修复及验证情况以及系 统的拷机情况。
b、在开发初期阶段,测试组执行 BBFV 时,很多模块、功能点的开发完成进度和原计划会存在一定的偏差, 就需要测试负责人动态的刷新 WBS 计划,根据实际的开发进度调整测试计划。
c、在开发阶段,存在版本编译不出来导致无法测试,开发人员修复代码太随意导致版本稳定性反复,需求 变更过大导致后端测试开发变更严重等现象,会导致测试工作无法正常进行。就需要测试负责人及时反馈出 来,根据项目本身的特点进行对应的处理。
d、当测试进度出现延期时,要及时确认问题原因,如果是问题协查导致,则需及时与研发人员进行沟通协 商,看问题是否必须在测试环境进行排查,若为必现问题可与研发协商要求其在自己环境进行排查,若必须占用测试环境,则需及时调整测试计划,若因此可能影响版本的发布,则应及时与 SE 确认。
e、若发现有较多 BUG 未解决,则应主动联系 SE 及研发人员召开 BUG 会确定问题的解决时间。若发现有 较多 BUG 未验证,则应提醒项目组的测试人员及时进行验证,对于一些拷机或非必现的 BUG,建议测试人 员在此 BUG 上现做拷机标记,连续拷机一周未再复现的做关闭处理,若再次复现则继续进行排查。
f、疑难问题的跟控:比较难复现的问题,怎么去尝试复现。比较难定位的问题,怎么驱动、反馈给 SE, 协调开发人员定位问题。比较难处理的问题,怎么跟控反馈进度等 。
g、每天下班前需确认拷机内容,每天上班第一件事需确认拷机结果,只有这样才能保证拷机的效果,实现 拷机的真正意义。
10、 请列出你所知道的软件测试种类至少五项
11、 黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试
的区别与联系?
黑盒测试:把测试对象当成一个黑盒子,测试人员完全不考虑逻辑结构和内部特性, 只依据程式的需 求说明书来检查程序的功能是否满足它的功能说明。
白盒测试:把测试对象当成一个透明的盒子,允许测试人员利用程序内部逻辑结构及 相关信息,设计 或选择测试用例,对程序所有逻辑路径进行测试。
单元测试:白盒测试的一种,对软件设计中的单元模块进行测试。
集成测试:在单元测试的基础上,对单元模块之间的连接和组装进行测试。
系统测试:在所有都考虑的情况下,对系统进行测试。
验收测试:第三方进行的确认软件满足需求的测试。
12、 黑盒测试和白盒测试常用的测试方法有哪些,举个例子?
黑盒有等价类划分法,边界分析法,因果图法和错误猜测法。
白盒有逻辑覆盖法,循环测试路径选择,基本路径测试。
例子:在一次输入多个条件的完整性查询中。利用等价类划分法则和边界分析法则,首 先利用等价类 划分法,可以一个或多个结果是 OK 的测试用例,然后确认多个 NG 的测试用例, 然后利用边界值分析 法,可以对结果分别是 OK 和 NG 的测试用例进行扩展和补充。
13. 简述黑盒测试和白盒测试的优缺点?
※ 黑盒测试的优点有:
a. 比较简单,不需要了解程序内部的代码及实现;
b. 与软件的内部实现无关;
c. 从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;
d. 基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;
e. 在做软件自动化测试时较为方便。
※ 黑盒测试的缺点有:
a. 不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的 30%;
c. 自动化测试的复用性较低。
※ 白盒测试的优点有:
a. 帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐藏的问题。
※ 白盒测试的缺点有:
a. 程序运行会有很多不同的路径,不可能测试所有的运行路径;测试基于代码,只能测试开发人员做 的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;系统庞大时,测试开销会非常 大。
14. 在没有产品说明书和需求文档的情况下能够进行黑盒测试的设计
吗?
能,可以通过其他工作内容去替代产品说明书和需求文档
根据客户的功能点整理测试需求追溯表
根据开发人员的 Software Specification List 整理功能测试点
开展项目跨部门讨论会,主要整理对功能点的理解和认识
测试人员整理用例需求疑问提交项目组或者产品
项目内部的用例品胜
邮件客户代表确认部分争议问题
项目的 Demo 和部分已经开发的系统
参考同行业和竞争对手的类似产品
交叉模块之间的测试
咨询客户或相关者
16. 单元测试的策略有哪些,主要内容有哪些?
逻辑覆盖,循环覆盖,同行评审,桌前检查,代码走查,代码评审,静态数据流分析
17. 软件测试的基本流程有哪些?
需求分析、编写测试用例、评审测试用例、搭建环境、等待程序开发包、部署程序开发包、冒烟测试、 执行具体的测试用例细节、Bug 跟踪处理回归测试、N 轮之后满足需求,测试结束
18. 测试结束的标准是什么?
第一类标准:测试超过了预定时间,则停止测试。
第二类标准:执行了所有的测试用例,但并没有发现故障,则停止测试。
第三类标准:使用特定的测试用例设计方案作为判断测试停止的基础
第四类标准:正面指出停止测试的具体要求,即停止测试的标准可定义为查出某一预订数目的故障。
第五类标准:根据单位时间内查出故障的数量决定是否停止测试。
19. 软件测试的原则是什么?
1) 应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。
2) 测试用例应由测试输入数据和对应的预期输出结果这两部分组成。
3) 程序员应避免检查自己的程序。
4) 在设计测试用例时,应包括合理的输入条件和不合理的输入条件。
5) 软件测试的原则
6) 充分注意测试中的群集现象。 经验表明,测试后程序中残存的错误数目与该程序中已发现的错误数目成正比。
7) 严格执行测试计划,排除测试的随意性。
8) 应当对每一个测试结果做全面检查。
9) 妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。
20. 什么是测试用例,测试用例的基本要素?
测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或 核实是否满足某个特定需求。
测试用例的基本元素: 测试索引,测试环境,测试输入,测试操作,预期结果,评价标准。
21. 描述测试用例设计的完整过程?
a、根据需求文档、概要设计、测试计划测试方案细分出各功能模块的测试项
b、再根据各测试项,按照概要设计、详细设计以及测试方案中测试的覆盖率细分出测试子项
c、最后按照测试子项、根据测试用例的设计方法(因果图、边界值、等价类等的设计方法)书写测试用例。
注意
选用适合的用例管理工具(如 word,excel)
用例一定要及时更新(补充新的想法,删除过时的需求)
做好用例分级
做好用例评审,写用例之前可以征询相关人员的意见,如果评审通过可以参考其执行测试,如果未 通过,需要继续修改直到通过为止。
可以考虑结对编写,这个是不错的主意
要全面,包括功能、性能、兼容性、安全性、易用性、容错性等等
注意把握适当的颗粒度
22. 好的测试用例有哪些特点?
质量属性:
正确性:确保测试标题描述部分的内容正确性。
经济性:只为确定需要的目的设计相应的测试步骤。
可重复性:自我一致性,即不管谁执行此用例,结果一样。
适应性:既能适应短期需要,又能考虑长远需要。
可追踪性:用例能追踪到一个具体的需求。
自我清理性:单个用例不会影响整个测试环境,即用例执行完了可以恢复原有的测试环境。
结构化和可测试性
含有规范的测试标题和编号。
含有一个确定的测试某一个特定需求的目的。
含有关于测试方法的描述。
指定条件信息-环境、数据、预置的条件测试、安全入口等。
含有操作步骤和预期结果。
陈述任何辅助证据,例如截图报告并确保这些东西妥善保存。
确保测试环境的干净(即用例不会影响整个环境)。
描述时使用主动语气结构。
操作步骤不要超过 15 步。
确保单个用例测试执行时用时不超过 20 分钟。
自动化脚本用例添加必要的注释,比如目的、输入和期望结果。
如果可能,建议提供可选择性的预置条件测试。
用例之间的先后顺序是否跟业务流程一致,即用例在业务流程中的彼此顺序关系是否合理。
配置管理:
采用命名和编号规范归档。
保存为特定的格式,文件类型。
用例版本是否与当前被测试软件版本一致(对应)。
包含用例需要的相应测试对象,如特定数据库。
存档阅读。
存档时按角色控制访问方式
当网络备份时存档。
离线归档。
23. 写测试用例时要注意什么问题
a、复用率:如果随着产品不停得升级,需要设计的详细些,追求一劳永逸;仅使用一两次,则没有必 要设计的过于详细;
b、项目进展:项目时间如果允许可以设计的详细些,反之则能执行即可;
c、使用对象:测试用例如果供多人使用,尤其让后参加测试的工程师来执行,则需要设计的详细些。
d、用例的冗余
e、操作步骤要细分简明,可执行
24. 如何在有限的情况下提高测试效率,保证产品的上线质量?
a、一个详细合理的详细的测试计划
b、测试尽早的介入项目,连接项目的业务需求,做好测试的前期准备
c、对测试项目前景充满信心,调整最佳心态,保持愉悦的工作心情
d、提高测试接受的标准,减少测试版本的送测次数
25. 如何降低漏测率
a、需求评审
b、梳理需求,尽早与开发人员、需求人员进行需求确认,统一不同角色对需求的认识
c、用例设计及评审
d、测试执行
e、bug 回归
f、发布前的功能回归
26. 测试用例的基本设计方法
a、等价类划分法
b、边界值分析法
c、错误推断法
d、因果图判定表法
e、正交实验法
f、流程法
g、场景法
27. 测试为什么要写测试用例
a、深入了解需求的过程
b、测试执行的指导
c、规划测试数据的准备
d、反应测试进度
e、举一反三发现隐藏缺陷
f、分析缺陷标准
28. 什么是缺陷报告,缺陷报告的作用,缺陷报告的要点
(1)缺陷报告是描述软件缺陷现象和重现步骤的集合。软件缺陷报告 Software Bug Report(SBR)或软件 问题报告 software Problem Report(SPR)。
(2)缺陷报告是软件测试人员的工作成果之一,体现软件测试的价值缺陷报告可以把软件存在的缺陷准确 的描述出来,便于开发人员修正缺陷报告可以反映项目/产品当前的质量状态,便于项目整体进度和质量控 制软件测试缺陷报告是软件测试的输出成果之一,可以衡量测试人员的工作能力。
(3)标题(Title)简洁、准确、完整、反映缺陷本质、方便查询前缀+标题正文,标题正文采用结果和动作, 或者现象和位置的方式表达;步骤(Steps)可复现、完整、简洁、准确按数字编号;实际结果(Actual results) 准确、详细描述软件的现象和特征;期望结果(Expected results)准确、丰富、有理有据;平台(Platforms) 准确;截图(Sereenshots)准确反映缺陷特征;注释(Notes)关于缺陷的辅助说明
29. 软件测试缺陷报告的 5C 原则
Correct(准确):每个组成部分的描述准确,不会引起误解;
Clear(清晰):每个组成部分的描述清晰,易于理解;
Concise(简洁):只包含必不可少的信息,不包括任何多余的内容;
Complete(完整):包含复现该缺陷的完整步骤和其他本质信息;
Consistent(一致):按照一致的格式书写全部缺陷报告。
30. 软件缺陷的生命周期?
测试人员提交新的 Bug 入库,错误状态为 New。 高级测试人员验证错误,如果确认是错误,分配给 相应的开发人员,设置状态为 Open。如果不是错误,则拒绝,设置为 Declined(拒绝)状态。 开发人员查 询状态为 Open 的 Bug,如果不是错误,则置状态为 Declined;如果是 Bug 则修复并置状态为 Fixed。 不能解决的 Bug,要留下文字说明及保持 Bug 为 Open 状态。对于不能解决和延期解决的 Bug,不能由 开发人员自己决定,一般要通过某种会议(评审会)通过才能认可。 测试人员查询状态为 Fixed 的 Bug, 然后验证 Bug 是否已解决,如解决置 Bug 的状态为 Closed,如没有解决置状态为 Reopen。
31. 缺陷描述(报告单)中应该包括哪些内容?
缺陷的标题,简要描述。缺陷的类型。缺陷的详细步骤描述。缺陷的实际结果。期望结果。有的缺陷需 要上传截图,日志信息。缺陷的等级。缺陷指派给开发同事。(开发主管)
32. 如何提高缺陷的记录质量?
通用 UI 要统一、准确;
尽量使用业界惯用的表达术语和表达方法;
使用业界惯用的表达术语和表达方 法,保证表达准确,体现专业化;
每条缺陷报告只包括一个缺陷;
不可重现的缺陷也要报告;
明确指明缺陷类型;
明确指明缺陷严重等级和优先等级;
描述 (Description) ,简洁、准确,完整,揭示缺陷实质,记录 缺陷或缺陷出现的位置;
短行之间使用自动数字序号,使用相同的字体、字号、行间距;
每一个步骤尽量 只记录一个操作;
确认步骤完整,准确,简短;
根据缺陷,可选择是否进行图象捕捉;
检查拼写和语法缺 陷;尽
量使用短语和短句,避免复杂句型句式;
缺陷描述内容。
33. 如果一个缺陷被提交后,开发人员认为不是问题,怎么处理?
a)首先,将问题提交到缺陷管理库里面进行备案。
b)然后,要获取判断的依据和标准:
v.根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷 是否确认的直接依据;
vi.如果没有文档依据,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是 缺陷;
vii.根据用户的一般使用习惯,来确认是否是缺陷;
viii.与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷;
c)合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不掺杂个人情绪。
d)等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并 有上级做出决定。
34. 一个有广告的纸杯子,请设计测试用例?
测试项目:杯子
需求测试:查看杯子使用说明书
界面测试:查看杯子外观
功能度:用水杯装水看漏不漏;水能不能被喝到
安全性:杯子有没有毒或细菌
可靠性:杯子从不同高度落下的损坏程度
可移植性:杯子在不同的地方、温度等环境下是否都可以正常使用
兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等
易用性:杯子是否烫手、是否有防滑措施、是否方便饮用
用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述
疲劳测试:将杯子盛上水(案例一)放 24 小时检查泄漏时间和情况;盛上汽油(案例二)放 24 小时检 查泄漏时间和情况等
压力测试:用根针并在针上面不断加重量,看压强多大时会穿透
跌落测试: 杯子加包装(有填充物),在多高的情况摔下不破损
震动测试: 杯子加包装(有填充物),六面震动,检查产品是否能应对恶劣的铁路\公路\航空运输
基本功能测试(逻辑功能测试)。
(1)硬度:是否达到设计标准。
装载能力:在杯子内分别装入少量的、半杯的、满杯的,看其装载量是否达到设计标准。
装载种类:开水(是否产生异味)、温水、冷水、冰水、咖啡...
(2)界面测试(UI 测试)。
看其形状、大小设计是否适合人方便拿起。
外观是否吸引人(广告嘛),赏心悦目。
带广告的图案沾水受是否掉色、模糊。
(3)易用性测试。
看其形状、大小设计是否适合人方便拿起。
残疾人士用此杯去喝水的容程度。
杯子设计是否上大下小,在运输过程中可以套在一起有效利用空间,在使用时也容易拿开。
(4)稳定性测试(24 X 7 测试)。装入液体后记录其多少以后漏水。
(5)安全性测试。杯子所用的材料(包括纸基、涂层和广告颜料)是否符合食品卫生标准,在内外温度等环境因素下是否会与所盛各种饮料相反应,而产生对人体有害的物质。
(6)本地化测试。为国际化和本地化的需要,广告图案和文字是否在政治、宗教和文化方面具有广泛 的适用性。
(7)对设计的改进建议。“如果是一次性杯子,能否标示已使用(比如变色)”和“杯子是否有使用者标 贴(多人使用时防止混淆)”。
35. 一个身份证号码输入框,怎么设计用例?
校验身份证号规则的有效性(包括地址码、生日期码、顺序码和校验码
校验 15 位身份证号和 18 位身份正好都是可用的
校验末位是 X 的情况
校验不足 15 位、16-17 位和大于 18 位的情况
如果是必输项,校验不输入的时候会不会有正确的提示
如果不是必输项,则要校验不输入的时候流程能否正常进行
校验输入非数字的情况,是否会有正确提示信息(包括大小写字母、汉字、特殊字符和标点符号)
校验输入全角的数字的时候,系统是否会识别(这个得根据需求确定是否可以使用全角的数字)
36. 登录功能怎么设计测试用例?
具体需求: 有一个登录页面,有一个账号和一个密码输入框, 一个提交按钮。
此题的考察目的:
1、了解需求(测什么都是从了解需求开始);
2、是否有设计 Test Case 的能力
3、是否熟悉各种测试方法;
4、是否有丰富的 Web 测试经验;
5、是否了解 Web 开发;
了解需求:
1、登录界面应该是弹出窗口式的,还是直接在网页里面;
2、账号长度和密码的强度(比如需要多少位、大小写敏感、特殊字符混搭等);
3、界面美观是否有特殊要求?(即是否要进行 UI 测试);
用例设计:
测试需求分析完成后,开始用例设计,主要可以从以下几个方面考虑:
功能测试(Function Test)
1、输入正确的账号和密码,点击提交按钮,验证是否能正确登录。(正常输入)
2、输入错误的账号或者密码, 验证登录会失败,并且提示相应的错误信息。(错误校验)
3、登录成功后能否跳转到正确的页面(低)
4、账号和密码,如果太短或者太长,应该怎么处理(安全性,密码太短时是否有提示)
5、账号和密码,中有特殊字符(比如空格),和其他非英文的情况(是否做了过滤)
6、记住账号的功能
7、登录失败后,不能记录密码的功能
8、账号和密码前后有空格的处理
9、密码是否加密显示(星号圆点等)
10、牵扯到验证码的,还要考虑文字是否扭曲过度导致辨认难度大,考虑颜色(色盲使用者),刷新或 换一个按钮是否好用
11、登录页面中的注册、忘记密码,登出用另一帐号登录等链接是否正确
12、输入密码的时候,大写键盘开启的时候要有提示信息。
13、什么都不输入,点击提交按钮,看提示信息。(非空检查)
界面测试(UI Test)
1、布局是否合理,2 个 Testbox 和一个按钮是否对齐
2、Testbox 和按钮的长度,高度是否符合要求
3、界面的设计风格是否与 UI 的设计风格统一
4、界面中的文字简洁易懂,没有错别字。
性能测试(Performance Test)
1、打开登录页面,需要几秒
2 、输入正确的账号和密码后,登录成功跳转到新页面,不超过 5 秒
安全性测试(Security Test)
1、登录成功后生成的 Cookie 是否有 HttpOnly(降低脚本盗取风险)
2、账号和密码是否通过加密的方式,发送给 Web 服务器
3、账号和密码的验证,应该是用服务器端验证,而不能单单是在客户端用 javaScript 验证
4、账号和密码的输入框,应该屏蔽 SQL 注入攻击
5、账号和密码的输入框,应该禁止输入脚本(防止 XSS 攻击)
6、错误登录的次数限制(防止暴力破解)
7、考虑是否支持多用户在同一机器上登录;
8、考虑一用户在多台机器上登录
可用性测试(Usability Test)
1、是否可以全用键盘操作,是否有快捷键
2、输入账号,密码后按回车,是否可以登录
3、输入框是否可以以 Tab 键切换
兼容性测试(Compatibility Test)
1、主流的浏览器下能否显示正常已经功能正常(IE6~11, FireFox, Chrome, Safari 等 )
2、不同的平台是否能正常工作,比如 Windows, Mac
3、移动设备上是否正常工作,比如 iPhone, Android
4、不同的分辨率
本地化测试 (Localization Test)
1、不同语言环境下,页面的显示是否正确。
软件辅助性测试 (Accessibility Test)
软件辅助功能测试是指测试软件是否向残疾用户提供足够的辅助功能
1、高对比度下能否显示正常(视力不好的人使用)
37. 什么是内存泄漏?什么是内存溢出?二者有什么区别?
内存溢出(OutOfMemory-OOM):指你的应用的内存已经不能满足正常使用了,堆栈已经达到系统设 置的最大值,进而导致崩溃,这是一种结果描述。
内存泄漏(Memory Leak):指你的应用使用资源之后没有及时释放,导致应用内存中持有了不需要的 资源,这是一种状态描述。
38. 了解的操作系统有哪些?
Windows,Unix,Linux,Mac
39.  什么是局域网,广域网?
一、局域网
局域网(Local Area Network),简称 LAN,是指在某一区域内由多台计算机互联成的计算机组。“某一 区域”指的是同一办公室、同一建筑物、同一公司和同一学校等,一般是方圆几千米以内。局域网可以实现文 件管理、应用软件共享、打印机共享、扫描仪共享、工作组内的日程安排、电子邮件和传真通信服务等功能。
局域网是封闭型的,可以由办公室内的两台计算机组成,也可以由一个公司内的上千台计算机组成。
二、广域网
广域网(Wide Area Network),简称 WAN,是一种跨越大的、地域性的计算机网络的集合。通常跨越 省、市,甚至一个国家。广域网包括大大小小不同的子网,子网可以是局域网,也可以是小型的广域网。
40. 10M 兆宽带是什么意思?理论下载速度是多少?
首先我们要搞懂其中的区别,运营商说的 10M,完整的单位应该是 10Mbps(bps:比特率),而我们讲
的下载速度单位是 MB,虽然都念兆,但是不一样的。
它们之间的换算关系是:1MB=8×1Mbps,换个方式看:1Mbps÷8=128KB,也就是说,运营商称的 10M
宽带,实际速度是 10Mbps÷8=1280KB,约 1.25MB。
41. 什么是 IP 地址?
IP 地址是指互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址),是 IP Address
的缩写。IP 地址是 IP 协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻 辑地址,以此来屏蔽物理地址的差异。
42. OSI 七层网络模型的划分?
43. TCP 和 UDP 有什么不同?
TCP:
优点:可靠 稳定
TCP 的可靠体现在 TCP 在传输数据之前,会有三次握手来建立连接,而且在数据传递时,有确认. 窗 口. 重传. 拥塞控制机制,在数据传完之后,还会断开来连接用来节约系统资源。
缺点:慢,效率低,占用系统资源高,易被攻击
在传递数据之前要先建立连接,这会消耗时间,而且在数据传递时,确认机制. 重传机制. 拥塞机制 等都会消耗大量时间,而且要在每台设备上维护所有的传输连接。然而,每个连接都会占用系统的 CPU,内存等硬件资源。因为 TCP 有确认机制. 三次握手机制,这些也导致 TCP 容易被利用,实 现 DOS. DDOS. CC 等攻击。
UDP:
优点:快,比 TCP 稍安全
UDP 没有 TCP 拥有的各种机制,是一种无状态的传输协议,所以传输数据非常快,没有 TCP 的这 些机制,被攻击利用的机会就少一些,但是也无法避免被攻击。
缺点:不可靠,不稳定
因为没有 TCP 的这些机制,UDP 在传输数据时,如果网络质量不好,就会很容易丢包,造成数据 的缺失。
适用场景:
TCP:当对网络质量有要求时,比如 HTTP,HTTPS,FTP 等传输文件的协议;POP,SMTP 等邮 件传输的协议
UDP:对网络通讯质量要求不高时,要求网络通讯速度要快的场景。
44. HTTP 属于哪一层的协议?
HTTP 协议属于应用层协议
45. HTTP 和 HTTPS 的区别?
安全性上的区别:HTTPS:HTTP 协议的安全加强版,通过在 HTTP 上建立加密层,对传输数据进行加密。
主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真 实性。
表现形式:HTTPS 站点会在地址栏上显示一把绿色小锁,表明这是加密过的安全网站,如果采用了全球 认证的顶级 EV SSL 证书的话,其地址栏会以绿色高亮显示,方便用户辨认。
SEO:在 2015 年之前百度是无法收录 HTTPS 页面的,不过自从 2015 年 5 月份百度搜索全站 HTTPS 加密后,就已经可以收录 HTTPS 了。谷歌则是从 2014 年起便开始收录 HTTPS 页面,并且 HTTPS 页面权 重比 HTTP 页面更高。从 SEO 的角度来说,HTTPS 和 HTTP 区别不大,甚至 HTTPS 效果更好。
技术层面:如果要说 HTTPS 和 HTTP 的区别,最关键的还是在技术层面。比如 HTTP 标准端口是 80, 而 HTTPS 标准端口是 443;HTTP 无需证书,HTTPS 需要 CA 机构颁发的 SSL 证书;HTTP 工作于应用层, HTTPS 工作于传输层。
46. cookies 和 session 的区别?
cookies:是针对每一个网站的信息,每一个网站只对应一个,其它网站不能访问,这个文件是保存在客户 端的,每次你打相应网站,浏览器会查找这个网站的 cookies,如果有就会将这个文件起发送出去。cookies 文件的内容大致包函这些信息如用户名,密码,设置等。
session: 是针对每一个用户的,只有客户机访问,程序就会为这个客户新增一个 session。session 里主要保存的是用户的登录信息,操作信息等。这个 session 在用户访问结束后会被自动消失(如果超时也会)。
47. HTTP 的 get 请求和 post 请求的区别?
(1) 在客户端,Get 方式在通过 URL 提交数据,数据在 URL 中可以看到;POST 方式,数据放置在 HTML HEADER 内提交。
(2) GET 方式提交的数据最多只能有 1024 字节,而 POST 则没有此限制。
(3) 安全性问题。正如在(1)中提到,使用 Get 的时候,参数会显示在地址栏上,而 Post 不会。所 以,如果这些数据是中文数据而且是非敏感数据,那么使用 get;如果用户输入的数据不是中文字符而且包 含敏感数据,那么还是使用 post 为好。
(4)安全的和幂等的。所谓安全的意味着该操作用于获取信息而非修改信息。幂等的意味着对同一 URL 的多个请求应该返回同样的结果。
48. HTTP1.0 和 HTTP1.1 有什么区别
HTTP 协议老的标准是 HTTP/1.0,目前最通用的标准是 HTTP/1.1。
在同一个 tcp 的连接中可以传送多个 HTTP 请求和响应.
多个请求和响应可以重叠,多个请求和响应可以同时进行.
更加多的请求头和响应头(比如 HTTP1.0 没有 host 的字段).
它们最大的区别:
在 HTTP/1.0 中,大多实现为每个请求/响应交换使用新的连接。HTTP 1.0 规定浏览器与服务器只保持短 暂的连接,浏览器的每次请求都需要与服务器建立一个 TCP 连接,服务器完成请求处理后立即断开 TCP 连 接,服务器不跟踪每个客户也不记录过去的请求。
在 HTTP/1.1 中,一个连接可用于一次或多次请求/响应交换,尽管连接可能由于各种原因被关闭。HTTP1.1 支持持久连接,在一个 TCP 连接上可以传送多个 HTTP 请求和响应,减少了建立和关闭连接的消耗和延迟。一个包含有许多图像的网页文件的多个请求和应答可以在一个连接中传输,但每个单独的网页文件的请求和应答仍然需要使用各自的连接。HTTP 1.1 还允许客户端不用等待上一次请求结果返回,就可以发出下一次请求,但服务器端必须按照接收到客户端请求的先后顺序依次回送响应结果,以保证客户端能够区分出每次请求的响应内容,这样也显著地减少了整个下载过程所需要的时间。
49. TCP 的连接建立过程,以及断开过程?
50. 客户端使用 DHCP 获取 IP 的过程?
发现阶段:即 DHCP 客户端寻找 DHCP 服务器的阶段。
提供阶段:即 DHCP 服务器提供 IP 地址的阶段。
选择阶段:即 DHCP 客户端选择某台 DHCP 服务器提供的 IP 地址的阶段。
确认阶段:即 DHCP 服务器确认所提供的 IP 地址的阶段。
51. 写出某个网段的网络地址和广播地址?
算法:
子网掩码与 IP 地址进行位与运算,得处网络地址
网络地址 | (~子网掩码),得出广播地址 (|:位或运算; ~:按位取反)
例如:
IP 地址 10.145.129.20,掩码 255.255.248.0,网络地址和广播地址怎么计算?
网络地址 10.145.128.0 广播地址 10.145.135.255
解答:
IP 转换成二进制:00001010 10010001 10000001 00010010
掩码转换成二进制:11111111 11111111 11111000 00000000
IP 与掩码相与得网络地址(全 1 为 1,见 0 为 0):00001010 10010001 10000000 00000000
网络地址转换成十进制为:10,145,128,0
看你的掩码把后 24 位的前 13 为划成了子网,后 11 为划成了主机,故:
广播地址则要把网络地址的主机位全换成 1,得:00001010,10010001,10000111,1111111
广播地址转换成十进制为:10,145,135,255
首先由 ip 地址结合子网掩码可以看出的是这是一个由 A 类地址,“借用”13 位的主机位而得到的子网,所 以很轻易地得到 网络地址是:10.145.128.0,也即:00001010.10010001.10000 000.00000000(前 21(8+13) 位是网络位,后 11 位是主机位)。至于广播地址,网络位+全为 1 的主机位,即得:00001010.10010001.10000
111.11111111,10 进制表达方式就是 10.145.135.255
52. 什么是 VPN 都有什么类型?
VPN 的隧道协议主要有三种, PPTP、L2TP 和 IPSec,其中 PPTP 和 L2TP 协议工作在 OSI 模型的第 二层,又称为二层隧道协议;IPSec 是第三层隧道协议。
53. B/S 和 C/S 的区别
b/s 代表浏览器和服务器架构;c/s 代表客户端和服务器架构
网络环境不同(c/s 建立在专用的局域网上,b/s 建立在广域网上)
安全要求不同(c/s 必须安装客户端,安全度较高;b/s 安全度较低)
系统维护不同(c/s 升级困难,需要重新安装最新客户端;b/s 无缝升级)
对系统要求不同(c/s 对系统要求较高;b/s 对系统要求较低)
54. 线程和进程的区别
进程——资源分配的最小单位,线程——程序执行的最小单位。
线程进程的区别体现在几个方面:
第一:因为进程拥有独立的堆栈空间和数据段,所以每当启动一个新的进程必须分配给它独立的地址空 间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这对于多进程来说十分“奢侈”,系统开销比较大, 而线程不一样,线程拥有独立的堆栈空间,但是共享数据段,它们彼此之间使用相同的地址空间,共享大部 分数据,比进程更节俭,开销比较小,切换速度也比进程快,效率高,但是正由于进程之间独立的特点,使 得进程安全性比较高,也因为进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生 影响,而线程只是一个进程中的不同执行路径。一个线程死掉就等于整个进程死掉。
第二:体现在通信机制上面,正因为进程之间互不干扰,相互独立,进程的通信机制相对很复杂,譬如 管道,信号,消息队列,共享内存,套接字等通信机制,而线程由于共享数据段所以通信机制很方便。。
3.属于同一个进程的所有线程共享该进程的所有资源,包括文件描述符。而不同过的进程相互独立。
4.线程又称为轻量级进程,进程有进程控制块,线程有线程控制块;
5.线程必定也只能属于一个进程,而进程可以拥有多个线程而且至少拥有一个线程;
第四:体现在程序结构上,举一个简明易懂的列子:当我们使用进程的时候,我们不自主的使用 if else 嵌套来判断 pid,使得程序结构繁琐,但是当我们使用线程的时候,基本上可以甩掉它,当然程序内部执行功 能单元需要使用的时候还是要使用,所以线程对程序结构的改善有很大帮助。
55. 常用的响应码
HTTP 响应码,也称 http 状态码(HTTP Status Code),反映了 web 服务器处理 HTTP 请求状态,每一个 响应码都代表了一种服务端反馈的响应状态,标识了本次请求是否成功。我们应该了解常见的响应码代表的 状态,通过响应码能够对错误进行排查和定位,这是一个测试的必备技能~
HTTP 响应码通常分为五大类:
1XX——信息类(Information) ,表示收到 http 请求,正在进行下一步处理,通常是一种瞬间的响应状 态
2XX——成功类(Successful ),表示用户请求被正确接收、理解和处理
200(OK):请求成功。一般用于 GET 与 POST 请求
201( Created ):已创建。成功请求并创建了新的资源
202(Accepted):
3XX——重定向类(Redirection) ,表示没有请求成功,必须采取进一步的动作
301(Moved Permanently):资源被永久移动。请求的资源已被永久的移动到新 URI,返回信息会包括 新的 URI,浏览器会自动定向到新 URI。今后任何新的请求都应使用新的 URI
302(Found):资源临时移动。资源只是临时被移动,客户端应继续使用原有 URI
304:用其他策略获取资源
4XX——客户端错误(Client Error) ,表示客户端提交的请求包含语法错误或不能正确执行
400(Bad Requests):客户端请求的地址不存在或者包含不支持的参数
401(Unauthorized):未授权,或认证失败。对于需要登录的网页,服务器可能返回此响应
403(Forbidden):没权限。服务器收到请求,但拒绝提供服务
404(Not Found):请求的资源不存在。遇到 404 首先检查请求 url 是否正确
5XX——服务端错误(Server Error) ,表示服务器不能正确执行一个正确的请求(客户端请求的方法及 参数是正确的,服务端不能正确执行,如网络超时、服务僵死,可以查看服务端日志再进一步解决)
500(Internal Server Error):服务器内部错误,无法完成请求
503(Service Unavailable):由于超载或系统维护(一般是访问人数过多),服务器无法处理客户端的
请求 ,通常这只是暂时状态
56.计算机基本组成
A. 冯·诺依曼计算机的特点(机器以运算器为中心)
1. 计算机由运算器、存储器、控制器、输入设备和输出设备五大部件组成
2. 指令(程序)和数据以二进制不加区别地存储在存储器中
3. 程序自动运行
B.现代计算机由三大部分组成(已经转化为以存储器为中心)
1. CPU(Central Processing Unit) 中央处理器,核心部件为 ALU(Arithmetic Logic Unit,算术逻辑单
元)和 CU(Control Unit,控制单元)
2. I/O 设备(受 CU 控制)
3. 主存储器(Main Memory,MM),分为 RAM(随机存储器)和 ROM(只读存储器)
57. 一条指令在 CPU 的执行过程
1. Ad(Address) 形式地址
2. DR(Data Register) 数据寄存器
3. AR(Address Register) 地址寄存器(MAR)
4. IR(Instruction Register) 指令寄存器
5. BR(Buffer Register) 缓冲寄存器(MBR)
6. ID(Instruction Decoder) 指令译码器
7. PC(ProgramCounter) 程序计数器
过程详述:
几乎所有的冯·诺伊曼型计算机的 CPU,其工作都可以分为 5 个阶段:
取指令
指令译码
执行指令
访存取数
结果写回
1.取指令阶段
取指令(Instruction Fetch,IF)阶段是将一条指令从主存中取到指令寄存器的过程。
程序计数器 PC 中的数值,用来指示当前指令在主存中的位置。当一条指令被取出后,PC 中的数值 将根据指令字长度而自动递增:若为单字长指令,则(PC)+1àPC;若为双字长指令,则(PC)+2àPC,依 此类推。
//PC -> AR -> Memory
//Memory -> IR
2.指令译码阶段
取出指令后,计算机立即进入指令译码(Instruction Decode,ID)阶段。
在指令译码阶段,指令译码器按照预定的指令格式,对取回的指令进行拆分和解释,识别区分出不
同的指令类别以及各种获取操作数的方法。
在组合逻辑控制的计算机中,指令译码器对不同的指令操作码产生不同的控制电位,以形成不同的
微操作序列;在微程序控制的计算机中,指令译码器用指令操作码来找到执行该指令的微程序的入口, 并从此入口开始执行。
// { 1.Ad
//Memory -> IR -> ID -> { 2.PC 变化
// { 3.CU(Control Unit)
3.访存取数阶段
根据指令需要,有可能要访问主存,读取操作数,这样就进入了访存取数(Memory,MEM)阶段。
此阶段的任务是:根据指令地址码,得到操作数在主存中的地址,并从主存中读取该操作数用于运
算。
//Ad -> AR -> AD -> Memory
4.执行指令阶段
在取指令和指令译码阶段之后,接着进入执行指令(Execute,EX)阶段。
此阶段的任务是完成指令所规定的各种操作,具体实现指令的功能。为此,CPU 的不同部分被连接 起来,以执行所需的操作。
例如,如果要求完成一个加法运算,算术逻辑单元 ALU 将被连接到一组输入和一组输出,输入端提供需要相加的数值,输出端将含有最后的运算结果。
//Memory -> DR -> ALU
5.结果写回阶段
作为最后一个阶段,结果写回(Writeback,WB)阶段把执行指令阶段的运行结果数据“写回”到某种 存储形式:结果数据经常被写到 CPU 的内部寄存器中,以便被后续的指令快速地存取;在有些情况下, 结果数据也可被写入相对较慢、但较廉价且容量较大的主存。许多指令还会改变程序状态字寄存器中标 志位的状态,这些标志位标识着不同的操作结果,可被用来影响程序的动作。
//DR -> Memory
6.循环阶段
在指令执行完毕、结果数据写回之后,若无意外事件(如结果溢出等)发生,计算机就接着从程序
计数器 PC 中取得下一条指令地址,开始新一轮的循环,下一个指令周期将顺序取出下一条指令。
//重复 1~5
//遇 hlt(holt on)停止
58. 计算机的逻辑部件
1. 若逻辑电路的输出状态仅和当时的输入状态有关,而与过去的输入状态无关,则称这种逻辑电
路为组合逻辑电路
常见的组合逻辑电路有三态门、异或门、加法器、算术逻辑单元、译码器
2. 若逻辑电路的输出状态不但与当时的输入状态有关,而且还与电路在此前的输入状态有关,则
称这种逻辑电路为时序逻辑电路。时序电路内必须有能存储信息的记忆元件即触发器。触发器是构成时 序电路的基础。
3. “阵列”是逻辑元件在硅芯片上以阵列形式排列。常见阵列逻辑电路有:只读存储器 ROM、可编程
序逻辑阵列 PLA、可编程序阵列逻辑 PAL、通用阵列逻辑 GAL 等
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值