• 12
  • 11
分享

一、什么是静态测试?动态测试?

通过运行程序测试软件:动态测试(有白盒和黑盒,从不同角度设计测试用例)

通过评审文档、阅读代码:静态测试

静态测试方法是指不运行被测程序本身,仅通过分析或检查源代码的语法、结构、接口等来检查程序的正确性。对照需求规格说明书,软件设计说明书,源程序做结构分析,流程图分析。静态方法通过程序静态特性的分析,找出欠缺和可疑之处,如不匹配的参数,不合适的嵌套循环和分支嵌套,不允许的递归,未使用过的变量、空指针的引用和可疑的计算。用于进一步的差错,并为测试用例选取提供指导。

二、什么是回归测试?

目的是程序有修改的情况下,保证原有功能正常的一种测试策略和方法。

测试人员在程序进行测试时发现bug,然后返回程序员修改,程序员修改后发布新的软件包或软件补丁包给测试人员,重新测试,保证程序修正了以前bug的情况下,正常运行且不会带来新的错误的过程,一般不需要全面测试,根据修改情况进行有效的测试。

三、如果能够执行完美的黑盒测试,还需要进行白盒测试吗(黑盒和白盒的区别?)

任何工程产品(注意是任何工程产品)都可以使用以下两种方法之一进行测试。

黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。

白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。

软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:

1、是否有不正确或遗漏的功能?

2、在接口上,输入是否能正确的接受?能否输出正确的结果?

3、是否有数据结构错误或外部信息(例如数据文件)访问错误?

4、性能上是否能够满足要求?

5、是否有初始化或终止性错误?

软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查:

1、对程序模块的所有独立的执行路径至少测试一遍。

2、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。

3、在循环的边界和运行的界限内执行循环体。

4、测试内部数据结构的有效性,等等。

以上事实说明,软件测试有一个致命的缺陷,即测试的不完全、不彻底性。由于任何程序只能进行少量(相对于穷举的巨大数量而言)的有限的测试,在未发现错误时,不能说明程序中没有错误。

就算执行了完美的黑盒测试也是无法测试程序内部特定部位,另外当规格说明本身有误,也不能发现问题。而白盒测试能对程序的内部特定部位进行覆盖测试,所以黑盒和白盒测试互为互补关系,结合起来进行测试用例的设计更为合理。

经验表明,通常在进行单元测试时采用白盒测试方法,集成测试使用灰盒测试,系统测试使用黑盒测试。

四、软件测试分几个阶段?各阶段重点测试什么?各个阶段的含义?

开发的5个阶段:单元测试、集成测试、确认测试、系统测试、验收测试。(回归测试)(软件发布后)。

每阶段都有5个步骤:测试计划、测试设计、用例设计、执行结果、测试报告

1、单元测试是对软件中的基本组成单元进行测试,如一个模块、一个过程等等,它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件最基本组成单元的正确性。

2、集成测试在单元测试的基础上,将所有模块按照设计要求,组装成为子系统或系统,进行集成测试。其主要目的是检验软件各单位之间的接口是否正确。实践表明,一些模块虽然可以单独工作,但并不能保证连接起来也能正常工作。程序在某些局部反映不出来的问题,在全局上可能暴露。测试重点是模块间的衔接以及参数的传递等。

3、确认测试确认测试的目标是验证软件的功能和性能以及其他特性是否与用户的要求一致。确认测试一般包括有效性测试和软件配置复查。一般由第三方测试机构进行。

4、系统测试是对已经集成好的软件系统进行彻底的测试,已验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确。重点:整个系统的运行以及与其他软件的兼容性。

5、验收测试旨在向软件的购买者展示该软件满足其用户的需求。它的测试数据通常是系统测试的测试数据的子集。

6、回归测试是在软件的维护阶段,对软件进行修改之后进行的测试,其目的是检验对软件的修改是否正确。

五、针对缺陷采取怎样的管理措施?

1、要更好的管理缺陷,必须引入缺陷管理工具,商用的或者开源的。

2、根据缺陷的生命周期,考虑缺陷提交的管理,缺陷状态的管理和缺陷分析的管理。

3、所有发现的缺陷必须全部即时的,准确的提交到缺陷管理工具中,这就是缺陷提交的管理。

4、缺陷提交后,需要即时的指派给相应的开发人员,提交缺陷的人需要密切注意缺陷的状态,帮助缺陷的尽快解决,缺陷解决后需要即时对缺陷的修复进行验证。目的有2个:1.让缺陷尽快解决2.方便后面缺陷的分析

5、为了更好的改进开发计划和测试过程,需要对缺陷进行分析,总结如缺陷的类型,缺陷的龄期分布等信息。

六、软件测试的V模型和W模型

1.jpg

2.jpg

七、测试方法可以分为哪几种?

软件测试可以是人工测试:如个人复查,抽查和会审等

也可以是机器自动测试,又有不同的分类:

按照否关软件内部结构具体实现角度划

A、白盒测试

B、黑盒测试 

C、灰盒测试

按照软件发程按阶段划

A、单元测试 

B、集测试 

C、确认测试 

D、系统测试 

E、验收测试

八、白盒测试之六种覆盖

1、语句覆盖:可执行语句至少被执行一次;

2、判断覆盖:每个判断的取真分支和取假分支至少经历一次;

3、条件覆盖:每个条件的取值至少满足一次;

4、判断条件覆盖:判断和条件都满足;

5、条件组合覆盖:每个条件的所有可能都至少出现一次,并且判定结果至少出现一次 ;

