软件测试工程师必备软技能:结构化思维

今年是入测试行业的第十年,回想在这十年职业生涯中,来来往往也接触过形形色色的人。在跟不同的人一起工作的过程中,我会经常产生一些困惑,比如:

- 面对同样复杂的测试任务,有些人可以在一天之内梳理出解决方案,而有些却要墨迹很长时间?

- 有些人能够快速的描述出工作中的问题,而有些人支支吾吾一直说不清楚?

- 有些人当被问到“你这样说的依据是什么?”“有没有具体例子”时,经常被卡壳,有些人却能摆事实讲道理有条不稳的说上一二三?

不知道你有没有经历过类似的困惑。但是随着工作的深入接触,不难发现那些能够快速解决问题以及高效沟通的人会有这样一个共同点,就是他们拥有一套高效的**结构化思维方式**。

什么是结构化思维方式?

结构化思维简单来说就是,面向问题的时候你可以通过某种结构,把它拆解成一个个你能解决的部分。

举个很常见的例子来感受一下,假如你作为一个面试官,面试的时候,让候选人思考一个淘宝购物车功能,需要怎么测试?你可能会得到很多的答案,比如有些候选人会回答,先添加购物车,后删除,查看数量是否正确;勾选购物车,看价格是否计算正确;最多可以添加几个商品等等。

这些答案,可能对,也可能不对,但是大多数时候,都是基于我们的测试经验来分析问题,不一定能保证想清而且想全了。那么如何用结构化思维来更清晰更全面的分析这样的问题?作为测试工程师,其实我们都知道,测试的分类大抵可以分为:界面测试/功能测试/性能测试/安全测试/异常测试/兼容性测试。那如果我们从测试分类上对这个测试分析进行拆解,无非就是这几个测试分类怎么测,然后在各个分类上做细化,直到不能再拆解(如下),这就是一个简单的用结构化思维来分析问题的过程,我们在写测试用例或者梳理测试点的时候也可以应用,通过按测试类别进行拆解,不仅能把事情讲全,而且分析的还相对比较清楚。

由此可见,结构化思维是一种从无序到有序的思考过程,这个过程中,你可以建立一个先总后分的立体化分析方式。先看能够解决问题的关键方面,然后往下分析,从而实现从全局到局部的鸟瞰,而不仅仅拘泥在一种细节里面。而这种常见的思维方式,其实就是一张金字塔的树状图。

为什么测试工程师要学习结构化思维方式?

工作中,软件测试工程师需要面对的不仅仅是能够独立承担复杂模块或者产品的测试工作,还需要不断的去横向或者纵向与不同的角色沟通交流,面对复杂项目的时候,甚至会跨角色边界进行项目管理,流程把控等等,而这些对个人的能力都有一定的要求;同时我们无论在跟人沟通或者在解决具体某个问题时候,我们往往面对的是没有目标的海量信息,打个比方,同一件事,有的人能用三句话说清楚,而有的人可能30min也说不到核心;面对一个复杂业务模块,有的人能够快速有层次的做一次测试点的分析和组织一场高效的测试用例评审,而有的人却在测试分析上归纳混乱,导致用例评审不断在拖堂……工作中这样的例子举不胜数,那这块的思维差异体现在哪里呢?**最根本的原因,在于有没有形成快速有效的处理信息的方式,以及对信息逻辑结构的梳理和清晰有效的表达。

举个例子,在一次处理线上事故中,有一个测试的同事急冲冲的跑过来汇报说:“发现之前的代码有问题,某些数据推动到另外一个平台上了,现在改的话影响很大,是不是找另外的时间去改?”当你收到这个信息的时候,你可能会产生一些问题,比如影响很大是多大,后面找个时间是多长时间?同时你作为消息的接受者,你可能得到的信息只是你的同事发现了一个问题,但是并没有获得事件来龙去脉的详细信息以及具体的处理方案?而这样的场景在我们的生活和工作中历历在目,因为没有有效的处理信息以及有效的表达,导致沟通过程中信息的不对称,沟通成本的不断增加。

由此可见,结构化思维在我们的日常工作和生活沟通上显得尤为重要,复杂问题通过金字塔模式的一层一层剖析,可以非常清晰并且有条理的对外展示你的想法和思维逻辑,从而提高我们处理问题的效率同时又降低了沟通成本。

如何提高结构化思维?

当我们逐渐揭开结构化思维以及了解它的作用以后,我们会想,结构化思维能够训练和提高嘛?答案当然可以!当然我们需要更进一步分析金字塔模型。

在金字塔结构中,总体上有两个方向的逻辑关系,即纵向逻辑关系和横向逻辑关系。一个好的金字塔结构,需要在纵向关系上满足结论先行、以上统下;在横向关系上,满足归类分组、逻辑递进这四个基本原则。用一句话概括,就是“论证类比”。

