zoukankan      html  css  js  c++  java
  • 2016年终总结——测试基础篇(二)

    --------------------------------------------------------------承接上文-------------------------------------------------------------------------------

    三、填空

    1.软件验收测试包括:正式验收测试,alpha测试,beta测试。

    2.系统测试的策略有:功能测试性能测试,可靠性测试,负载测试,易用性测试,强度测试,安全测试,配置测试,安装测试,卸载测试,文挡测试,故障恢复测试,界面测试,容量测试,兼容性测试,分布测试,可用性测试,(有的可以合在一起,分开写只要写出15就满分哦)

    3.设计系统测试计划需要参考的项目文挡有:软件测试计划,软件需求工件和迭代计划

    4.对面向过程的系统采用的集成策略有:自顶向下,自底向上两种。

    5.(这题出的有问题哦,详细的5步骤为~~)通过画因果图来写测试用例的步骤为:

    (1)分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。

    (2)分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么关系?根据这些关系,画出因果图。

    (3)由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。

    (4)把因果图转换成判定表。

    (5)把判定表的每一列拿出来作为依据,设计测试用例。

    填空测试总结:

    一、系统测试的策略:以我本身工作的经验来看,对于系统测试没有很大概念的,这就像一个集合,集合了我们整个交付测试部(手机银行测试,网银测试,微信银行测试,直销银行测试等等),对于不同项目组的测试工作又可细分为功能测试,性能测试,可靠性测试等等,我认为一个测试人员是可以在日常工作中接触熟悉这些策略,但大部分是没有一个具体的概念的。那么在这里我想谈下我所理解所认知到的测试分类:

          因为自己从事测试行业也不是很长时间,可能也还没达到能从一个软件从构建到发布整个过程中去把握整体的测试方法。我之前看虫师的博客,发现人家总结的很好,按照项目流程阶段来划分测试:  

    单元测试:单元测试是对软件中的基本组成单位进行的测试。目的是检验软件基本组成单位的正确性。 

    集成测试:集成测试是在软件系统集成过程中所进行的测试。目的是检查软件单位之间的接口是否正确。 

    系统测试:系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等是否满足其规约所指定的要求。 

    验收测试:验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,向软件购买都展示该软件系统满足其用户的需求。 

         而一般测试工作都集中在系统测试,也正像填空题第二题那样。我也是仅仅谈下系统测试下自己的浅显的认识。

         1.软件测试员用于描述测试方式的两个术语:黑盒测试,白盒测试。

           黑盒测试,俗称点点点,我们不需要知道软件内部是什么原理,是怎么实现的,是怎样的一个逻辑,我只从用户角度出发,从使用角度出发,只关心这个软件输出的结果,即  展示给我们的最终结果。而测试行业现在大部分从业人员从事的还都是黑盒测试,并且现在有个普遍的、我认为不是公正的认知,那就是黑盒测试要求技术水平不高,黑盒测试从事者也总以点点点自嘲。记得在群里有个哥们跟我们说,他们测试组老大性能自动化无一不精通,测试行业12年工作经验,就跟她们说过:我从来不会看低功能测试,我在测试行业工作了12年,就你们从认识我开始我说过一次功能测试不行吗?存在即合理,进行白盒测试要以适应代码来定制测试,所以很容易形成偏见而无法进行客观测试。我本身就是一个活生生的例子。自己测试app的时候,有时候自己知道代码是怎么实现的而不会去追根究底的去问开发让他们修改,因为自己知道这个地方为什么开发会稍微跟需求不一致进行处理,这也造成了无法客观的测试。

         白盒测试,高大上的测试方式。我们需要知道软件内部是怎么实现的,我们需要对其中的一个分支,一个逻辑,甚至一段代码中的一个循环进行测试。这也对测试人员的能力有了更高的要求,可能不需要你去完全搞懂代码的逻辑,代码的实现,但是要知道这段代码是干什么的,我可以对这段代码进行怎样的测试,我知道这段代码执行完成后会输出什么样的结果,以此进行测试。像接口测试,单元测试都需要一定的代码能力。

         2.静态测试和动态测试。

         静态测试是指软件不运行的部分——只是检查和审核;动态测试是指通常意义上的测试——使用和运行软件。

         最好的一个类比是检查一辆二手车的过程,看看车漆、打开引擎盖检查属于静态测试技术,发动汽车、听听发动机声音和上路行驶都属于动态测试技术。

         3.主流的测试种类分类:功能测试,自动化测试,性能测试,接口测试,单元测试

         功能测试:保证软件的功能是按照需求文档的需求和设计进行运行使用,功能完善正常运行。

         自动化测试:通过自动化测试工具或框架进行自动化测试,解放繁琐重复的手工测试,自动进行回归测试或绿灯测试。自动化测试并不能取代手工测试,我认为二者的完美配合才会是完美的测试。

        性能测试:对软件的性能进行测试,不光要看软件是否完成相应的功能,还要看软件在多种正常、峰值(负载测试)、异常负载(压力测试)等场景下的运行情况。因为目前自己对性能测试了解还不是很深入,不做过多讨论。

        接口测试:感觉这个自己还是有发言权的,因为之前做开发,特别是前端开发,接触的就是各种各样的接口。我在测试群里看很多人对接口这个概念不明白,因为没有代码经验,学习开发语言里就有接口这一名词,在工作中又有各种各样的接口就蒙了。

    开发语言中的接口:以java为例,接口就是提供给你一个接口名,带有一些参数,你可以通过调用接口实现一些个方法。不用考虑接口里是怎么实现的,按照需要的参数传入就可以。例如封装一个登陆方法,需要传入用户名和密码,那这个登陆方法就是一个接口。

    开发系统中的接口:以手机app为例,我们在手机app上看到的所有数据,都是从服务器端请求过来的,因为一个十几兆几十兆的app不可能存储大量的数据。那么我们怎么才能获得这些数据呢?服务端会给客户端关于各个模块的,首页啊,个人信息等各种各样的接口,根据传入参数的不同返回给客户端需要的数据并展示出来。

    简单来说,A向B要个东西,A通过一个渠道给出东西名称大小颜色,B根据A提供的参数找到这个东西,然后用这个渠道给A,那这个渠道就是一个接口,链接AB,传递信息。

         单元测试:单元测试可大可小,小到测试一个循环语句是否正确,大到测试一个模块的数据流啊,逻辑实现啊,是相对来说比较广泛的。自己也还没有正式接触过,仅仅是在自动化测试过程中接触过单元测试框架Testng和Junit,也不做过多的谈论。

    四、简答(资料是搜集整理的,感谢前辈的解题)无

    1.区别阶段评审的与同行评审

    同行评审目的:发现小规模工作产品的错误,只要是找错误;

    阶段评审目的:评审模块阶段作品的正确性可行性及完整性

    同行评审人数:3-7人人员必须经过同行评审会议的培训,由SQA指导

    阶段评审人数:5人左右评审人必须是专家具有系统评审资格

    同行评审内容:内容小一般文档<  40页,代码< 500行

    阶段评审内容:内容多,主要看重点

    同行评审时间:一小部分工作产品完成

    阶段评审时间:通常是设置在关键路径的时间点上!

    2.什么是软件测试

    为了发现程序中的错误而执行程序的过程

    3简述集成测试的过程

    系统集成测试主要包括以下过程:

    1.构建的确认过程。

    2.补丁的确认过程。

    3.系统集成测试测试组提交过程。

    4.测试用例设计过程。

    5.测试代码编写过程。

    6. Bug的报告过程。

    7.每周/每两周的构建过程。

    8.点对点的测试过程。

    9.组内培训过程。

    4怎么做好文档测试

    仔细阅读,跟随每个步骤,检查每个图形,尝试每个示例。P142

    检查文档的编写是否满足文档编写的目的

    内容是否齐全,正确

    内容是否完善

    标记是否正确

    5白盒测试有几种方法

    总体上分为静态方法和动态方法两大类。

    静态:关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义

    动态:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。

    6系统测试计划是否需要同行审批,为什么

    需要,系统测试计划属于项目阶段性关键文档,因此需要评审。

    7Alpha测试与beta的区别

    Alpha测试在系统开发接近完成时对应用系统的测试;测试后仍然会有少量的设计变更。这种测试一般由最终用户或其它人员完成,不能由程序或测试员完成。

    Beta测试当开发和测试根本完成时所做的测试,最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其它人员完成,不能由程序员或测试员完成。

    8比较负载测试,容量测试和强度测试的区别

    负载测试:在一定的工作负荷下,系统的负荷及响应时间。

    强度测试:在一定的负荷条件下,在较长时间跨度内的系统连续运行给系统性能所造成的影响。

    容量测试:容量测试目的是通过测试预先分 析出反映软件 系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限值状态下没有出现任何软件故障或还能保持主要功能正常运行。容量测试 还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。容量测试的目的是使系统承受超额的数据容量来发现它是否能够正确处理。容量测试是面向数据 的,并且它的目的是显示系统可以处理目标内确定的数据容量。

    ----------------------------------------------------------面试题总结----------------------------------------------------------------------

           从面试题来看,面试官对于测试人员要求还是比较广的,无论是测试基础,还是测试技术。作为一个半路出家的测试从业者,基础性的都会在实际工作遇到,但是可能还没办法系统的官方的深入讨论测试的一个方面,这也是自己以后学习的要注意的方面。另外,现在每个公司有每个公司测试的流程规范、测试的技术着重点,也并是说看了一两本书就能做好一名测试,还是不断的在工作中总结经验才是王道。

  • 相关阅读:
    Python 遍历文件 读取文件夹里面的所有文件
    生活 帝国霸略 辅助工具的实现
    生活 帝国霸略 更换账户登陆 电脑登陆iphone手机账户 电脑手机同步登陆
    Python 颜色检测
    Python 指定窗口截屏
    Python 图片裁剪
    Python 窗口查找
    ES5新增的数组方法
    ES5对象新增的方法
    谈谈对文档碎片的理解
  • 原文地址:https://www.cnblogs.com/dreamyu/p/6246907.html
Copyright © 2011-2022 走看看