笔试、面试遇到的问题

面试:

1、为什么想从事软件测试这个职业

     有师兄师姐在从事这个行业,所以对软件测试有一定了解;比较感兴趣,觉得自己比较适合做软件测试,通过自己的工作,能使软件产品越来越完善,感觉这是一个有挑战性的工作;测试是一个经验行业,工作越久越能感觉到做好测试的难度和乐趣

 2、对软件测试了解多少?

       知道哪些测试方法?测试策略  ?

    1、按是否查看程序内部结构分为:
  (1)黑盒测试(black-box testing):只关心输入和输出的结果
  (2)白盒测试(white-box testing):去研究里面的源代码和程序结构
   2、按是否运行程序分为:
  (1)静态测试(static testing):是指不实际运行被测软件,而只是静态地检查程序代码、界面或文档可能存在的错误的过程。
   静态测试包括:
   对于代码测试,主要是测试代码是否符合相应的标准和规范。
   对于界面测试,主要测试软件的实际界面与需求中的说明是否相符。
   对于文档测试,主要测试用户手册和需求说明是否真正符合用户的实际需求。
  (5)动态测试(dynamic testing),是指实际运行被测程序,输入相应的测试数据,检查输出结果和预期结果是否相符的过程
   3、按阶段划分:
  (1)单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。
   桩模块(stud)是指模拟被测模块所调用的模块,驱动模块(driver)是指模拟被测模块的上级模块,驱动模块用来接收测试数         据,启动被测模块并输出结果。
   (2)集成测试(integration testing),是单元测试的下一阶段,是指将通过测试的单元模块组装成系统或子系统,再进行测     试,重点测试不同模块的接口部门。
    集成测试就是用来检查各个单元模块结合到一起能否协同配合,正常运行。
   (3)系统测试(system testing),指的是将整个软件系统看做一个整体进行测试,包括对功能、性能,以及软件所运行的软硬  件环境进行测试。
    系统测试的主要依据是《系统需求规格说明书》文档。
    (4)验收测试(acceptance testing),指的是在系统测试的后期,以用户测试为主,或有测试人员等质量保障人员共同参与的测试,它也是软件正式交给用户使用的最后一道工序。
验收测试又分为a测试和beta测试,其中a测试指的是由用户、 测试人员、开发人员等共同参与的内部测试,而beta测试指的是内测后的公测,即完全交给最终用户测试。
     4、黑盒测试分为功能测试和性能测试:
     1)功能测试(function testing),是黑盒测试的一方面,它检查实际软件的功能是否符合用户的需求。
     包括逻辑功能测试(logic function testing)
     界面测试(UI testing)UI=User Interface
     易用性测试(usability testing):是指从软件使用的合理性和方便性等角度对软件系统进行检查,来发现软件中不方便用户使  用的地方。
    兼容性测试(compatibility testing):包括硬件兼容性测试和软件兼容性测试
    2)性能测试(performance testing)
    软件的性能主要有时间性能和空间性能两种
    时间性能:主要指软件的一个具体事务的响应时间(respond time)。
    空间性能:主要指软件运行时所消耗的系统资源。
   软件性能测试分为:
     一般性能测试:指的是让被测系统在正常的软硬件环境下运行,不向其施加任何压力的性能测试。
     稳定性测试也叫可靠性测试(reliability testing):是指连续运行被测系统检查系统运行时的稳定程度。
     负载测试(load testing):是指让被测系统在其能忍受的压力的极限范围之内连续运行,来测试系统的稳定性。
     压力测试(stress testing):是指持续不断的给被测系统增加压力,直到将被测系统压垮为止,用来测试系统所能承受的最大压  力。(Validate the system or software can allowed the biggest stress.)
       5、其他测试类型:
回归测试(regression testing)是指对软件的新的版本测试时,重复执行上一个版本测试时的用例。(When a new build or release is deployed, repeat all the test cases which has executed in the last build or release.)
冒烟测试(smoke testing),是指在对一个新版本进行大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。(validate the major function is deployed or not in software of system when a new build or release is implement.)
随机测试(random testing),是指测试中所有的输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。(means or all the test data is random, to validate the some edge bugs.)


