小白软考考哪个级别比较好?

决定要参加明年的软考了,所以之后的一些文章大部分应该都算是我备战软考的笔记了。在软考的教程上做一下摘抄,加深印象。有想要详细了解的朋友可以直接去找软考的教程看一看。
然后还要说一下软考这个东西,如果允许的话,建议有时间有条件的朋友还是考一下比较好。这个考试如果你是有工作经验的其实还是比较好过的。据说通过率在25%左右。。。。。

在工业制造和生产中,测试被当作一个常规的检验产品质量的生产活动。测试的含义为“以检验产品是否满足需求为目标”。而软件测试活动包含了很多重要的任务,即发现错误。
软件测试的经典定义是在规定条件下对程序进行操作,以发现错误,对软件质量进行评估。
软件是由文档、数据以及程序组成的。那么软件测试就应该是对软件形成过程的文档、数据以及程序进行的测试,而不仅仅是对程序进行的测试。

1991年软件产品质量评价标准ISO 9126中定义的“软件质量”是:软件满足规定或潜在用户需求特性的总和。
一般对“质量”的理解是一个实体的“属性”,“属性”好就是质量好的。但是“属性”是内在特性,内在特性好,不一定能胜任和完成好用户的任务,因此,软件质量也是关于软件特性具备“能力”的体现。
2001年,软件“产品质量”国际标准ISO 9126定义的软件质量包括“内部质量”、“外部质量”、和“使用质量”三部分。也就是说,“软件满足规定或潜在用户需求的能力”要从软件在内部、外部和使用中的表现来衡量。

软件质量和软件测试的区别

质量保证(QA):质量保证的重要工作通过预防、检查与改进来保证软件质量。QA采用“全面质量管理”和“过程改进”的原理开展质量保证工作。所关注的是软件质量的检查与测量。QA的工作是软件生命周期的管理以及验证软件是否满足规定的质量和用户的需求,因此主要着眼于软件的开发活动中的过程、步骤和产物,而不是对软件进行剖析找出问题或评估。
软件测试:测试关心的不是过程的活动,而是对过程的产物以及开发出的软件进行剖析。测试人员要“执行”软件,对过程的产物——开发文档和源代码进行走查,运行软件,以找出问题,报告质量。

测试的目的,是想以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险。
此外,通过分析错误产生的原因还可以帮助发现当前开发工作所采用的软件过程的缺陷,以便进行软件过程改进。同时,通过对测试结果的分析整理,还可以修正软件开发规则,并为软件可靠性分析提供依据。
当然,通过最终的验收测试,也可以证明软件满足了用户的需求,树立人们使用软件的信心。

  1. 所有的软件测试都应追溯到用户需求(软件地目的是使用户完成预定地任务,并满足用户地需求,而软件测试所揭示地缺陷和错误使软件达不到用户地目标,满足不了用户需求)
  2. 应尽早地和不断地进行软件测试(由于软件地复杂性和抽象性,在软件生命周期各个阶段都可能产生错误,所以不应把软件测试仅仅看作使软件开发的一个独立阶段的工作,而应当把它贯穿到软件开发的各个阶段中。)
  3. 完全测试是不可能地,测试需要终止(想要进行完全的测试,在有限的时间和资源条件下,找出所有的软件缺陷和错误,使软件趋于完美,使不可能的)
  4. 测试无法显示软件潜在地缺陷(进行测试是可以查找并报告发现的软件缺陷和错误,但不能保证软件的缺陷和错误全部找到,继续进一步测试可能还会找到一些,也就是说测试只能证明软件存在错误而不能证明软件没有错误)
  5. 缺陷存在集群现象(经验表明,测试后程序中残存的错误数目与该程序中以及发现的错误数目或检错率成正比。根据这个规律,应当对错误集群的程序段进行重点测试,以提高测试投资的效益)
  6. 避免程序员检查自己地程序(基于心里因素,人们认为揭露自己程序中的问题总不是一件愉快的事,不愿否认自己的工作;由于思维定势,人们难于发现自己的错误,因此,为达到测试目的,应由客观,公正,严格的独立部门进行测试)
  7. 尽量避免测试地随意性(应该从工程的角度去理解软件测试,他是有组织,有计划,有步骤地活动)

根据软件定义,软件包括程序,文档和数据。所以软件测试并不仅仅是程序测试。软件测试应贯穿于整个软件生命周期中。在整个软件生命周期中,各阶段有不同的测试对象,形成了不同开发阶段的不同类型的测试。需求分析,概要设计,详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明,概要设计规格说明,详细设计规格说明以及源程序,都应成为软件测试的对象。

按照全生命周期的软件测试概念,测试对象应该包含软件设计开发的各个阶段的内容。

按照开发阶段划分软件测试可以分为:单元测试,集成测试,系统测试,确认测试和验收测试。
单元测试又称模块测试,是针对软件设计的最小单位——程序模块进行正确性检验的测试工作。其目的在于检查每个程序单元能否正确实现设计说明中的模块功能、性能、接口和设计的约束等要求,发现各模块内部可能存在的各种错误。单元测试需要从程序内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。
集成测试也叫组装测试。通常在单元测试的基础上,将所有的程序模块进行有序的、递增的测试。集成测试是检验程序单元或部件的接口关系,逐步集成为符合概要设计要求的程序不见或整个系统。
集成测试的过程是一个持续的过程,会形成很多个临时版本,在不断的集成过程中,功能集成的稳定性是真正的挑战。在每个版本提交时,都需要进行冒烟测试,即对程序主要功能进行验证。冒烟测试也叫版本验证测试、提交测试。
确认测试是通过检验和提供客观证据,证实软件是否满足特定预期用途的需求。确认测试时检测与证实软件是否满足软件需求说明书中规定的要求。
系统测试为验证和确认系统是否达到其原始目标,而对集成的硬件和软件系统进行的测试。系统测试时在真实或模拟系统运行的环境下,检查完整的程序系统能否和系统(包括硬件、外设、网络和系统软件、支持平台)正确配置、连接,并满足用户需求。
按照项目任务书或合同、供需双方约定的验收依据文档进行的对整个系统的测试与评审,决定是否接收或拒收系统。