纵向:纵向是层次关系,上一层次思想是对其下一层次思想的概括,下一层次是对上一层次的解释和支持。

横向:横向是关联关系,每组中的思想必须属于同一逻辑范畴,必须按照逻辑顺序组织。

在对金字塔结构的进一步梳理后,我们可以将结构化思维能力归结为如下三点:

1.归纳信息能力--横向类比能力

海量信息的收集并不能完全帮助我们分析和解决问题,归纳信息有助于帮助我们的大脑记忆,梳理逻辑和思路。

下面推荐一个分类法则:

MECE法则(Mutually Exclusive Collectively Exhaustive),即相互独立、完全穷尽。分解问题时运用MECE原则可保证形成的观点最清晰、最完整,不重不漏。

其中常用的方法有5种,我们其实在工作中也经常应用:

1、二分法

这个分类方式在日常生活中比较常见,其实就是把信息分成A和非A两个部分。

比如国内、国外,他人、自己,已婚、未婚,成年人、未成年人,左右,男女,收入和支出,专业和业余等等。

2、过程法

也就是按照事情发展的时间、流程、程序,对信息进行逐一的分类。

比如在日常生活当中制定的日程表,解决问题的6个步骤,达成目标的3个阶段,其实都属于过程分类。 过程分类法特别适合用于在对项目进展和阶段的汇报上。

3、要素法

我们在生活当中也经常会使用到要素法。

比如说优秀员工的7种品质、公司的组织架构图等等,其实都是把一个整体分成不同的构成部分。可以是从上到下,从外到内,从整体到局部。 这种分类方法是用于说明事物的各个方面特征的。

4、公式法

公式法就是可以按照公式设计的要素去分类,只要公式成立,那这样的分类就符合MECE原则。

5、矩阵法

比如我们在安排工作的时候,有一种分类方式,是把你的工作分成以下四种:(1)重要紧急,(2)重要不紧急,(3)不重要但紧急,(4)不重要也不紧急。

然后可以把它们填到4个象限当中去,这4个象限就是2×2矩阵。这种分类方式就叫做矩阵法。

6.特定场景的分类法则

对于大部分情况来说,MECE法则是一个较为通用的分类法则,但在某些场景下我们还有更直接的模型,可以把现有的信息,分类放到一些分类模型当中去。   

比如,在考虑市场战略的时候有一个常用的模型叫做3C,即公司(Company)、顾客(Customer)、竞争对手(Competitor)三个英文单词的首字母。按照这三个要素进行战略归类的时候,就可以防止公司出现忽视用户需求、市场行情,自顾自去开发产品,导致血本无归的情形。

思考组织战略的“7S”模型:即经营策略(Strategy)、组织结构(Structure)、运营系统(System)、经营风格(Style)、职员(Staff)、组织技能(Skill)和共享价值观(Shared value)。

分析竞争力的SWOT模型:SWOT分析代表分析企业优势(Strengths)、劣势(Weakness)、机会(Opportunity)和威胁(Threats)。

制定目标的SMART模型:即制定目标要满足确定性(Specific) 、可度量性(Measurable)、可实现性(Attainable)、相关性(Relevant)和时效性(Time-based)等等。

针对以上的分类方法我们不一一例举,那我们如何在我们的职场中应用这些分类法则呢?

举个例子,最近系统不稳定,连续出现了一些比较严重的P1故障,老板让你组织开一个全员大会,提升大家的质量意识。你准备发出一个会议通知:

为了提升质量意识,召集大家在10月22日下午3点在3号楼205培训室召开全员大会。会议议程是首先复盘一下最近故障出现的原因,然后制定策略防止类似故障再次出现。目标是为了在下半年不再出现P1故障,确保线上系统稳定性。

然而,这个内容不够清晰,更好的做法是可以使用5W2H模型对内容进行结构化的表达:

目标:提升全员质量意识,下半年不再出现P1故障。

时间:10月22日下午3点。

地点:3号楼205。

议程:1)故障复盘。2)制定故障防控策略。

对比两个会议通知,不难发现,特定场景下,5W2H的结构让我们的表达更有条理,更加清晰。

2.提炼信息结论的能力----纵向论证能力

当我们归纳到所有信息,我们如何加强提炼信息结论的能力?这个其实就是展示了金字塔模型中纵向论证到能力。

在提炼信息结论的能力中,最常用的有两个方法,这两个方法在很多书中都有介绍,下面简单介绍一下这两类方法。

1.演绎法

演绎是一种线性的推理方式,最终是为了得出一个由逻辑词“因此”引出的结论。在金字塔结构中,位于演绎论证过程上一层次的思想是对演绎过程的概括,重点是在演绎推理过程的最后一步,即“因此”引出的结论。最经典的是亚里士多德的三段论:

大前提:所有人都会死;

小前提:苏格拉底是人。

结论:苏格拉底会死。

在日常工作中我们也经常会用演绎法去总结结论,比如:

已知规则:需求频繁变动容易导致bug

具体事件:快上线了,业务方要加需求,加不加

结论:不加

用演绎法我们需要注意的是:

1.常常对规则持怀疑态度(规则是变化的,规则不对则结论不成立) 。 2.需要增加知识量,使其保持“可用状态”(已知规则越多,则越容易得出结论)

2.归纳法

归纳逻辑比演绎逻辑要难,因为归纳需要我们有很好的抽象能力,抽象出新的概念,去统领其下面的子概念。在归纳的时候,大脑去要去发现事物(思想、事件、事实)具有共性、共同点,然后将其归类到同一个组中,并说明其共性。归纳逻辑不是线性的,它需要在已有信息的基础上,提升一个抽象层次,得到新概念。

比如,苹果和橘子的上一个抽象层次是“水果”,这种抽象层次的提升,可以让“水果”在纵向关系上统领苹果和橘子。“水果”这个新概念的抽象需要我们具备相关的知识背景。

需要注意的是,归纳法需要摒弃思维定势,认真选取样本(样本是否有代表性,数量是否足够多),同时需要增加经验,扩大势力范围,多看,多吸收,增加事实。

3.表达信息的能力----自上而下

思考是一个隐形的过程,最终我们要将结论显现出来,这就体现了结构化思维中表达信息的能力。

我们在日常沟通中经常会出现如下的误区,很多人会在毫无意识的情况下把自己的思考过程直接传递给对方,举个例子:

在某一次会议中,你跟你的领导反馈说:“我发现最近技术支持那边提出的登陆问题咨询量有点多,我猜测可能是登陆功能出现了问题,然后我让同事排查了一下,发现是xx 迭代,xx误操作导致了接口登陆报错。因为这个问题很影响用户体验,因此需要尽快让xx去解决。"

咋一看貌似没有问题,把过程中的所有细节都跟你描述清楚了,但是在汇报的过程中看似合理的由依据到结论到输出,使得阐出框架相对比较单薄。

假如我们用结构化思维去汇报这件事,会变成:

1.先提出结论:目前登陆接口有问题,导致线上bug,已经找到原因,需要xx尽快解决

2.再具体阐述:出现问题的原因是xxx,这个问题已经持续xx天,非常影响用户体验,这几天技术支持已经产生好几个类似问题的咨询。

3.最后总结:因此一定要快速解决,尽量今天把问题解决。

相比之下,自下而上,有结构的表达,从结论到依据再强化结论的过程可以让信息的接收者快速获得你想要表达的信息,并使得你的结论更具有说服力。

那如何自上而下的去思考和沟通呢?下面给几个小tips:

1.其实我们可以灵活的运用现有的一些模型框架,比如问题-原因-解决方案/SWTO等等

2.可以将自己的表达逻辑可视化,比如一句话的描述等等不断去强化自己的语言和逻辑输出

小结:

结构化思维方式不仅会展现你高效的传递信息的能力,更体现了我们在职场中分析和解决问题的能力。

