• 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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   彭博新能源财经在最新行业评估报告中指出,英国是全球电动汽车快速充电成本最高的国家之一,快速充电的成本是加油的 1.7 倍。  在英国,那些频繁使用公共快速充电服务的司机,其年费用可能比使用汽油高出 1000 美元(IT之家备注:当前约 7085 元人民币)。当然,那些配置了家用充电桩并享受特殊公用事业费率的用户,每年可比汽油车节省 1200 美元。  英国充电运营商面临的部分挑战,源于政府对生物燃料的激励措施和电网成本的增加。与其他国家和运营商相比,英国较低的充电密度也是导致价格上涨的因素之一。尽管充电设施的安装量创新高,但英国每辆电动汽车对应的超快充电器数量仍少于其他主要国家。作者:远洋...
            0 0 134
            分享
          • GET方法和POST方法传递数据的异同http请求方法get和post是最常被用到的两个方法,get常用于向服务器请求数据,post常用于提交数据给服务器处理。 GET方法其实也可以传递少量的数据。 但它存在以下问题:1)GET 方法不包含body,因此以在URL中拼接字段的方式传递数据, 2)GET方法中的URL参数会被显示到地址栏上,存在安全问题3)传递的数据只能是键值对,无法传递其他类型的数据 因此出于传递大量、多种类型的数据和安全性的考虑,上传数据常使用post方法。POST方法如何传递数据POST方法提交数据给服务器,涉及到Content-Type和消息主体编码方式两部分。服务器根据...
            12 12 1852
            分享
          •   1-Wapiti  Wapiti作为一个高效的web项目安全测试工具,它支持用户对web应用程序进行评估。运用“黑盒测试”技术,它可以在Web应用中检查出可能存在的缺陷漏洞。  在测试过程中,Wapiti会对网页进行扫描,并注入测试数据来查找安全隐患。Wapiti支持GET和POST方法的HTTP攻击,可确认多种类型的安全漏洞,比如:  ·文件泄露(File disclosure)  · 数据库注入(Database Injection)  · 跨站脚本注入(XSS Injection)  · 命令执行探测(Command Execution Detectio...
            0 0 3531
            分享
          • 接口测试和功能测试是软件测试中的两种常见测试类型,主要用于评估软件系统的质量。尽管这两种测试都是为了评估软件系统的性能,但它们有很多不同之处。接口测试和功能测试的区别目的接口测试的目的是评估两个系统间的互操作性,以确保这两个系统之间能够正常地传递信息。而功能测试的目的则是评估软件系统是否能够按照预期正常运行。测试范围接口测试仅仅关注两个系统间的接口,而功能测试则关注软件系统的整体功能。因此,接口测试的测试范围更狭窄,而功能测试的测试范围更广泛。测试方法接口测试通常通过模拟实际数据交换来评估两个系统间的互操作性。功能测试则通常通过手动执行测试用例或使用自动化测试工具来评估软件系统的功能。重要性接...
            0 0 1526
            分享
          • 一、软件测试的目的1)软件测试是为了发现错误而执行程序的过程。2)测试是为了证明程序有错,而不是证明程序无错。(发现错误不是唯一目的)3)一个好的测试用例在于它发现至今未发现的错误。4)一个成功的测试是发现了至今未发现的错误的测试。注意:1、测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征。可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。同时,通过分析也能帮助我们设计出有针对性的检测方法,改善测试的有效性。2、没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。详细而严谨的可靠性增长模型可以证明这一点。例如BevLittlewood发现一个经过测...
            0 0 3385
            分享
      • 51testing软件测试圈微信