按照测试实施组织划分,软件测试可分为开发方测试、用户测试(β测试)、第三方测试。
通常也叫“验证测试”或“α测试”。开发方通过检测和提供客观证据,证实软件的实现是否满足规定的需求。验证测试是在软件开发环境下,有开发者检测与证实软件的实现是否满足软件设计说明或软件需求说明的要求。主要是指在软件开发完成以后,开发方对要求要提交的软件进行全面的自我检查与验证,可以和软件的“系统测试”一并进行。
在用户的应用环境下,用户通过运行和使用软件,检测与核实软件实现是否符合自己预期的要求。通常情况用户测试不是指用户的“验收测试”,而是指用户的使用性测试,有用户找出软件的应用过程中发现的软件的缺陷与问题,并对使用质量进行评价。
介于软件开发方和用户方之间的测试组织的测试。第三方测试也成为独立测试。软件质量工程强调开展独立验证和确认(IV&V)活动。IV&V是由在技术、管理和财务上与开发组织具有规定程度独立的组织执行验证和确认过程。软件第三方测试也就是由在技术、管理和财务上与开发方和用户方相对独立的组织进行的软件测试。

按照测试技术划分:白盒测试、黑盒测试、灰盒测试。也可划分为静态测试和动态测试。静态测试是指不运行程序,通过人工对程序和文档进行分析与检查:静态测试技术又称为静态分析技术,静态测试实际上是对软件中的需求说明书、设计说明书、程序源代码等进行非运行的检查,静态测试包括:走查、符号执行、需求确认等。动态测试是指通过人工或使用工具运行程序进行检查、分析程序的执行状态和程序的外部表现。
通过对程序内部结构的分析,检测来寻找问题。白盒测试可以把程序看成装在一个透明的白盒子里,也就是清楚了解程序结构和处理过程,检查是否所有的结构及路径都是正确的,检查软件内部动作是否按照设计说明书的规定正常进行。白盒测试又称结构测试。
通过软件的外部表现来发现其缺陷和错误。黑盒测试法把测试对象堪称一个黑盒子,完全不考虑程序内部结构和处理过程。黑盒测试实在程序界面处进行测试,他只是检查程序是否按照需求规格说明书的规定正常实现。
介于白盒测试和黑盒测试之间的测试。灰盒测试关注输出对于输入的正确性;同时也关注内部表现,但这种关注不像白盒测试那样详细,完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态。

在软件开发几十年的实践过程中,人们总结了很多的开发模型。这些模型对于软件开发过程具有很好的指导作用。由此软件测试专家通过测试实践总结出了很多很好的测试模型。由于测试与开发的结合非常紧密,在这些测试模型中也都把开发过程进行了很好的总结,体现了测试与开发的融合。

V模型是最具有代表意义的测试模型,在传统的开发模型中,人们常把测试过程作为在需求分析、概要设计、详细设计和编码全部完成之后的一个阶段。人们认为测试只是一个收尾工作,而不是主要的过程。V模型就是对此种认知的改进。V模型反映了测试活动与分析和设计的关系。从左到右描述了基本的开发过程和测试行为,明确地标明了测试过程中存在不同级别,清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系。
V模型指出,单元和集成测试是验证的程序设计,开发人员和测试组应检测程序的执行是否满足软件设计的要求;系统测试应当验证系统设计,检测系统功能、性能的质量特性是否达到系统设计的指标;由测试人员和用户进行的软件的确认测试和验收测试,追溯软件需求说明书进行测试,以确定软件的实现是否满足用户需求或合同的要求。

V模型的局限性在于没有明确的说明早期的测试,不能体现“尽早地和不断地进行软件测试”的原则。在V模型中增加软件各开发阶段应同步进行的测试,被演化为一种W模型。相对于V模型,W模型更科学。W模型可以说是V模型自然而然地发展,他强调:测试伴随着整个软件开发周期,而且测试对象不仅仅是程序,需求、功能和设计同样要测试。这样,只要相应地开发活动完成,我们就可以开始执行测试,可以说测试与开发是同步进行地,有利于尽早地发现问题。
如果测试文档能尽早提交,那么就有了更多地检查和检阅地事件,这些文档还可用于评估开发文档。
W模型地局限性在于把软件地开发视为需求、设计、编码等一系列串行地活动。需要有严格地指令标识上一阶段完全结束,才可正式开始下一个阶段。这样就无法支持迭代、自发性以及变更调整。

为了解决V模型和W模型地问题,有专家提出了H模型。他将测试活动完全独立出来,形成一个完全独立地流程,将测试准备活动和测试执行活动清晰地体现出来。
图示演示了证整个生产周期中莫格层次上地一次测试“微循环”。图中地其他流程可以是任意开发流程。例如,设计流程和编码流程。
概括地说,H模型揭示了:
软件测试不仅仅指测试地执行,还包括很多其他地活动。
软件测试是一个独立地流程,贯穿产品整个生命周期,与其他流程并发地进行。
软件测试要尽早准备,尽早执行
软件测试是根据被测物地不同而分层次进行地。不同层次地测试活动可以是按照某个次序先后进行地,也可能是反复地。