希望本次的总结分享能够给大家助力职场,带去一些启发和思考~

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
软件测试方法和技术 共17章 1.1 软件的含义 1.2 软件开发过程的特性 1.3 软件测试的重要性 2.1 软件质量就是客户的满意度 2.2 软件缺陷(Bug)是什么 2.3 软件测试的基本方法 2.4 软件测试的分类和阶段 2.5 软件测试的工作范畴 3.1软件质量保证 3.2测试策略 3.3测试计划 3.4软件质量的可靠性评估 4.1 软件质量标准 4.2 软件测试相关规范 4.3 CMM思想和结构体系 4.4 建立软件测试管理和评判体系 5.1 什么是单元测试 5.2 单元测试的目标和任务 5.3 静态测试技术的运用 5.4 动态测试技术的运用 5.5 调试与评估 5.6 单元测试的过程与文档管理 5.7 单元测试的常用工具简介 6.1 系统集成的模式与方法 6.2 功能测试 6.3 系统测试 6.4 压力测试、容量测试和性能测试 6.5安全性测试,可靠性和容错性测试 7.1验收测试的过程和主要内容 7.2产品说明书的验证 7.4兼容性测试 7.5可安装性和可恢复性测试 7.6文档测试 7.7验收测试报告和用户验收测试 8.1 面向对象软件的特点 8.2面向对象测试的层次与数据流 8.3 面向对象的单元测试 8.4面向对象的集成测试 9.1 应用服务器的分类和特征 9.2 基于Web服务器应用的测试 9.3 基于数据库应用服务器的测试 9.4 基于J2EE平台的测试 9.5 其他应用服务器应用的测试 10.1什么是软件本地 10.2软件本地的翻译问题 10.3软件本地测试的技术问题 10.4本地测试的重点 11.1测试自动的内涵 11.2 测试工具的分类和选择 11.3 测试工具的主流产品介绍 11.4 IBM-Rational产品的整体解决方案 11.5 Mercury Interactive产品的整体解决方案 11.6 Compuware产品的整体解决方案 12.l 测试队伍的地位和责任 12.2测试团队的构成 12.3如何从零开始 12.4测试团队的管理和发展 12.5优秀软件测试工程师必备素质 13.1 测试环境的重要性 13.2 测试环境的各要素 13.3 建立测试实验室 13.4 测试环境的维护和管理 14.1 测试用例概述 14.2 白盒测试用例设计方法 14.3 黑盒测试用例设计方法 14.4 测试用例的组织和跟踪 15.l 软件缺陷的描述 15.2 软件缺陷相关的信息 15.3 软件缺陷的处理和跟踪 16.1软件产品的质量度量 16.2评估系统测试的覆盖程度 16.3软件缺陷分析方法 16.4 基于缺陷分析的产品质量评估 16.5 测试报告及其模板 17.1软件测试项目管理的概述 17.2 软件测试项目的组织 17.3软件测试项目的过程管理 17.4软件测试项目的资源管理 17.5 测试项目的进度管理 17.6 测试项目的风险管理 17.7 测试项目的质量管理和配置管理 17.8 软件测试文档的管理 声明:该资源由网上搜索,如涉及版权,版主可自由删除。
1、什么是兼容性测试?兼容性测试侧重哪些方面? 5 2、我现在有个程序,发现在Windows上运行得很慢,怎么判别是程序存在问题还是硬件系统存在问题? 5 3、测试的策略有哪些? 5 4、正交表测试用例设计方法的特点是什么? 5 5、描述使用bugzilla缺陷管理工具对软件缺陷(BUG)跟踪的管理的流程? 5 6、你觉得bugzilla在使用的过程中,有什么问题? 5 7、描述测试用例设计的完整过程? 6 8、单元测试的策略有哪些? 6 9、LoadRunner分哪三部分? 6 10、LoadRunner进行测试的流程? 6 什么是并发?在lordrunner中,如何进行并发的测试?集合点失败了会怎么样? 6 12、使用QTP做功能测试,录制脚本的时候,要验证多个用户的登录情况/查询情况,如何操作? 6 13、QTP中的Action有什么作用?有几种? 6 14、TestDirector有些什么功能,如何对软件测试过程进行管理? 7 15、你所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性能测试……)? 7 16、条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录? 8 17、Beta测试与Alpha测试有什么区别? 8 18、软件的评审一般由哪些人参加?其目的是什么? 8 19、测试活动中,如果发现需求文档不完善或者不准确,怎么处理? 8 20、阶段评审与项目评审有什么区别? 8 21、阐述工作版本的定义? 8 22、什么是桩模块?什么是驱动模块? 8 23、什么是扇入?什么是扇出? 8 24、你认为做好测试计划工作的关键是什么? 8 25、你认为做好测试用例工作的关键是什么? 9 26、简述一下缺陷的生命周期? 9 27、软件的安全性应从哪几个方面去测试? 9 28、软件配置管理工作开展的情况和认识? 9 29、你觉得软件测试通过的标准应该是什么样的? 10 30、引入测试管理的含义? 10 31、一套完整的测试应该由哪些阶段组成? 10 32、单元测试的主要内容? 10 33、集成测试也叫组装测试或者联合测试,请简述集成测试的主要内容? 10 34、简述集成测试与系统测试关系? 10 35、软件测试的文档测试应当贯穿于软件生命周期的全过程,其中用户文档是文档测试的重点。那么软件系统的用户文档包括哪些? 10 36、软件系统中除用户文档之外,文档测试还应该关注哪些文档? 10 37、简述软件系统中用户文档的测试要点? 11 38、单元测试主要内容是什么? 11 39、如何理解强度测试? 13 40、如何理解压力、负载、性能测试测试? 13 41、什么是系统瓶颈? 13 42、文档测试主要包含什么内容? 13 43、功能测试用例需要详细到什么程度才是合格的? 14 44、配置和兼容性测试的区别是什么? 14 45、软件文档测试主要包含什么? 15 46、没有产品说明书和需求文档地情况下能够进行黑盒测试吗? 15 47、测试中的“杀虫剂怪事”是指什么? 15 48、在配置测试中,如何判断发现的缺陷是普通问题还是特定的配置问题? 15 49、为什么尽量不要让时间有富裕的员工去做一些测试? 16 50、完全测试程序是可能的吗? 16 51、软件测试的风险主要体现在哪里? 16 52、发现的缺陷越多,说明软件缺陷越多吗? 16 53、所有的软件缺陷都能修复吗?所有的软件缺陷都要修复吗? 17 54、软件测试人员就是QA吗? 17 55、如何减少测试人员跳槽带来的损失? 17 56、测试产品与测试项目的区别是什么? 17 57、和用户共同测试(UAT测试)的注意点有哪些? 18 58、如何编写提交给用户的测试报告? 18 59、测试工具在测试工作中是什么地位? 18 60、什么是软件测试软件测试的目的? 18 61、简述负载测试与压力测试的区别。 19 62、写出bug报告流转的步骤,每步的责任人及主要完成的工作。 19 63、写出bug报告当中一些必备的内容。 19 64、开发人员老是犯一些低级错误怎么解决? 20 65、画出软件测试的V模型图。 20 66、为什么要在一个团队中开展软件测试工作? 20 67、您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长哪部分工作? 20 68、您所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性能测试……) 20 69、您认为做好测试用例设计工作的关键是什么? 21 70、请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。 21 71、测试计划工作的目的是什么?测试计划工作的内容都包括什么?其中哪些是最重要的? 22 72、您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。 22 73、请以您以往的实际工作为例,详细的描述一次测试用例设计的完整的过程。 23 74、您以往是否曾经从事过性能测试工作?如果有,请尽可能的详细描述您以往的性能测试工作的完整过程。 23 75、你对测试最大的兴趣在哪里?为什么? 23 76、你以前工作时的测试流程是什么? 24 77、当开发人员说不是BUG时,你如何应付? 24 78、软件的构造号与版本号之间的区别?BVT(BuildVerificationTest) 24 79、您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录? 25 80、您以往所从事的软件测试工作中,是否使用了一些工具来进行软件缺陷(Bug)的管理?如果有,请结合该工具描述软件缺陷(Bug)跟踪管理的流程。 25 81、您认为性能测试工作的目的是什么?做好性能测试工作的关键是什么? 25 82、单元测试、集成测试、系统测试的侧重点是什么? 25 83、集成测试通常都有那些策略? 25 84、一个缺陷测试报告的组成 25 85、基于WEB信息管理系统测试时应考虑的因素有哪些? 25 86、软件测试项目从什么时候开始,?为什么? 26 87、需求测试注意事项有哪些? 26 88、简述一下缺陷的生命周期 26 89、你在你所在的公司是怎么开展测试工作的?是如何组织的? 26 90、你认为理想的测试流程是什么样子? 26 91、您在从事性能测试工作时,是否使用过一些测试工具?如果有,请试述该工具的工作原理,并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的。 26 92、软件测试活动的生命周期是什么? 26 93、请画出软件测试活动的流程图? 26 94、针对缺陷采取怎样管理措施? 26 95、什么是测试评估?测试评估的范围是什么? 26 96、如果能够执行完美的黑盒测试,还需要进行白盒测试吗?为什么? 26 97、测试结束的标准是什么? 26 98、软件验收测试除了alpha ,beta测试以外,还有哪一种? 26 99、做测试多久了?以前做过哪些项目?你们以前测试的流程是怎样的?用过哪些测试工具? 27 100、请就如何在开发中进行软件质量控制说说你的看法 27 101、一套完整的测试应该由哪些阶段组成?分别阐述一下各个阶段。 27 102、软件测试的类型有那些?分别比较这些不同的测试类型的区别与联系。 27 103、测试用例通常包括那些内容?着重阐述编制测试用例的具体做法 27 104、在分别测试winform的C/S结构测试WEB结构软件是,应该采取什么样的方法分别测试?他们存在什么样的区别与联系? 27 105、在测试winform的C/S结构软件时,发现这个软件的运行速度很慢,您会认为是什么原因?您会采取哪些方法去检查这个原因? 27 106、描述使用bugzilla缺陷管理工具对软件缺陷(BUG)跟踪的管理的流程 27 107、你都用什么测试方法 针对不同的产品或者系统或者模块,有不同的测试方法。总体而言有白盒测试和黑盒测试。 27 108、怎么编写案例 案例的编写与测试阶段的定义有很大的关系。系统测试和unit测试的案例可能不同。总体而言测试案例根据系统的需求而定。 27 109、怎么才能够全面的测试到每一个点 测试的全面性主要需要在设计测试计划的时候考虑,从测试策略,产品需求等等多个角度考虑从而定义全部的测试点。 27 110、谈谈软件测试技术,以及如何提高 27 111、谈谈软件测试职业发展,以及个人的打算 27 112、谈谈软件测试在企业的地位,也可以结合软件生命周期来谈 27 113、一般公司里实际的软件测试流程是什么样的?你们公司又是怎样的? 27 114、软件工程师要具有那些素质? 27 115、你会哪些测试工具?怎么操作? 27 116、你能不能说下你的3到5年的职业计划(规划) 27 117、你觉得你来应聘有那些优势? 27 其他问题:(有可能清晰的思路比确切的答案更重要) 27 开发及环境搭建类面试题 28 1、描述软件产生内存泄露的原因以及检查方式。(可以结合一种开发语言进行描述) 28 2、简述什么是值传递,什么是地址传递,两者区别是什么? 28 3、结构程序设计和面向对象程序设计各自的特点及优缺点是什么? 28 4、简述什么是存储过程和触发器? 28 5、使用C语言编写一个函数,用于交换两个变量的值(地址传递)。 29 6、请简述DNS、活动目录、域的概念。 29 7、描述TCP/IP协议的层次结构,以及每一层中重要协议。 29 8、简述子网掩码的用途。 29 9、说出4种以上常用的操作系统及其主要的应用范围(微的操作系统除外)。 29 10、在Linux系统中,一个文件的访问权限是755,其含义是什么? 29 11、Windows操作系统中PATH环境变量的作用是什么? 30 12、Ghost的主要用途和常用方法? 30 13、在RedHat中,从root用户切到userl用户,一般用什么命令? 30 14、Linux中,一般怎么隐藏文件? 30 15、如何将自己的本地磁盘(D)做成FTP供远端主机使用? 30 16、对RUP.CMM,CMMI,XP,PSP.TSP的认识? 30 17、DNS是什么,它是如何工作的? 31 18、防火墙如何保证安全的?主要有哪些? 31 19、目前流行的操作的系统有哪些?请举例说明安装操作系统的注意事项? 33 20、简述一下c/s模式或者b/s模式? 33 21、TCP/UDP有哪些区别? 34 22、ISO模型?HUB、tch、Router是ISO的第几层设备? 34 23、内存有哪几种存储组织结构.请分别加以说明? 34 人力资源面试题 34 1、你的测试职业发展是什么?你自认为做测试的优势在哪里? 34 2、你为什么想离开目前的职务? 34 3、你对我们公司了解有多少? 34 4、你找工作时,最重要的考虑因素为何? 34 5、为什么我们应该录取你? 34 6、请谈谈你个人的最大特色。 34 7、一个测试工程师应具备那些素质和技能? 35 8、您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?维持测试人员同开发团队中其他成员良好的人际关系的关键是什么? 35 9、在您以往的测试工作中,最让您感到不满意或者不堪回首的事情是什么?您是如何来对待这些事情的? 35 10、在即将完成这次笔试前,您是否愿意谈一些自己在以往的学习和工作中获得的工作经验和心得体会?(可以包括软件测试、过程改进、软件开发或者与此无关的其他方面) 35 11、为什么选择测试这行? 35 12、你的工作通常能在时限内完成吗.(我想问一下就是她问这个问题的动机是什么) 35 13、通常你对于别人批评你会有什么样的反应 35 14、如果明知这样做不对,你还会依主管的指过去做吗? 35 15、如果你接到一个客户抱怨的电话,你确知无法解决他的问题,你会怎么处理? 35 16、请就软件测试人员应该具备什么样的基本素质说说你的看法。 36 17、你在五年内的个人目标和职业目标分别是什么? 36 18、你怎样做出自己的职业选择? 36
软件测试方法和技术,共17章 1.1 软件的含义 1.2 软件开发过程的特性 1.3 软件测试的重要性 2.1 软件质量就是客户的满意度 2.2 软件缺陷(Bug)是什么 2.3 软件测试的基本方法 2.4 软件测试的分类和阶段 2.5 软件测试的工作范畴 3.1软件质量保证 3.2测试策略 3.3测试计划 3.4软件质量的可靠性评估 4.1 软件质量标准 4.2 软件测试相关规范 4.3 CMM思想和结构体系 4.4 建立软件测试管理和评判体系 5.1 什么是单元测试 5.2 单元测试的目标和任务 5.3 静态测试技术的运用 5.4 动态测试技术的运用 5.5 调试与评估 5.6 单元测试的过程与文档管理 5.7 单元测试的常用工具简介 6.1 系统集成的模式与方法 6.2 功能测试 6.3 系统测试 6.4 压力测试、容量测试和性能测试 6.5安全性测试,可靠性和容错性测试 7.1验收测试的过程和主要内容 7.2产品说明书的验证 7.4兼容性测试 7.5可安装性和可恢复性测试 7.6文档测试 7.7验收测试报告和用户验收测试 8.1 面向对象软件的特点 8.2面向对象测试的层次与数据流 8.3 面向对象的单元测试 8.4面向对象的集成测试 9.1 应用服务器的分类和特征 9.2 基于Web服务器应用的测试 9.3 基于数据库应用服务器的测试 9.4 基于J2EE平台的测试 9.5 其他应用服务器应用的测试 10.1什么是软件本地 10.2软件本地的翻译问题 10.3软件本地测试的技术问题 10.4本地测试的重点 11.1测试自动的内涵 11.2 测试工具的分类和选择 11.3 测试工具的主流产品介绍 11.4 IBM-Rational产品的整体解决方案 11.5 Mercury Interactive产品的整体解决方案 11.6 Compuware产品的整体解决方案 12.l 测试队伍的地位和责任 12.2测试团队的构成 12.3如何从零开始 12.4测试团队的管理和发展 12.5优秀软件测试工程师必备素质 13.1 测试环境的重要性 13.2 测试环境的各要素 13.3 建立测试实验室 13.4 测试环境的维护和管理 14.1 测试用例概述 14.2 白盒测试用例设计方法 14.3 黑盒测试用例设计方法 14.4 测试用例的组织和跟踪 15.l 软件缺陷的描述 15.2 软件缺陷相关的信息 15.3 软件缺陷的处理和跟踪 16.1软件产品的质量度量 16.2评估系统测试的覆盖程度 16.3软件缺陷分析方法 16.4 基于缺陷分析的产品质量评估 16.5 测试报告及其模板 17.1软件测试项目管理的概述 17.2 软件测试项目的组织 17.3软件测试项目的过程管理 17.4软件测试项目的资源管理 17.5 测试项目的进度管理 17.6 测试项目的风险管理 17.7 测试项目的质量管理和配置管理 17.8 软件测试文档的管理
1 第1章 软件及其开发过程 1.1 软件的含义 1.2 软件开发过程的特性 1.3 软件测试的重要性 2 2 第2章 软件测试的基本概念和方法 2.1 软件质量就是客户的满意度 2.2 软件缺陷(Bug)是什么 2.3 软件测试的基本方法 2.4 软件测试的分类和阶段 2.5 软件测试的工作范畴 4 3 第3章 质量保证与测试策略 3.1软件质量保证 3.2测试策略 3.3测试计划 3.4软件质量的可靠性评估 3 3 第4章 软件测试依据和规范 4.1 软件质量标准 4.2 软件测试相关规范 4.3 CMM思想和结构体系 4.4 建立软件测试管理和评判体系 2 4 第5章 单元测试 5.1 什么是单元测试 5.2 单元测试的目标和任务 5.3 静态测试技术的运用 5.4 动态测试技术的运用 5.5 调试与评估 5.6 单元测试的过程与文档管理 5.7 单元测试的常用工具简介 4 5 第6章 集成测试和系统测试 6.1 系统集成的模式与方法 6.2 功能测试 6.3 系统测试 6.4 压力测试、容量测试和性能测试 6.5安全性测试,可靠性和容错性测试 5 6 第7章 验收测试 7.1验收测试的过程和主要内容 7.2产品说明书的验证 7.4兼容性测试 7.5可安装性和可恢复性测试 7.6文档测试 7.7验收测试报告和用户验收测试 2 7 第8章 面向对象软件测试 8.1 面向对象软件的特点 8.2面向对象测试的层次与数据流 8.3 面向对象的单元测试 8.4面向对象的集成测试 4 8 第9章 应用服务器的测试 9.1 应用服务器的分类和特征 9.2 基于Web服务器应用的测试 9.3 基于数据库应用服务器的测试 9.4 基于J2EE平台的测试 9.5 其他应用服务器应用的测试 4 9 第10章 软件本地测试 10.1什么是软件本地 10.2软件本地的翻译问题 10.3软件本地测试的技术问题 10.4本地测试的重点 2 10 第11章 软件测试自动 11.1测试自动的内涵 11.2 测试工具的分类和选择 11.3 测试工具的主流产品介绍 11.4 IBM-Rational产品的整体解决方案 11.5 Mercury Interactive产品的整体解决方案 11.6 Compuware产品的整体解决方案 6 11 第12章 组建测试队伍 12.l 测试队伍的地位和责任 12.2测试团队的构成 12.3如何从零开始 12.4测试团队的管理和发展 12.5优秀软件测试工程师必备素质 2 11 第13章 测试环境的建立 13.1 测试环境的重要性 13.2 测试环境的各要素 13.3 建立测试实验室 13.4 测试环境的维护和管理 2 12 第14章 软件测试用例的设计 14.1 测试用例概述 14.2 白盒测试用例设计方法 14.3 黑盒测试用例设计方法 14.4 测试用例的组织和跟踪 3 13 第15章 报告所发现的软件缺陷 15.l 软件缺陷的描述 15.2 软件缺陷相关的信息 15.3 软件缺陷的处理和跟踪 2 14 第16章 测试软件质量分析报告 16.1软件产品的质量度量 16.2评估系统测试的覆盖程度 16.3软件缺陷分析方法 16.4 基于缺陷分析的产品质量评估 16.5 测试报告及其模板 4 15 -16 第17章 软件测试项目管理 17.1软件测试项目管理的概述 17.2 软件测试项目的组织 17.3软件测试项目的过程管理 17.4软件测试项目的资源管理 17.5 测试项目的进度管理 17.6 测试项目的风险管理 17.7 测试项目的质量管理和配置管理 17.8 软件测试文档的管理 6
### 回答1: 硬件工程师需要掌握以下技能: 1. 电子学基础知识,包括电路分析、数字电子学、模拟电子学等。 2. 计算机组成原理,包括计算机体系结构、操作系统、网络技术等。 3. 半导体器件与封装技术,包括晶体管、整流器、存储器等。 4. 电路设计与仿真工具,包括 Altium Designer、Proteus、LTspice 等。 5. 电路板设计和制造技术,包括 PCB 设计、制造过程、焊接技术等。 6. 驱动开发,包括设备驱动程序、固件开发等。 7. 嵌入式系统开发,包括单片机开发、嵌入式 Linux 开发等。 8. 测试与调试技巧,包括硬件测试软件测试、调试工具等。 这些技能需要不断努力学习和实践,才能成为一名出色的硬件工程师。 ### 回答2: 作为一名硬件工程师,需要掌握以下几个关键的技能和能力。首先,硬件工程师需要具备扎实的电子电路设计知识,包括了解各种电子元器件的特性和功能,以及掌握各种电路的设计原理和布局技巧。此外,掌握硬件设计工具和软件的使用也是必不可少的,比如自动设计软件(CAD)、印刷电路板(PCB)设计软件等。 同时,硬件工程师还需具备良好的逻辑思维和解决问题的能力。在进行硬件设计过程中,可能会遇到各种各样的技术难题和故障,因此需要能够分析和解决这些问题,并具备较强的自主学习和独立工作的能力。 与此同时,了解各种电子通信协议和标准也是硬件工程师必备技能之一。比如了解串行通信接口(如USB、UART等)、网络通信协议(如TCP/IP、Ethernet等)以及各种传感器接口等等。 此外,硬件工程师还需要掌握一些基本的嵌入式系统开发知识,包括了解微处理器和微控制器的原理和应用、学习使用各种嵌入式编程语言(如C、C++等)、掌握各种开发工具和调试技巧等等。 最后,为了跟上不断变的技术发展,硬件工程师需保持持续学习的态度,关注最新的技术动态和领域研究成果,不断提升自己的专业知识和技能。这意味着需要学习新的电子元器件、新的电路设计原理、新的通信协议等等。 总的来说,硬件工程师需要具备扎实的电子电路设计知识、良好的逻辑思维和问题解决能力、熟悉各种通信协议和标准、嵌入式系统开发知识以及持续学习的意识。这些技能将帮助硬件工程师在各种项目和领域中取得成功。 ### 回答3: 作为一名硬件工程师,需要学习以下几个主要的本领: 1. 电子工程基础知识:硬件工程师需要对电路原理和电子元件有深入的理解。他们需要了解电流、电压、阻抗、功率等基础电子概念,并能够设计和分析复杂的电路和电子系统。 2. PCB设计和布局:硬件工程师需要学习专业的PCB(Printed Circuit Board)设计软件,掌握如何通过将电子元件布局在电路板上来实现电路设计。他们需要了解信号完整性、电磁兼容性、线路长度匹配等方面的知识。 3. 硬件描述语言:硬件工程师需要学习一种或多种硬件描述语言,如VHDL(VHSIC Hardware Description Language)或Verilog。这些语言用于描述硬件系统的结构和行为,使工程师能够进行逻辑设计、仿真和验证。 4. 微处理器和嵌入式系统:硬件工程师应了解各种微处理器架构,并能够在设计中使用它们。他们需要学习如何编程和调试嵌入式系统,以及如何与外部设备进行通信。 5. 产品可靠性和测试方法:硬件工程师需要掌握产品可靠性和测试方法。他们应了解如何评估硬件系统的寿命和稳定性,并能够开发并执行适当的测试以确保产品的质量和性能。 此外,作为一名硬件工程师,还需要具备团队合作、沟通技巧和问题解决能力。因为硬件工程常常需要与团队中的其他人员(如软件工程师、项目经理等)合作,并且需要能够在面对问题和挑战时找到创造性的解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值