3、介绍一下测试流程,觉得哪一个环节最重要?

测试流程依次如下:
 1.需求分析:阅读需求,理解需求,与客户、开发、架构多方交流,深入了解需求。--testing team 主要包括:需求分析包括软件功能需求分析、测试环境需求分析、测试资源需求分析等
2.测试计划: 根据需求估算测试所需资源(人力、设备等)、所需时间、功能点划分、如何合理分配安排资源等。---testing leader or testing manager 测试计划的依据主要是项目开发计划和测试需求分析结果而制定,1. 测试背景,2测试依据,3测试资源,4、测试策略,5、测试日程
3.用例设计:根据测试计划、任务分配、功能点划分,设计合理的测试用例。---testing leader, senior tester 测试设计测试设计主要包括测试用例编写和测试场景设计两方面,测试场景设计主要也就是测试环境问题了
4.执行测试:根据测试用例的详细步骤,执行测试用例。--every tester(主要是初级测试人员) 测试执行过程又可以分为以下阶段:单元测试集成测试系统测试→出厂测试,其中每个阶段还有回归测试等。
5.执行结果记录和bug记录:对每个case记录测试的结果,有bug的在测试管理工具中编写bug记录。--every tester(主要是初级测试人员)
6.defect tracking:追踪leader分配给你追踪的bug.直到 bug fixed。--every tester 
7.测试报告:通过不断测试、追踪,直到被测软件达到测试需求要求,并没有重大bug.
8.用户体验、软件发布等……

大笑什么是软件测试?

在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

软件测试的目的:

  • 测试是程序的执行过程,目的在于发现错误
  • 一个成功的测试用例在于发现至今未发现的错误
  • 一个成功的测试是发现了至今未发现的错误的测试
  • 确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明。
  • 确保产品满足性能和效率的要求
  • 确保产品是健壮的和适应用户环境的

  微笑 软件的生命周期?

生命周期阶段:

  • 软件计划与可行性分析
  • 需求分析
  • 软件设计
  • 编码
  • 软件测试
  • 运行与维护

4、了解缺陷管理工具吗?

缺陷管理工具有(说白了这就是用来记录bug的,程序员与测试员之间通过这个来修复bug):
 1.Bugzilla
1.QC
2.TD
3.TESTLINK
4.bugfree
5.Jira

5、自动化测试了解多少?自动化测试工具


功能测试工具 QTP  selenium(开源)winrunner                  

 性能测试工具 LR(loadrunner) ,JEMETER    


6、对淘宝的输入框进行测试,该怎么考虑?

7、测试用例包含哪些部分?

8、自己检查出来BUG,开发人员觉得不是BUG不愿意修改,该怎么做?

    8.1 微笑首先,将问题提交到缺陷管理库里面进行备案。

     然后,要获取判断的依据和标准:

  • 根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据;
  • 如果没有文档依据,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷;
  • 根据用户的一般使用习惯,来确认是否是缺陷;
  • 与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷;

合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不参杂个人情绪。

等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并有上级做出决定。

    8.2

    开发人员说不是bug,有2种情况,一是需求没有确定,所以我可以这么做,这个时候可以找来产品经理进行确认,需不需要改动,3方商量确定好后再看要不要改。二是这种情况不可能发生,所以不需要修改,这个时候,我可以先尽可能的说出是BUG的依据是什么?如果被用户发现或出了问题,会有什么不良结果?程序员可能会给你很多理由,你可以对他的解释进行反驳。如果还是不行,那我可以给这个问题提出来,跟开发经理和测试经理进行确认,如果要修改就改,如果不要修改就不改。其实有些真的不是bug,我也只是建议的方式写进TD中,如果开发人员不修改也没有大问题。如果确定是bug的话,一定要坚持自己的立场,让问题得到最后的确认。

 


9、数据库SQL语言

10、软件测试人员最重要的职业素养是什么?

1、责任心2、沟通能力3、团队合作精神4、耐心、细心、信心5、时时保持怀疑态度,并且有缺陷预防的意识6、具备一定的编程经验

11、对于自己职业生涯的规划,将来是想做自动化测试还是转管理?