软件开发过程是一个自上而下,逐步细化地过程。首先,在软件计划阶段定义了软件地作用域,然后进行软件需求分析,建立软件地数据域、功能和性能需求、约束及一些有效性准则。接着进入软件开发,进行软件设计,把设计用某种程序设计语言转换成程序代码。而测试过程则是依照相反地顺序安排自下向上,逐步集成地过程。低一级测试为上一级测试准备条件。当然不排除两者平行地进行测试。
首先,对每一个程序模块进行单元测试,消除程序模块内部逻辑上和功能上地错误和缺陷。在对照软件设计进行集成测试,检测和排除子系统结构上地错误。随后再对照需求,进行确认测试。最后从系统整体出发,运行系统,看是否满足要求。

测试信息流的测试过程需要一下三类输入:
软件配置:包括软件需求规格说明书、软件设计规格说明、源代码等。
测试配置:包括测试计划、测试用例、测试驱动程序等。
测试工具:为提高软件测试效率,可使用测试工具支持测试工作,其作用就是为测试的实施提供某种服务,以减轻测试任务中的手工劳动。
测试之后,要对所有测试结果进行分析,即将实测的结果与预期的结果进行比较。如果发现出错的数据,就意味着软件有错误,就需要开始排错。即对已经发现的错误进行错误定位和确定出错性质,并改正这些错误,同时修改相关文档。修正后的文档一般都要经过再次测试,直到通过测试为止。
分析设计阶段的测试工作是评审与测试相结合的过程,主要包括需求说明书评测、概要设计说明书评测、详细设计说明书评测以及软件编码规范评测等。
(1).需求说明书评测
编制良好的需求说明书的8条原则:
原则一:功能与实现分离,即描述要“做什么”而不是“怎样实现”。
原则二:要求使用面向处理的规格说明语言,讨论来自环境的各种刺激可能导致系统做出什么样的功能性反应,
原则三:如果目标软件只是一个大系统中的一个元素,那么整个大系统也包括在规格说明书之中。描述该目标软件与其他系统元素交互方式
原则四:规格说明必须包括系统运行的环境
原则五:系统规格说明必须是一个认识的模型,而不是设计或实现的模型
原则六:规格说明必须是可操作的。规格说明必须是充分完全和形式的,以便能够利用它决定对于任意给定的测试用例,已提出的实现方案是否都能满足规格说明
原则七:规格说明必须容许不完备性并允许扩充
原则八:规格说明必须局部化和松散的耦合。他所包含的信息必须局部化,这样当信息被修改时,只要修改某个单个的段落。同时规格说明应被松散的构造。以便能够很容易的加入和删去一些段落。
系统定义的目标是否与用户的要求一致
系统需求分析阶段提供的文档资料是否齐全
文档中的所有描述是否完整、清晰,准确的反应用户要求
与所有其他系统成分的重要接口是否都已经描述
被开发项目的数据流与数据结构是否都已经描述
所有图表是否清楚,再不补充说明是能否理解
主要功能是否已包括在规定的软件范围之内,是否都已充分说明
软件的行为和他必须处理的信息、必须完成的功能是否一致
设计的约束条件或限制条件是否符合实际
是否考虑了开发的技术风险
是否考虑过软件需求的其他方案
是否考虑过将来可能会提出的软件需求
是否详细制定了检验标准,他们能否对系统定义是否成功进行确认
有没有遗漏、重复或不一致的地方
用户是否审查了初步的用户手册或原型
项目开发计划中的估算是否受到了影响。
(2)概要设计说明书评测
概要设计说明书评测内容:
可追溯性:即分析该软件的系统结构、子系统结构,确认该软件设计是否覆盖了所有已确定的软件需求,软件每一成分是否可追溯到某一项需求
接口:即分析软件各部分之间的联系,确认该软件的内部接口与外部接口是否以及明确定义。模块是否满足高内聚和低耦合的要求
风险:即确认该软件设计在现有技术条件下和预算范围内是否能按时实现
实用性:即确认该软件设计对于需求的解决方案是否实用
技术清晰度:即确认该软件设计是否以一种易于翻译成代码的形式表达
可维护性:从软件维护的角度出发,确认该软件设计是否考虑了方便未来的维护
质量:即确认该软件设计是否表现出良好的质量特征
各种选择方案:看是否考虑过其他方案,比较各种选择方案的标准是什么
限制:评估对该软件的显示是否显示,是否与需求一致
其他具体问题:对于文档、可测试性、设计过程等进行评估