他与条件覆盖的区别:他不是简单要求每个条件出现“真”和“假”两种结果,而是要求这些结果所有可能至少出现一次;

6、路径测试:执行所有可能的执行路径;

7、基本路径测试:

路径测试执行了每个路径,每个判定的结果肯定经历过一次

6中覆盖标准,强度由弱到强依次是:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖

九、其他问题记录

常用的黑盒测试方法:等价类划分法、边界值分析法、正交实验设计法、因果图法、决策表法。

等值分析测试=等价类划分+边界值分析测试

边界值法既是白盒又是黑盒测试方法

因果图法:等价类划分法和边界值分析方法都是着重考虑输入条件,如果程序输入之间没有什么联系,采用等价类划分和边界值分析是一种比较有效的方法。如果输入之间有关系,例如,约束关系、组合关系,这种关系用等价类划分和边界值分析是很难描述的,测试效果难以保障,因此必须考虑使用一种适合于描述对于多种条件的组合,产生多个相应动作的测试方法,因果图正是在此背景下提出的。因果图法着重测试规格说明中的输入与输出间的依赖关系。

因果图法测试用例的设计步骤:

(1)确定软件规格(需求)中的原因和结果

(2)确定原因和结果之间的逻辑关系

(3)确定因果图中的各个约束(constraints)

(4)画出因果图并转换为决策表

(5)根据决策表设计测试用例


作者:xiongluo0628

原文链接:https://blog.csdn.net/xiongluo0628/article/details/81363909

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   对于“自己适不适合转行做软件测试?”一直都是测试行业里的热门话题。随着近几 年IT互联网行业的快速发展,软件测试岗位也受到越来越多人的关注,因此有很多人都想要从事这一行业,这里主要分为两类人,一种是刚毕业的应届生,对于很多毕业大学生来说毕业等于失业;另外一种是在其他行业,没有前景没有未来,想要转行。  一、如何判断自己适不适合做软件测试?  其实对于这个问题,除了一小部分人真的在这方面有特别突出的天赋以外,是没有严格区分适合与不适合的。想大家看到的大多数软件测试行业大佬都是从小白菜鸟慢慢成长过来的。其实只要你下定决心想要去学习并坚持,你就是适合的。一名软件测试人员身上具备很多显性特征,下面...
            0 0 543
            分享
          •   小鹏汽车 CEO 何小鹏18日分享了智驾团队在德国拍摄的高速 NGP 测试视频,并称当前“进展不错”。  何小鹏表示,位于德国的团队反馈,小鹏 XNGP“感知泛化能力极强”,拿到欧洲之后几乎可以直接上路,而且受过国内交通路况“博弈训练”的智驾软件,在海外的体验格外流畅。“从技术层面上来看,高阶智驾全球都能用指日可待。”  本月早些时候,近千台小鹏 G9 发运德国,为小鹏汽车有史以来单次最大规模的海外发运。据悉,此次出口总值超过 5 亿元,创中国高端智驾纯电汽车单船出口价值第一。上月末,小鹏汽车宣布正式进入德国市场,并将于今年 5 月开始在德国销售小鹏 G9 和小鹏 P7 的国际版车型。  ...
            0 0 210
            分享
          •   当纯手工测试已经不能满足项目的需要时,我们就引入了自动化测试,下面我来列举一下我在学习Selenium+Python的过程中遇到的坑以及解决方法。  找不到测试用例No tests were found  大多数初学者可能从开始到结束写一个操作流程,都能很流畅的写下来,但是这种只适应于回归测试,用自动化脚本进行整体功能的回归测试,不适应于对某个具体功能进行详细测试,那么这个时候就引入了UnitTest,对测试用例进行管理。  但对于初学者来说,从一个文件分化到多个文件,方法使用规则的不清晰等等,都可能导致测试失败,这个问题就是在使用UnitTest管理用例的时候遇到的问题。  执行结果提示...
            12 12 1194
            分享
          •   软件缺陷管理  软件缺陷-概念  软件缺陷-基本概念主要分为:缺陷、故障、失效。  ·缺陷(Defect):以静态形式存在于软件内部,相当于BUG;  · 故障(Fault):软件运行中出现的状态,不处理可能会失效,以动态形式存在;  · 失效(Failure):软件运行时产生的外部异常行为结果,与用户需求不一致。  缺陷不一定导致故障,故障也不一定会失效;缺陷导致故障,有可能导致失效,也有可能不会导致失效。  软件缺陷-定义  软件未达到产品说明书中已标明的功能软件未达到产品说明书中虽未指出但应达到的目标软件出现产品说明书中指明不会出现的错误软件功能超出了产品说明书中...
            0 0 872
            分享
          •   1、前言  大家好!我是Meng  前段时间,很荣幸被一合作伙伴邀请发表一篇文章,主题为"这些年,我所从事软件测试的一些感悟",正好趁着这个机会,我也好好总结一下。  2、测试培训  对于软件测试,在培训之前也不知道是干什么的,只知道有软件开发,之后才知道有软件测试这个行业。  刚开始也是在徘徊是做开发还是做测试,经过多次被测试机构的招生老师洗脑后,开始进行了软件测试培训之旅。那时候测试培训机构就那么几家,基本都是机构,个人的很少,培训机构是线下的,线上的也很少。培训价格方面也是过万了,跟现在的培训机构差不多,也就便宜了几千而已。  回头一想想,那时候教的内容,真的很少...
            0 0 784
            分享
      • 51testing软件测试圈微信