20161103

    自我介绍好好弄:


12、厂商给你一支笔,请问怎么测试?测试中发现笔的尺寸不合理,向厂商反映,得到回复是就是这么设计的,该怎么做?

13、研究生阶段让你最自豪的一件事?

14、你的优点是什么?

有韧性、有耐心、做事有条理性、喜欢面对挑战、有信心做好每一件事情、较强的沟通能力、从以前的经理处都得到了很好的评价表明我做的很好

谈谈你的缺点?

15、平时有什么爱好?

16、导师眼中的你是什么样的?

17、介绍自己的项目?是如何用matlab进行项目的?

18、为什么不做开发而是做测试?

19、看我做过计算机网络兼职教师,问:tcp报文头有几位,IP报文有几位,三次握手/四次挥手过程?说出应用层有哪些协议?

20、到新环境如何适应?

首先熟悉公司的各项规章制度,这个无论什么性质的工作都是必须的,不赘述。针对测试工作需要做以下工作:
一、熟悉所要测试的产品,主要指业务方面,无论此类型的产品以前是否熟悉,总是有些不同,从老员工那里得到一些知识沉淀,结合产品本身进行业务方面的熟悉。此处有一个问题,如果产品本身需要一些环境搭建,需先把环境搭建好,环境搭建的沉淀公司一般会有。
二、了解公司所需要用到的各类型测试工具,比如bug管理工具、 配置管理工具、流程管理工具、 数据库、自动化工具、性能工具,不管是否你负责的范围内,至少需要知道公司目前在使用这些工具。而一般bug管理、流程管理、配置管理不管是哪类型测试人员都会用到,是必备的。你已经熟悉的则更好,安装即可,不熟悉的,安装起来后对常用工具进行熟悉。
三、了解系统架构,从系统框架方面了解产品,举个简单的例子:之前的一份工作会将系统分成多个应用,各个应用之间有一些调用关系,此处了解系统架构,最好是可以从这个角度了解系统,可以从相应的开发那里得到一些关于系统架构的沉淀。很多测试组也会有这类沉淀。
四、了解产品所涉及的表结构,在熟悉了业务的基础上进一步深入到表结构层次进行 学习,数据流转在测试过程中起到非常重要的作用。无论是oracle也好mysql也好,都是万变不离其宗的。
五、如果已经对以上都有所眉目了,不再看起来一头雾水了,可以看下你所要测试的产品在这之前出现过的bug,了解下之前的问题都出现在哪里?思考下以后你的测试思路,此处也是非常重要的一步,一般可能会比较少人去关注。
六、对产品的开发语言最好可以学习起来,有基础当然更好,没有基础至少先把基础学起来!

21、参加了很多竞赛并获奖,在学习时间紧张的情况下,是怎么做到的?

22、测试职业发展目标?

测试经验越多,测试能力越高。所以我的职业发展是需要时间累积的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年累积测试经验,不断的更新自己改正自己,做好测试任务。

笔试:

1、浏览器突然不能访问百度,会是什么原因,该怎么解决?

2、没有网络了,会是什么原因?

3、为一个杯子设计测试用例

功能度:用水杯装水看漏不漏;水能不能被喝到

安全性:杯子有没有毒或细菌

可靠性:杯子从不同高度落下的损坏程度

可移植性:杯子在不同的地方、温度等环境下是否都可以正常使用

兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等

易用性:杯子是否烫手、是否有防滑措施、是否方便饮用

用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述

疲劳测试:将杯子盛上水(案例一)放24小时检查泄漏时间和情况;盛上汽油(案例二)放24小时检查泄漏时间和情况等

压力测试:用根针并在针上面不断加重量,看压强多大时会穿透



4、介绍tcp/udp,以及他们的区别?




某大神对软件测试流程理解:

需求分析需求分析(Requirment Analyzing)应该说是软件测试的一个重要环节,测试开发人员对这一环节的理解程度如何将直接影响到接下来有关测试工作的开展。可能有些人认为测试需求分析无关紧要,这种想法是很不对的。需求分析不但重要,而且至关重要!一般而言,需求分析包括软件功能需求分析、测试环境需求分析、测试资源需求分析等。其中最基本的是软件功能需求分析,测一款软件首先要知道软件能实现哪些功能以及是怎样实现的。比如一款Smartphone包括VoIP、Wi-Fi以及Bluetooth等功能。那我们就应该知道软件是怎样来实现这些功能的,为了实现这些功能需要哪些测试设备以及如何搭建相应测试环境等,否则测试就无从谈起!既然谈了需求分析,那么我们根据什么来分析呢?总不能凭空设想吧。总得说来,做测试需求分析的依据有软件需求文档、软件规格书以及开发人员的设计文档等,相信管理一些规范的公司在软件开发过程中都有这些文档。测试计划 测试计划(Test Plan)一般由测试负责人来编写。 测试计划的依据主要是项目开发计划和测试需求分析结果而制定。测试计划一般包括以下一些方面:1. 测试背景a. 软件项目介绍;b. 项目涉及人员(如软硬件项目负责人等)介绍以及相应联系方式等。2. 测试依据a. 软件需求文档;b. 软件规格书;c. 软件设计文档;d. 其他,如参考产品等。3. 测试资源a. 测试设备需求;b. 测试人员需求;c. 测试环境需求;d. 其他。4. 测试策略a. 采取测试方法;b. 搭建哪些测试环境;c. 采取哪些测试工具以测试管理工具;d. 对测试人员进行培训等。5. 测试日程a. 测试需求分析;b. 测试用例编写;c. 测试实施,根据项目计划,测试分成哪些测试阶段(如单元测试集成测试系统测试阶段,α、β测试阶段等),每个阶段的工作重点以及投入资源等。6. 其他。测试计划还要包括测试计划编写的日期、作者等信息,计划越详细越好了。计划赶不上变化,一份计划做的再好,当实际实施的时候就会发现往往很难按照原有计划开展。如在软件开发过程中资源匮乏、人员流动等都会对测试造成一定的影响。所以,这些就要求测试负责人能够从宏观上来调控了。在变化面前能够做到应对自如、处乱不惊那是最好不过了。测试设计测试设计主要包括测试用例编写和测试场景设计两方面。一份好的测试用例对测试有很好的指导作用,能够发现很多软件问题。关于测试用例编写,请参见前面写的《也谈测试用例》一文,里面有详细阐述。测试场景设计主要也就是测试环境问题了。测试环境搭建不同软件产品对测试环境有着不同的要求。如C/S及B/S架构相关的软件产品,那么对不同操作系统,如Windows系列、unix、linux甚至苹果OS等,这些测试环境都是必须的。而对于一些嵌入式软件,如手机软件,如果我们想测试一下有关功能模块的耗电情况,手机待机时间等,那么我们可能就需要搭建相应的电流测试环境了。当然测试中对于如手机网络等环境都有所要求。测试环境很重要,符合要求的测试环境能够帮助我们准确的测出软件问题,并且做出正确的判断。为了测试一款软件,我们可能根据不同的需求点要使用很多不同的测试环境。有些测试环境我们是可以搭建的,有些环境我们无法搭建或者搭建成本很高。不管如何,我们的目标是测试软件问题,保证软件质量。测试环境问题,还是根据具体产品以及开发者的实际情况而采取最经济的方式吧。测试执行  测试执行过程又可以分为以下阶段:单元测试集成测试系统测试→出厂测试,其中每个阶段还有回归测试等。从测试的角度而言,测试执行包括一个量和度的问题。也就是测试范围和测试程度的问题。 比如一个版本需要测试哪些方面?每个方面要测试到什么程度?从管理的角度而言,在有限的时间内,在人员有限甚至短缺的情况下,要考虑如何分工,如何合理地利用资源来开展测试。当然还要考虑以下问题:1. 当测试人员测试的执行不到位、敷衍了事时该如何解决?2. 测试效率问题,怎样提高测试效率?3. 根据版本的不同特点是只做验证测试还是采取冒烟测试亦或是系统全面测试?4. 当测试过程中遇到一些偶然性随机问题该怎样处理?5. 当版本中出现很多新问题时该怎样对待?测试停止标准?6. ……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值