为了评测设计是否达到目标,建立了衡量设计的技术标准:
设计出来的结构应是分层结构,从而建立软件成分之间的控制
设计应当模块化,从逻辑上将软件划分为完成特定功能或子功能的构件
设计应当包含数据抽象,也包含过程抽象
设计应当建立具有独立功能特征的模块
设计应当建立能够降低模块与外部环境之间复杂连接的接口
设计应能根据软件需求分析获取的信息,建立可驱动,可重复的方法。
(3)详细设计说明书评测
所有单元或过程说的目的是否都已文档化
包括了数据流、控制流、和接口的单元设计是否已清晰地说明
是否已定义和初始化所有地变量、指针和常量
是否已描述单元地全部功能
是否已详细说明用来实现该单元地关键算法
是否已列出该单元地调用
该文档是否遵循了该项目已文档化地标准
是否采用了所要求地方法和工具来进行单元设计
数据元素地命名和使用在整个单元和单元接口之间是否一致
所有接口地设计是否互相一致和更高级别文档一致
是否所有声明地数据都被实际使用到
是否所有该单元地数据结构都被详细说明
是否所有修改共享数据或文件地程序都考虑到了其他程序对该共享数据或文件地存取权限
是否所有逻辑单元、事件标志和同步标志都被定义和初始化
接口参数在数量、类型和顺序上是否匹配
是否所有地输入和输出都被正确定义和检查
是否传递参数序列都被清晰地描述
是否所有参数和控制标志由已描述地单元传递或返回
是否详细说明了参数地度量单位、取值范围、正确度和精度
共享数据区域即其存取规定地映射是否一致
单元是否具有高内聚度和低耦合度
是否该单元地所有约束都被详细说明
初始化是否使用到缺省值,缺省值是否正确
是否在内存访问的时候执行了边界检查来确保只是改变了目标存储文职
是否执行输入、输出、接口和结果地错误检查
是否对所有错误情况都发出有意义地信息
对特殊情况返回地代码是否和已规定地全局定义地返回代码相匹配
是否能够对每个单元进行测试、演示、分析或检查来说明他们是满足需求地
该设计是否包含检查点来帮助测试
是否所有地逻辑都能被测试
是否已描述测试程序、测试数据集和测试结果
是否设计地每一部分都能追溯到其他项目文档地需求、也能追溯到更高级别文档地需求
是否所有地设计决定都能追溯到权衡考虑
单元需求是否都能上溯到更高级别地文档,更搞级别地文档地需求是否以及在单元中体现
(4)软件编码规范评测
程序实际上也是一种工人阅读的文章,有一个文章风格问题。程序良好的风格表现在源程序文档化、数据说明的方法、语句结构和输入/输出方法这四个方面,软件编码规范评测也是围绕这四个方面展开。
符号名的命名。符号名就是标识符,包括模块名、变量名、标号名、子程序名、数据区名以及缓冲区名等。这些名字应能反映他所代表的 实际东西,应有一定的实际意义。如:表示次数的量用Times,表示总量的用Total等
程序的注释。夹在程序中的注释是程序员日后与程序读者之间通信的重要手段。注释不是可有可无的。一些正规的程序文本中,注释行的数量占到整个源程序的1/3~1/2,甚至更多。
标准得书写格式。视觉组织用空格、空行和移行来实现。恰当地利用空格,可以突出运算得优先性,减少编码得错误:自然得程序段之间可用空行隔开;移行也叫做向右缩格。是指程序中的各行不必都在左端对齐,都从第一格起排列,这样做使程序完全分不清层次关系。对于选择语句和循环语句,把其中得程序段语句向右作阶梯式移行。使程序得逻辑结构更加清晰。
数据说明得次序应当规范化。数据说明次序规范化,使数据属性容易查找,也有利于测试,排错和维护。原则上,数据说明得次序与语法无关,其次序使任意得。但出于阅读、理解和维护的需要,最好使其规范化,使说明的先后次序固定。
说明语句中变量安排有序化。当多个变量名在一个说明语句中说明时,应当对这些变量按字母的顺序排列。带标号的全程数据也应当按字母的顺序排列。
使用注释说明复杂数据结构。如果设计了一个复杂的数据结构,应当使用注释来说明在程序实现时这个数据结构的固有特点。
在设计阶段确定了软件的逻辑流结构,但构造单个语句则是编码阶段的任务。语句构造力求简单、直接,不能为了片面追求效率而使语句复杂化。
输入和输出信息是与用户的使用直接相关的。输入和输出的方式和格式应当尽可能方便用户的使用。一定要避免因设计不当给用户到来的麻烦。因此,在软件需求分析阶段和设计阶段,就应当基本确定输入和输出的风格。系统能否被用户接受,有时就取决于输入和输出的风格。
对所有的输入数据都要进行检验,识别错误的输入,以保证每个数据的有效性;
检查输入项的各种重要组合的合理性,必要时报告输入状态信息
是输入的步骤和操作尽可能简单,并保持简单的输入格式
输入数据时,应允许使用自由格式输入
输入一批数据时,最好使用输入结束标志,而不是由用户指定输入数据数目
在交互式输入时,要在屏幕上使用提示符,明确提示交互输入的请求,指明可使用选择项的种类和取值范围。
当程序设计语言对输入/输出格式有严格要求时,应保持输入格式与输入语句要求的一致性
给所有的输出加注解,并设计输出报表格式
单元测试又称模块测试,是针对软件设计最小的单位——程序模块,进行正确性检验的测试工作。其目的在于发现各模块内部可能存在的各种差错。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。
在进行单元测试时,测试者需要依据详细设计说明书和源程序清单,了解该模块地I/O条件和模块地逻辑结构,主要采用白盒测试地测试用例,辅之以黑盒测试地测试用例,使之对任何合理地输入和不合理地输入,都能鉴别和相应,这要求对所有地局部地和全局地数据结构、外部接口和程序代码地关键部分,都要进行桌面检查和严格地代码审查。
在单元测试地开始,应对通过所测模块地数据流进行测试,如果数据不能正确地输入和输出,就谈不上进行其他测试。未此,对模块接口可能需要如下地测试项目:调用所测模块时地输入参数与模块地形式参数在个数、属性、顺序上是否匹配;所测模块调用子模块时,他输入个子模块地参数与子模块中的形式参数在个数、属性、顺序上是否匹配。是否修改了只作输入用的形式参数:输出给标准函数的参数在个数、属性、顺序上是否正确,全局量的定义在各模块中是否一致,限制是否通过形式参数来传送。
模块的局部数据结构时最常见的错误来源,应设计用例以检查一下各种错误:不争取或不一致的错误类型说明;使用尚未赋值成功或尚未初始化的变量;错误的初始值或错误的缺省值;变量名拼写错或书写错;不一致的数据类型
由于通常不可能做到穷举测试,所以在单元测试期间要选择适当的测试用例,对模块中重要的执行路径进行测试。应当设计测试用例查找由于错误的计算、不正确的比较或不正常的控制流而导致的错误。
常见的不正确计算有:运算的优先次序不正确或误解了运算的优先次序;运算的方式错,及运算的对象彼此在类型上不相容;算法错;初始化不正确;运算精度不够;表达式的符号表示不正确。
常见的比较和控制流错误有:不同数据类型的相互比较;不正确的逻辑运算符或优先次序;因浮点数运算精度问题而造成的两值比较不等;关系表达式中不正确的变量和比较符;当遇到发散的迭代时不能中止的循环;不适当的修改了循环变量等。
比较完善的模块设计要求能遇见出错的条件,并设置适当的出错处理,以便在一旦程序出错时,能对出错程序重做安排,保证其逻辑上的正确性。这种出错处理也应当是模块功能的一部分。
若出现下列情况之一,则表明模块的错误处理功能包含有错误或缺陷:出错的描述难以理解;出错的描述不足以对错误定位,不足以确定出错的原因;显示的错误与实际的错误不符;对错误条件的处理不正确;在对错误进行处理之前,错误条件已经引起系统的干预等。
在边界上出现错误时常见的。如:循环次数的错误,还有取最大值和最小值时也容易出错。因此需要特别注意等于、大于、小于这种判断。
此外,如果对模块运行时间有要求的话,还要专门进行关键路径测试,以确定最坏情况下和平均意义下影响模块运行时间的因素。
集成测试也叫做组装测试或联合测试。通常在单元测试的基础上,需要将所有模块按照概要设计说明书和详细设计说明书的要求进行组装。
组装时需要考虑的问题:
在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失;
一个模块的功能是否会对另一个模块的功能产生不利的影响;
各个子功能组合起来,能否达到预期要求的父功能;
全局数据结构是否有问题;
单个模块的误差累积起来,是否会放大,以致达到不能接受的程度;
在进行集成测试时,测试者应当确定关键模块,对这些关键模块及早进行测试。关键模块至少应具有一下几种特征之一:
在程序的模块结构中位于较高的层次;
较复杂、较易发生错误;
集成测试是一种正规测试过程,必须精心计划,并与单元测试的完成时间协调起来。在制定测试计划时,应考虑到:
采用何种系统组装方法来进行集成测试;
集成测试过程中连接各个模块的顺序;
模块代码编制和测试进度是否与集成测试的顺序一致;
测试过程中是否需要专门的硬件设备;
成功的执行了测试计划中规定的所有集成测试
测试结果通过了专门小组的评审
确认测试的任务时雁阵软件的功能和性能以及其他特性是否与用户要求的一致,对软件的功能和性能要求在软件需求规格说明书中明确规定。确认测试一般包括有效性测试和软件配置复查,确认测试一般由独立的第三方测试机构进行。
有效性测试是在模拟环境下,运用黑盒测试的方法,验证所测软件是否满足需求规格说明书列出的需求。为此,需要制定测试计划、测试步骤以及具体的测试用例。同时,对软件的可移植性,可靠性、易用性、兼容性、可维护性等需求也要进行测试,确认是否满足。
在全部软件测试的测试用例运行完后,所有的测试结果可以分为两类。
1.测试结果与预取结果相符。说明软件的这部分功能或性能特征与需求规格说明书相符合,从而接受了这部分程序。
2.测试结果与预期结果不符。说明软件的这部分功能或性能特征与需求规格说明不一致,因此要为他提交一份问题报告。
软件配置复查的目的时保证软件配置的所有成分都齐全,各方面的质量都符合要求,具有维护阶段所必须的细节,而且已经编排好分类的目录。
在测试的过程中,还应当严格遵守用户手册和操作手册中规定的步骤,一边检查文档资料的完整性和正确性。
系统测试是将通过集成测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际或者模拟运行环境下,对计算机系统进行一系列测试。
系统测试的目的在于通过与系统的需求定义作比较,发现软件与系统定义不符合或与之矛盾的地方
验收测试是以用户为主的测试。软件开发人员和质量保证人员也应参加。由用户参加设计测试用例。使用用户界面输入测试数据,并分析测试的输出结果。一般使用生产中的实际数据进行测试。

