zoukankan      html  css  js  c++  java
  • 测试知识——测试开发基本面试知识

    1.对测试开发的理解

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

    而且,现在不仅仅是通过手工测试来发现定位Bug,也会通过编写脚本、测试工具来完成自动化测试,因此,对于测试开发人员来说,他除了保证产品质量之外,还要编写脚本以及开发测试工具。这就是我对测试开发的一点理解。

    2.为什么做测试而不是去做开发

    首先,在近几年,国内对软件测试越来越重视,测试的前景是非常好的。

    其次,测试在一个项目开发的过程中是非常重要的一环。开发人员很难在开发的时候又要全面兼顾产品的质量,测试人员就是项目内部的最后把关者,最大程度的保证项目上线不会出现问题。责任非常大,责任越大成就感就越大。我很喜欢这样的工作。

    在网上看到一句话,说:写程序的人就像在造没有护栏的桥,自己去走那肯定安全无虞,那怕摸黑也不至于掉河里去;测试则像给桥修护栏的,让桥的普通使用者也能像开发那样来去自如。从这一点上说,可以体现出测试的重要性。

    3.如何处理矛盾

    我觉得做测试和程序员发生冲突是难免的,人与人之间在一起生活,难免会发生冲突。发生冲突不能用争吵解决,要坦诚相待,心平气和地与对方沟通,善于倾听对方的观点,并理解对方,然后向对方阐述自己的观点。。如果还是产生差异,我会请示上级。

    4.职业发展

    对于这一行来说,经验越多,能力就越高。前几年先积累经验,不断地更新自己、改正自己,然后一步一步朝着高级测试开发工程师走去。

    5.你认为测试人员需要具备哪些素质。(你有哪些优点围绕这些来说)

    良好的测试基础理论;首先要有一定的沟通协调能力,因为测试人员经常会与开发人员接触处理一些问题,需要心平气和地沟通。还需要有一定的耐心,不能放过每一个错误;要有责任感,要尽自己最大的能力,保证产品的质量。要有好奇心,保持一种怀疑的态度,测试人员的任务是找出缺陷,不是证明没有缺陷,所以需要保持怀疑。要细心;乐观;

    6.你为什么能够胜任这个岗位

    因为之前的实习是开发,接触的测试比较少,所以我的测试技术不是很成熟,但是开发能力得到了锻炼,而且是我相信自己的学习能力,可以快速上手,在入职之前会多学学,能更快的适应岗位。而且我还有良好的沟通能力,很有耐心,有责任感,我觉得这在测试中也是很重要的一些素质。

    7.测试方法

    测试用例是一组测试输入、执行条件和预期结果的集合。

    软件测试一般分为黑盒测试和白盒测试。

    黑盒测试

    黑盒测试(black-box testing),测试应用程序的功能,而不是其内部结构或运作,将内部结构看成一个黑盒子。测试者只需知道什么是系统应该做的事,即当键入一个特定的输入,可得到一定的输出。测试者选择有效输入和无效输入来验证是否正确的输出。比如一个功能实现的测试。

    此测试方法可适合大部分的软件测试,例如集成测试(integration testing)以及系统测试(system testing)。

    黑盒测试主要设计方法:边界值分析法,等价类划分法、因果图法,错误推测法、流程分析法等

    优点:容易实施,不需要关注内部实现;贴近用户需求。

    缺点:覆盖率比较低,因为不知道内部逻辑

    白盒测试

    白盒测试,测试应用程序的内部结构或运作,而不是测试应用程序的功能(即黑箱测试)。在白盒测试时,以编程语言的角度来设计测试案例。测试者输入数据验证数据流在程序中的流动路径,并确定适当的输出,类似测试电路中的节点。

    白箱测试可以应用于单元测试(unit testing)、集成测试(integration testing)和系统的软件测试流程,可测试在集成过程中每一单元之间的路径,或者主系统跟子系统中的测试。尽管这种测试的方法可以发现许多的错误或问题,它可能无法检测未使用部分的规范。

    优点:可以检测代码的每条分支和路径;可以揭示隐藏在代码中的错误;对代码的测试比较彻底。

    缺点:耗费比较大;不能检测到代码中遗漏的逻辑;不能直接验证需求的正确性

    主要测试方法:代码检测法,逻辑覆盖法,基本路径测试法,静态结构分析法等;

    8.测试的阶段

    测试应该尽早进行。越早就可以花越少的消耗得到越大的回报。

    单元测试(如J unit)

    单元测试是对软件组成单元进行测试,其目的是检验软件基本组成单位的正确性,测试的对象是软件设计的最小单位:函数、或者类。

    项目中的测试类就是测试接口类的,属于单元测试,一般由开发人员测试。

    集成测试

    集成测试也称综合测试、组装测试、联合测试,将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。其主要目的是检查软件单位之间的接口是否正确,集成测试的对象是已经经过单元测试的模块。

    系统测试

    系统测试是对整个系统的测试,将硬件、软件、操作人员看作一个整体,检验它是否有不符合系统说明书的地方,主要包括功能测试、界面测试、可靠性测试、易用性测试、性能测试。 功能测试主要针对包括功能可用性、功能实现程度(功能流程&业务流程、数据处理&业务数据处理)方面测试。在集成测试之后。

    验收测试 
    也称交付测试,是针对用户需求、业务流程进行的正式的测试,以确定系统是否满足验收标准,由用户、客户或其他授权机构决定是否接受系统。

    验收测试包括alpha测试和beta测试,alpha测试是由开发者进行的软件测试,beta测试是由用户在脱离开发环境下进行的软件测试。

    单元测试(Unit Testing)
    
    单元测试是对软件组成单元进行测试。其目的是检验软件基本组成单位的正确性。测试的对象是软件设计的最小单位:模块。Findyou又称为模块测试
    
    测试阶段:编码后
    
    测试对象:最小模块
    
    测试人员:白盒测试工程师或开发工程师
    
    测试依据:代码和注释+详细设计文档
    
    测试方法:白盒测试
    
    测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试
    
     
    
    √ 集成测试(Integration Testing)
    
    集成测试也称联合测试、组装测试,将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。阿旺主要目的是检查软件单位之间的接口是否正确。
    
    测试阶段:一般单元测试之后进行
    
    测试对象:模块间的接口
    
    测试人员:白盒测试工程师或开发工程师
    
    测试依据:单元测试的模块+概要设计文档
    
    测试方法:黑盒测试与白盒测试相结合
    
    测试内容:模块之间数据传输、模块之间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系统的影响
    
     
    
    √ 系统测试(System Testing)
    
    将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试。时间大部分在系统测试执行阶段
    
    测试阶段:集成测试通过之后
    
    测试对象:整个系统(软、硬件)
    
    测试人员:黑盒测试工程师
    
    测试依据:需求规格说明文档
    
    测试方法:黑盒测试
    
    测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性等
    
     
    
    √ 验收测试(Acceptance Testing)
    
    验收测试是部署软件之前的最后一个测试操作。它是技术测试的最后一个阶段,也称为交付测试。阿旺总结验收测试的目的是确保软件准备就绪,按照项目合同、任务书、双方约定的验收依据文档,向软件购买都展示该软件系统满足原始需求。
    
    测试阶段:系统测试通过之后
    
    测试对象:整个系统(包括软硬件)。
    
    测试人员:主要是最终用户或者需求方。
    
    测试依据:用户需求、验收标准
    
    测试方法:黑盒测试
    
    测试内容:同系统测试(功能...各类文档等)
    

    集成测试和系统测试之间的比较: 
    1、测试内容:集成测试是测试各个单元模块之间的接口,系统测试是测试整个系统的功能和性能; 
    2、测试角度:集成测试偏重于技术的角度进行测试,系统测试是偏重于业务的角度进行测试。

    9.测试的类型

    功能测试:关注功能正常(包含兼容性测试),除了下面分类都测;
    性能测试:关注(比如前端性能、后端性能);
    安全测试:关注传输、存储等安全;
    特性测试:特性指平台差异(即部分兼容性测试),如PC端鼠标,键盘操作特性(Tab键等);如手机触屏操作,横竖屏,中断恢复(来电)等
     
    对个人很适用,喜欢 转自:https://www.cnblogs.com/xiaolovewei/p/9516989.html
    爱生活,更爱给我带来生活的人
  • 相关阅读:
    Python Day 24 类属性与对象属性、初始化方法init、绑定方法与非绑定方法、OOP三大特性之继承、抽象与继承、存在继承关系后的属性查找、派生与覆盖、子类中重用父类的方法
    Python Day 23 xml模块 、面向对象
    Python Day 22 configparser模块、subprocess模块、xlrd模块、xlwt模块
    LeetCode 两个数之和
    python ATM + 购物车
    python Day 19 random、json、pickle、hashlib、hmac、shutil、shelve
    Python Day 18 time模块、datetime模块、os模块、os.path模块
    解释型语言和编译型语言的区别
    GCC和G++区别
    安装python+setuptools+pip+nltk
  • 原文地址:https://www.cnblogs.com/chenyq/p/12213685.html
Copyright © 2011-2022 走看看