zoukankan      html  css  js  c++  java
  • 面试宝典(一)——测试基础知识

    从今天开始做面试经验总结,有的是网上看到的,有的是根据工作总结出来的,还有的是从四面八方搜集到的资源,总之,希望对你们有所帮助~

     

    1、简要描述测试流程、开发流程

    (1)测试流程:了解用户需求-->参考需求规格说明书-->测试计划(人力物力时间进度的安排)-->编写测试用力-->测试用例评审-->搭建测试环境-->测试包安排预测(也就是冒烟测试)-->正式测试-->bug周期过程-->测试结束,编写测试总结报告-->版本上线-->面向用户使用

     

    (2)开发流程:了解用户需求-->进行需求分析-->知道功能组成以及软件设计结构-->开发设计计划-->概要设计-->详细设计-->进行软件编码-->单元测试-->代码审查-->打包提交给测试-->测试提交bug-->更新修复bug-->bug再由测试人员进行测试-->直到bug被解决-->版本上线-->面向用户使用

     

    2、什么是软件测试?软件测试的目的?

    软件测试是使用人工或自动化手段来运行或者测定某个系统的过程。

    其目的是在于检验它是否能满足规定的需求或是弄清楚预期结果与实际结果之间的差别。

     

    3、测试结束的标准是什么?

    从项目周期看:

    (1)超出了所分配的测试时间;

    (2)用尽了分配的测试资源;

    (3)到达了某一个固定的里程碑;

     

    从测试角度看:

    (1)测试需求覆盖率;

    (2)测试代码覆盖率;

    (3)测试用例度量;

    (4)缺陷检查度量;

     

    4、什么是bug?简要描述通常情况下如何划分bug?

    (1)bug:在电脑系统或者程序中隐藏着的一些未被发现的缺陷或者问题

    (2)可分为以下几种:

    严重缺陷(一级):不能正常工作的功能或者重要功能,使系统崩溃或者资源严重不足;

    较严重缺陷(二级):严重的影响系统要求或基本功能的实现,且没有办法更正;

    一般性缺陷(三级):严重的影响系统要求或基本功能的实现,但存在合理的更正办法;

    较小缺陷(四级):使操作者不方便或者遇到麻烦,但它并不影响执行工作或功能的实现;

    其他缺陷(五级):建议或其他错误;

     

    5、请问使用过哪种缺陷管理系统?简单描述一个bug在系统中的生命周期

    (1)QC

    (2)流转过程:

    a、测试人员提交bug,状态为submit,assign to的值设置为审核人(一般是项目经理);

    b、缺陷审核人审核bug,如果确认是bug就assign to对应的开发人员,状态设置为open,如果不是bug就添加注释说明原因,状态设置为refused;

    c、开发人员查询assign to自己且状态是open和reopen的bug,如果不是错误就需要添加注释说明原因,状态改为refused,并将assign to这个字段的值设置为项目负责人;如果是bug就修复,修复以后状态改为fixed;如果不是需要自己处理的,就保留状态为open,转发给其他人员进行处理,同时需要将assign to的值改为对接的人员;

    d、测试人员查询assign to自己且状态是fixed的bug,对已经修复好的bug进行验证,如果验证没有问题就对缺陷进行关闭,状态改为closed,把这个缺陷assign to缺陷审核人;如果没有解决就将缺陷的状态改为reopen,将缺陷assign to对应的开发人员进行再次修复;

    e、审核人将对状态是reopen的bug进行指派,assign to对应的开发人员;

    f、项目负责人针对开发转来的有异议的bug进行审核,确认是需要继续修复还是拒绝还是等着后续再处理,做相应的状态处理,如果是继续修复的话就需要重新assign to开发人员,如果是拒绝或者是挂着的话就不需要进行分配了;

     

    6、请你谈谈如何提高自己的测试效率?如何发现bug?

    提高效率:

    (1)尽早参与到项目中;

    (2)制定详尽合理的测试计划;

    (3)做好测试文档、测试用例的评审及修改;

    (4)提高测试接受的标准,减少测试版本的更新次数;

    (5)积极沟通项目存在的问题及需要改进的地方;

    (6)考虑项目是否可以引入自动化测试工具或自动化测试脚本;

    (7)提高测试人员的专业技能和工作能力;

     

    如何发现bug:

    (1)尽快熟悉公司的产品业务,根据产品的业务属性来熟悉产品的业务流程;

    (2)站在用户的角度去思考和测试;

    (3)对测试过程中遇到的问题善于怀疑,不要被测试的固定习惯或思路限制了;

    (4)开发人员说的“用户不会这样操作的”这种情况也需要当成是bug来进行处理;

    (5)测试过程中要跟着一条数据的完整测试流程;

    (6)在开发人员提交了版本之后需要跟其进行沟通,确认是否该缺陷会影响到其他相关的模块;

    (7)对边界值多进行测试;

    (8)非法容错性的测试;

    (9)参考其他测试人员的测试经验;

     

    7、例举你熟悉的测试用例设计方法

    a、等价类划分法

    等价类是指某个输入域的子集合,在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并且合理地假定:测试某等价类的代表值就等于对这一类其他值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据,取得较好的测试结果。可以划分为有效等价类和无效等价类。

    b、边界值分析法

    边界值分析法是对等价类划分法的补充。测试经验告诉我们,其实大部分的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部,因此针对各种边界值情况设计测试用例可以查出更多的错误;

    使用边界值分析法设计测试用例的时候,首先需要确定边界情况,通常输入和输出等价类的边界,就是需要着重测试的边界情况,需要选取正好等于、刚刚大于、刚刚小于边界的值作为测试的逐句,而不是选取等价类中的典型值或任意值作为测试数据。

    c、错误推测法

    基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。

    错误推测法的基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据这些来选择测试用例。

    d、因果图方法

    采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例,这就需要用到因果图,因果图方法最终生成的就是判定表,它适用于检查程序输入条件的各种组合情况。

     

    暂时先更新到这,后面会再接着更新的~

  • 相关阅读:
    PrintWriter、PrintStream的苦头 缓冲区问题
    BufferedImage与byte[]互转
    求两个日期的间隔天数
    Timer和TimerTask详解
    Java连接Access数据库
    根据value字段对map进行排序
    java collections读书笔记(3)Arrays
    java collections读书笔记(4) stack
    运行时异常与一般异常有何异同?(转)
    java collections读书笔记(7) bitset
  • 原文地址:https://www.cnblogs.com/xuxiaozhu/p/10608709.html
Copyright © 2011-2022 走看看