前几日某论坛发起了一个关于“你曾后悔进入IT行业吗?为什么?”的话题引起热议。

一句话总结:看了大概200条评论,99%的不后悔,大部分人后悔没有早点干,但是做IT主要的是要注意身体。

在现在这个年代,做哪一行都不轻松,但是IT回报率会更高一些。所以越来越多的人想要拼进个行业,我身边就有很多当年考上各种的,学了物理、化学、数学等理科的,后面竟然大部分都转行到了 IT,而转行的原因在于他们毕业后很难找到高薪的工作,而当初本身又不懂,毕业后又不想拿着低工资从事学术研究工作,所以,纷纷不约而同都转到了 IT。

那么做为IT行业的小白,想转行IT,在东莞哪家IT培训机构比较好呢?

东莞达内IT培训成立2014年,是北京达内科技有限公司在东莞直属高端IT培训学校基地,东莞达内IT培训学校,成为东莞当地IT培训机构的标杆,园区内软件开发氛围更加浓厚,学员在空余时间可与其他IT科技名企进行学术交流和参加IT软件大赛等活动,提高了IT软件开发项目的实战能力和软件开发思维,经验积累在于多次实践的厚积薄发,从东莞达内毕业出来的IT学员,进入广东各大知名IT名企更有Power。

东莞达内IT培训的优势:

东莞达内科技汇聚国内外50多位技术,500多位核心研发工程师。携手世界500强企业,打造强强联合的企业定制课程,高就业率10年全国。

达内科技+3G+云计算软件工程师、数字艺术UID设计师、PHP/WEB3.0 互联网工程师、嵌入式软件工程师、国际软件测试工程师等

东莞达内经过不懈努力,达内在就业上已取得了优异成绩,实现了98%的高就业率、95%的专业就业率以及78%的口碑入学。并且IT人才需求非常大,经过珠海达内培训的专业人才几乎处于供不应求的状态。

现在咨询可取7天免费试听卡,抢先体验达内精品IT课程。

我是老杨,一个从事网络这行9年的老网工,来知乎这么久了,一直都有小伙伴来咨询我关于入行的问题。今天就来做个汇总,作为分享,希望可以让大家对网工这行业有所启发。

全文6000+字,干货满满。如果你是零基础小白,那这篇内容你一定要看完,以后绝对能少走很多弯路。

内容很长,为了方便大家查看,文章开始前,老杨先给你整理出了一个目录大纲,方便你阅读食用:

1.网络工程师就业前景如何?

具体有哪些职业方向? 小白选择哪种类型的公司入职最好? 网工职业发展路径是怎么样的?

2.学习网络工程师是否需要考证?考证又有什么用?

3.思科认证、华为认证、软考,到底考哪个好?

4.作为小白,有哪些学习资源可以推荐?

文章正式开始之前,老杨也给大家插播一个初级入门网络工程师训练营,这个训练营是面向零基础朋友的,小白也能完全听懂。

里面包含了3天网工直播实战课,从软件安装、知识点讲解到实战技能操作一应俱全,扫码进群后还可以获取全套的工具以及书籍、笔记等60G学习资源,帮助大家打开网络工程师第一扇大门。有需要的同学可以进入上课群,开启学习之旅。

一、网络工程师就业前景如何?

现在的网络基础建设已经很完善了,自然会对基层的打工人要求提升,这是时代发展必然的趋势,各行各业都是如此。它的发展方向也可以说是非常多元化的,完全可以自由选择。

1.网络工程师的职业方向,到底有多少?

你可能知道网络工程师是一个岗位,但你可能不知道网络工程师有三大就业选择方向,大几十种岗位,等着你就位。

这就是老杨今天要给你的网工三大就业选择:甲方、乙方和厂商。

看上面这张图,你就能清晰的知道这三个方向对应的岗位以及基本的一个薪资浮动。接下来,老杨会和你详细介绍下这三个方向,具体都是什么类型的公司,以及小白到底适合进入哪个方向,才能为未来发展打好基础。

甲方是一个相对含义的词,一般是指提出目标下达命令的一方,最早是出现在合同里的专属用语。而在IT行业里的甲方,则指的是政府机关、金融公司、运营商和一些大厂(BAT等)的统称。

为啥喊他们叫做甲方呢?

共性就是:有资本和需求购买大量的网络设备,也有部署各类型网络的需求,他们需要专业人士来帮助他们搞定网络,于是,“多金待遇好”等美名就慢慢的开始传播起来。

甲方大多数都已拥有稳定网络,这时候就需要一定量的网络工程师进行维护的工作。

像移动、电信这类的大型运营商,对于网络的维护需求就非常大,而银行和证券也是同理。

而哪怕是行外人也会知道,在这类型的公司上班,大多数都是比较光鲜和体面的,在IT行业里也是如此。

乙方是相对于甲方而出现的名词,主要是为了完成甲方需求的工作角色。

在IT行业里的乙方,更多的被业内人士称为集成商和代理商。比如华讯、长威、金科等公司都是乙方公司的代表。

他们通常是把自己的服务和设备(从厂商那里拿)卖给甲方,“你有需求我满足”,是任劳任怨一把手的存在。

实际上,集成商和代理商在全国非常多,但是出名的却不多。因为它们主要在当地发展,需要大量的渠道资源,发展有所限制。所以,华讯相对来说已经是很大的乙方公司了。

小白新手想从头开始学网络技术,一般都会建议去这种乙方公司,做售后和售前的相关岗位,好好打基础。

厂商应该算是考证的小白们最熟悉的一个就业选择了,你所知道的思科、华为、H3C、锐捷、神州数码、juniper等等认证都是出自厂商之手。

厂商主要是研发和生产设备的公司,大部分是由研发+售前/销售(市场部门)+技术服务部门组成的,相对于乙方,厂商的社会地位高一点,甲方则是食物链顶端的存在。

一般来说,除了研发,剩下两个大方向网工也都可以选择,也都有对应的岗位,只是对能力要求会有所差距。但如果一定要进研发,也是可以的。老杨当初就是研发里的测试部门,学到的也不少。

2.如果你的学历一般,怎么选择岗位方向?

下面先给大家附上三大方向企业的岗位截图(节选部分),可以从薪资和具体岗位要求的角度,好好品品:

(1)甲方公司的薪资及要求

总结一下,甲方对人才的要求是:喜欢招收比较有经验的网络工程师,并对学历有要求。但技术成长比较有限。

工作较为稳定,普遍薪资、福利较好,尤其是金融行业,真香。

门槛很高,喜欢招收有多年经验+学历高的网工(985/211本科或者更高),所以与之对应的技术提升,也会比较缓慢。

如果你是一位已经沉淀了多年项目经验的网工,期望更高薪资待遇+稳定体面的工作,那么选择甲方是很不错的。

(2)乙方公司的薪资及要求

总结一下,乙方对于人才的要求:有经验也好,没经验也罢,人家全都要。

因为项目太多,所以需要的人员数量也会非常多,有的公司还需要有一定数量的证书参与竞标,所以有证书是很加分的。

对网工的项目经验这块要求不高,门槛比较低,对学历没有很明确的限制。因为承接的项目很多,你接手的项目也会非常多,你的技术实力提升也会随之倍速增长。

项目较多有利有弊,除了能锻炼你的技术外,随之而来的是工作量的剧增。很多人向往稳定的工作,而乙方很可能会需要经常性的出差,加上门槛低,所以你的起薪也不会太高。

如果你即将毕业,没有项目经验,手上有CCIE证书(CCNP勉强接受),那么乙方应该是你最佳的选择。

(3)厂商公司的薪资及要求


总结一下,厂商对于人才的要求:喜欢网络基础扎实,有研究和钻研态度的网工。对协议要有清晰认识,有开发经验更好。学历要求比较高,二线厂商最低要求也是全日制本科。

福利待遇+薪资都非常不错,大平台下,能力提升也很快。

工作压力非常大,竞争相对激烈很多,对你的成长能力有着比较高的要求。

所以,厂商就适合有多年经验,并愿意接触、从事开发的网络工程师。

综合来看,老杨觉得,网工小白可以优先选乙方。

这也是大多数网工的选择,在这里任职的网工可以快速积累项目经验,因为你所在的企业需要服务很多很多甲方,那你就会了解到不同的网络场景和架构。

一开始,大家都要做实施维护和故障排查等工作,事情繁多复杂,乃是常事。

但对小白来说,能学到的可真的不少。工作2-3年后,在选择甲方或者厂商跳槽,会比一片白纸的你轻易的多。

3.网络工程师的职业发展路径是什么样的?

职业发展路径,只要对网工有兴趣的肯定都看过很多种答案了,但是这一份我觉得你可以看看,作为一个“完美的”网络工程师职业发展规划来说,完全可以参考并着手安排:


可以从图中看到,不管是25岁前的规划,还是30岁以后的规划,“技能证书”都是理想道路上必备的一个条件。不管其他机构怎么吹,老杨个人是觉得,IE证书对应届生的加持是最大的,它会给你一个非常好的开始。

太早了,毕业你就忘光光;

太迟了,你根本没时间去备考。

它对于这些人的加成尤其大:就是那些备考过程中,不仅仅是为了证书,而是为了把基础知识学明白,融汇贯通的小友们。

二、学习网络工程师是否需要考证?

基于现在的市场需求以及个人提升发展角度来看,老杨还是建议大家考个证。

为什么这么说呢?肯定有人会反驳。的确,现在也有不少老网工,都是“无证上岗”,人家工作了10年20年,可能没有证书,也一样过得好好的。

但是现在的社会压力和以前是不能比的,每个人都有更高的追求。大家追求所谓的211、985名校,也不过是为了在职业发展中有一个好的起点。所以,考证书去证明自己,和高考追求高分,本质上是同一个理由。

再者,这行的贫富差距比较大,两极分化很明显,比如:年薪30w的和月薪5k的,他们都叫做“网络工程师”……换做是你,有机会拿到30w,会去选择5k吗?


第三,我们也可以从招聘网站的大量岗位要求里得出“考证是否有必要的结论”:大部分企业在招聘时就已经标明了有证书的优先,甚至直接将证书作为了一个必要门槛,而且大多数都要求中级及以上证书。

从以上三点我们可以得出一个显而易见的结论:有了证书就等于大幅度提升了自己的简历含金量。

另外,对于一些想转行和跳槽的人来说,如果没有经验和过硬的简历基本上也很少实现。

但如果一位运维转网工,带着一本IE证书,不仅能展示出自身的网络工程师水平,简历上再加上不少中大型项目经验,这不是锦上添花的事儿吗?

说到这里,还是有很多网工不知道自己该不该考证。老杨也在这里附上一张由我本人亲自花费1个月整理的“网络工程师必备技术”思维导图,你可以把图上的技术和自己掌握的技术对比一下,自己掌握了多少。

没掌握的部分如何系统学?

怎么判断自己到底学没学会?

这就是很多网工的难点和痛点,而考证,就是能帮你查缺补漏,系统打好技术底层的最佳方式。

老杨还整理过其他一些网工入门资料,因为篇幅有限不方便全部展示,如果各位想快速入门网工,现在正好有个免费的集训营,不仅能帮助各位系统入门,而且还提供一对一专属答疑服务,解决学习及工作中绝大部分问题,有需要的同学直接点击下方卡片进群领取就行。

三、思科认证、华为认证、软考,到底考哪个好?

谈完考证的必要性,那我们再来聊聊考证的种类。目前在行业里,比较热门的考证选择,无非就是思科、华为这种厂商认证网络工程师软考了。

思科公司是全球领先的网络解决方案供应商,是IT网络的鼻祖。

思科认证就是思科公司推出的,是互联网领域的国际权威认证之一,也被誉为十大最难考取的职业认证。思科认证共分为五个级别: CCT、CCNA、CCNP、CCIE、CCAr。

难度依次提升,而CCIE是能直接自主选择考取的最高等级证书,通过CCIE认证考试后,获得全球唯一的CCIE号码,并且是永久保留。

目前,仅有六万多人持有CCIE认证(包含CCIE所有方向)。获得CCIE认证不仅证明你的技术达到专家水平,得到业界认可与肯定,更是一种荣誉的象征,一种自我价值的体现。


思科认证分为多个方向,其中,数通方向(即EI企业基础架构方向)是多数人的首选考证方向,作为一个基础方向,学好并理解它,才能理解整个网络,从而更好的学习其他方向,来丰富自己的整个技术体系。

EI方向到底学什么?这份思科官方的考纲(因文章篇幅限制,每个等级仅节选部分内容)老杨给你附上了,可以细细研读一番:


如果各位有兴趣报考此考试,老杨这边推荐大家先看看这个入门课,3天的时间,帮助你加深对网络的了解,零基础也能快速入门,有需要的同学加入上课群即可。

华为认证体系是华为公司凭借多年ICT人才培养经验及对行业发展的深刻理解,基于华为“平台+生态”战略,围绕“云-管-端”协同的新ICT技术架构,打造包含ICT架构认证、ICT开发者认证、行业ICT认证三大类认证的认证体系,是业界唯一覆盖ICT全技术领域的认证体系。


华为认证覆盖路由交换(现Datacom)、安全、无线局域网、SDN、LTE 、传送网 、接入、统一通信 、数据中心设施、存储、云计算 、大数据、数据中心、云服务、IoT、AI等16个技术领域,由低到高分为HCNA 、HCNP 、HCIE三个等级,是唯一的ICT全技术领域认证体系。


由于现在国内大部分都是华为的设备,所以华为认证的网络工程师也就更加吃香一些。

很多人对旧版RS和新版Datacom一直很混乱,不知道到底这俩的关系是什么,老杨为此特地做一套分析图,你可以细细品品:


如果大家想快速入门华为认证,目前老杨筹备大半年的实战集训营可能会比较适合你。

从知识点讲解到实战技能操作一应俱全,还赠送60G网络工程师入门资料包,只需要3天时间,就能帮助各位从入门到进阶,还有专属双IE助教答疑解惑哈。

有需要的可以点下方卡片加入上课群,可获取课程详情:

被很多大学生悉知的软考,实际上就是网络工程师考试属于计算机软件资格(水平)考试中级资格考试。

计算机技术与软件专业技术资格(水平)考试(以下简称计算机软件资格考试),是国家人事部和信息产业部对全国计算机与软件专业技术人员进行的职业资格和专业技术资格认定(见国人部发[2003]39号文件)。


参加这种考试并取得相应级别的资格证书,是各用人单位聘用计算机技术与软件专业工程师系列职务的前提。

计算机软件资格考试,与会计、经济师、税务师、律师、建筑师资格考试一样,属于国家专业技术资格考试,并纳入全国专业技术人员职业资格证书制度统一规划。

(1)考试的内容大而广,理论大于实践,费用相对低廉

(2)根据中国国情而定,不具备很强的国际通用性

(3)事业单位/政府单位加薪好助手

虽然软考既是职业资格考试,又是职称资格考试,但是并不是说考取了软考中级网络工程师证书就是中级职称了,职称是需要评定的,如果所在单位有中级职称的空余岗位,自身又符合相关要求,就可以申请评中级职称。


在大学中,软考是很多网工专业的大学生的首选考证选择,我们学可以学,考当然也可以考。

但是要明确一点的是,在毕业之后的就业之路上,软考的帮助是有限的(国企/事业单位除外),想要学到真正的技术和能力,建议时间太多没事干,还是学个厂商认证香

四、具体有哪些学习渠道推荐?

除了考证,平常的学习也是必不可少,下面老杨罗列整理了几个学习渠道,希望能作为各位日常积累的知识源泉。

《TCP/IP路由技术(第1~2卷)》

从路由器和路由选择协议的基本知识开始梳理,还阐述了各种常用的IP内容路由选择协议:RIP、RIP2、IGRP、EIGRP、OSPF以及IS-IS协议,老杨多次推荐过,简直是入门必看系列,特别是需要考证的小伙伴。

《IP多播网络的设计与部署》

这本书算的上是难得一见的多播网络的学习圣经,不仅给你讲清楚IP多播理论、Internet组管理协议等等内容,还讲解了多播流量工程和域间多播路由这两个高级主题。

通过附录,你可以对PIM数据包的格式有一定程度的了解。这本书适合即将部署多播网络或者已经部署了多播网络,但对其工作机制不甚明了的工程维护人员阅读食用。

《华为防火墙技术漫谈》

思科书籍介绍了不少,毕竟老杨本人就是思科IE出身,为了普适性,加上一本华为一起聊聊吧。

《华为防火墙技术漫谈》这本书,其实主要介绍了华为传统防火墙关键技术原理、应用场景和配置方法,主要包括安全策略、攻击防范、NAT、VPN等,并结合网上案例给出以上技术的综合应用配置举例,以防火墙网上实际需求为导向,采用发现问题——解决问题——再发现问题——再解决问题的思路组织内容,内容连贯性强、逻辑性强。


图上这些就不一一罗列了,大家可以按照书名去搜索

如果想看一些比较基础的入门课(全行业适用),老杨觉得腾讯课堂是个不错的选择。这个平台上关于职业技能、IT这类的课程相对丰富,很适合刚毕业的IT新人提升自我和技能,尤其是IT类课程资源,但部分需要收费,而且需要自己去筛选。

如果想系统入门网络工程师,比起腾讯课堂的付费内容,老杨比较推荐下面这套课程资源,限时免费中。里面包含了实战教学,就算你是零基础的小白也能完全听得懂,而且还有专门的老师答疑解惑,一对一辅导,能更深入地去了解网络工程师这个行业,有思科/华为认证考试需要的同学完全可以进群抽时间听听看,大家按需选择就好。


老杨今天的分享就到这里,如果觉得本篇文章内容对你有帮助,欢迎各位点赞收藏,转发给更多正在迷茫中的小白网工吧。

此外,你们也可以在本篇文章下方,留言告诉我你的疑惑,我会准备第二期内容,继续为你解答哈。

原创:老杨丨9年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部

我要回帖

更多关于 软考中级哪个最容易过 的文章

 

随机推荐