软件评测师 第二小时

一、软件测试类型

软件测试类型有多种划分方法

    软件测试类型:

           1.按照开发阶段划分

           2.按照测试实施组织划分

           3.按照测试技术划分

           4.按照测试执行方式划分

           5.按照测试对象类型划分

           6.按照质量属性划分

           7.按照测试地域划分

  (1)按照开发阶段划分。

          1.单元测试:

                单元功能测试

                单元接口测试

                单元局部数据结构测试

                单元中重要的执行路径测试

                单元边界条件测试

          2.集成测试

               模块间接口测试

               模块间数据传递

               全局数据结构测试

          3.系统测试

               从用户角度对系统做功能性的验证

               非功能性的验证

          4.验收测试

               对整个系统的测试与评审

              根据验收通过准则分析测试结果

              决定是否接收系统及测试评价

二、各类测试介绍

     1、单元测试

          单元测试又称为模块测试,是针对软件设计的最小单元(程序模块)进行正确性验证的工作。单元测试可以作为无错编码的一种辅助手段,也可以作为规格说明来工作。单元测试必须是可重复的。

           单元测试的原则如下:

              应该尽早地进行软件单元测试

              应该保证单元测试的可重复性

              应尽可能采用测试自动化的手段来支持单元测试活动

     2、集成测试

           集成测试又称为组装测试、联合测试、子系统测试或部件测试。集成测试是在单元测试的基础上,将所有模块按照设计要求组成子系统或系统进行的测试活动。集成测试的目的是找出在模块接口上,包括整体体系结构上的问题。

           集成策略分为增值策略与非增值策略。

           非增值策略的优点:方法简单,允许多个测试人员并行工作,对人力、物力资源利用率较高。

           非增值策略的缺点:必须为每个模块准备驱动模块与桩模块测试成本较高,难以定位以及纠正错误。

           增值策略的优点:能较早第发现模块间接口错误,发现问题易于定位。

           增值策略的缺点:测试周期长,投入的人力物力受限

   3、系统测试

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

      系统测试目的是在真实系统工作环境下通过与系统的需求定义做比较,检验完整的软件配置项是否与系统正确连接,发现软件与系统设计文档或者软件开发合同规定不符合或与之矛盾的地方。并且还要检验系统的文档是否完整、有效。系统测试一般使用黑盒测试技术,并由独立的测试人员完成。

    4、确认测试

       要检查已实现的软件是否满足需求规格说明中确定个各种需求,以及软件配置是否完全、正确。

  5、验收测试

       验收测试是软件完成了功能,测试和系统测试之后、产品发布前进行的软件测试活动,是技术测试的最后一个阶段,也称为交付测试、发布测试、确认测试。

       验收测试是按照项目任务书活合同、供需双方约定的验收收据文档进行的对整个系统的测试与评审,决定是否接收系统。

       验收测试主要包括易用性测试、兼容性测试、安装测试、文档(如用户手册、操作手册)等内容。

      验收标准如下:

         完全执行了验收测试计划中的每个测试用例

         在验收测试中发现的错误已经得到修改并通过了测试

         完成软件验收测试报告

       验收测试需要注意一下几点:

           必须编写正式的、单独的验收测试计划

          验收测试必须在实际的用户运行环境中运行

          由用户和测试部门共同执行比较好

  (2)按照测试实施组织划分。

         按照测试实施组织划分:

                   开发方测试:

                         1、由公司内部的用户进行的受控测试

                         2、证实软件满足规定的需求

                         3、注重产品的界面和特色

                 用户测试:

                         1、由最终用户再客户场所进行验证

                         2、不受开发者控制

                         3、注重产品的支持性

                第三方测试:

                         1、介于开发方和用户方间的组织的测试

                         2、保证测试工作的客观性

                         3、评审需求、设计、用户类文档

                         4、单元测试、功能测试、性能测试

 (1)开发方测试

         开发方测试也叫“验证测试”或“alpha”测试。开发方通过检测和提供客观证据,证实软件的实现是否满足规定的需求。有关手册应该在开发方测试前准备好。

  (2)用户测试

        用户测试也叫做Beta测试,该测试是在用户的应用环境下,用户通过运行和使用软件,检测与核实该软件实现是否符合自己预期的要求。只有当alpha测试达到一定的可靠程度后,才能开始Beta测试。

   (3)第三方测试

          第三方测试也称为“独立测试”,是介于软件开发方和用户之间的测试组织的测试,其目的是为了保证测试工作的客观性,并尽量多地发现程序中的错误。

          按测试技术划分:

                 黑盒测试:

                     1、对界面测试

                     2、对功能测试

                     3、从用户的角度出发

                 白盒测试:

                      1、检查所有的结构及路径是否正确

                      2、检查软件内部动作是否按规定进行

                 灰盒测试:

                      1、关注输出对输入的正确性

                      2、关注内部表现

                      3、介于白盒和黑盒测试之间

(1)黑盒测试

       黑盒测试也称为“功能测试”,在测试中把程序看成一个不能打开的黑盒子,子啊接口处进行测试而不考虑程序内部结构。黑盒测试行为必须能够加以量化。

       黑盒测试优点:不需要了解程序内部代码以及实现

                                与软件的内部实现无关

                                从用户角度出发

                                基于软件开发文档测试,能了解软件实现了文档的哪些功能

                                做自动化测试方便

       黑盒测试缺点:

                          代码覆盖率较低,只有总代码量的30%

                          自动化测试的复用性较低

黑盒测试主要用于发现以下几类错误:

        功能不正确或遗漏

        界面错误

       输入和输出错误

       数据库访问错误

      性能错误

      初始化和终止错误等

(2)白盒测试

      白盒测试有称为“结构测试”,把程序看成是装在一个透明盒子里,能清楚了解程序结构和处理过程。

     优点:可以检查内存的泄露;检查异常处理分支语句是否正确。执行了多少逻辑,可以做为衡量测试是否完整的一个指标。

     白盒测试必须遵循以下原则,才能达到测试目的:

      保证一个模块中的所以独立路径至少被测试一次

      所有逻辑覆盖均需测试真和假两种情况

      检查程序的内部数据结构,保证其结构的有效性

      在上下边界以及可操作范围内运行所有循环

(3)灰盒测试

         灰盒测试介于黑盒测试与白盒测试之间。

         灰盒测试优点:

                  1、能够进行基于需求的覆盖测试和基于程序路劲覆盖的测试

                  2、测试结果可以对应到程序内部路劲,便于bug的定位、分析和解决

                  3、能够保证设计的黑盒测试用例的完整性,防止遗漏软件的一些不常用的功能或者功能组合

                  4、能够减轻需求或设计不详细或不完整对测试造成的影响

         灰盒测试缺点:

                 1、比黑盒测试多20%--40%的投入时间

                 2、对测试人员的要求比黑盒测试高

                 3、不如白盒测试深入

                 4、不适于简单系统(只有一个模块的系统)

(4)按照测试执行方式划分

          按照测试执行方式划分:

                  静态划分:

                          1、代码检查

                          2、静态结构分析

                         3、代码质量度量

                  动态测试:

                          1、编写测试用例

                          2、执行程序

                          3、分析程序输出结果

  1)静态测试

       静态测试是指不运行程序,通过人工对程序和文档进行分析与检查。它实际上对软件中的需求说明书、设计说明书、程序源代码、用户手册等进行非运行的检查。静态测试可以人工进行,也可以借助软件工具自动进行。

  2)动态测试

      动态测试通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率结果与预期的差异,分析运行效率结果与预期的差异,分析运行效率和健壮性等性能。

    静态测试与动态测试的区别:

       静态测试是用于预防的,动态测试是用于校正的

      多次的静态测试比动态测试效率更高

      静态测试综合测试程序代码

      在相当短的时间里,静态测试的覆盖率能达到100%,而动态测试是50%左右

     动态测试比静态测试更花时间

     静态测试比动态测试更能发现bug

     静态测试的执行可以在程序编码编译前,动态测试只能在编辑后才能执行

(5)按照测试对象类型划分

         按照测试对象类型划分:

             功能测试

             界面测试

             流程测试

             接口测试

             安装测试

            文档测试

            源代码测试

             性能测试:

                    1.负载测试

                    2.压力测试  (并发测试)

                    3.稳定性测试  (大数据量测试)

            数据库测试

            网络测试

  1)功能测试

        对软件进行功能测试主要检查软件功能是否实现了软件功能说明书(软件需求)上的功能要求。

 2)界面测试

      对软件的用户界面进行的测试,主要检查用户界面的美观度、统一性、易用性等方面。

     用户界面(ui)测试用于核实用户与软件之间的交互,UI测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能。另外,Ui测试可以确保UI中的对象按照预期的方式进行,并符合公司或行业标准。包括用户友好性,人性化,易操作性测试。UI测试比较主观与测试人员

 个人喜好有关。

3)流程测试

    流程测试包括业务流程、数据流程、逻辑流程,其目的是检查软件在按流程操作时是否能够正确处理。流程测试是测试人员把系统各个模块连贯起来运行、模拟真实用户的实际操作,满足用户需求定义的功能来进行的测试。

4)接口测试

    接口测试是测试系统组件间接口的一种测试。主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系。

5)安装测试

     确保软件在正常情况下和异常情况下都能进行安装。安装测试包括测试安装代码合安装手册。

6)文档测试

     文档测试:

           非交付用户的文档测试:

                      需求文档测试:1、需求规格说明书

                                               2、概要设计说明书

                                              3、详细设计说明书

                     测试相关文档测试:1、测试计划

                                                     2、测试用例

                                                    3、测试报告

        交付用户的文档测试:1、需求文档

                                           2、用户手册

                                           3、安装手册

7)源代码测试

    通过该测试发现应用程序、源代码中的安全漏洞,识别、定位存在的安全漏洞,并分析漏洞风险,提出整改建议,提高系统的安全性。

    选择全部源代码进行测试时,首先要经过代码变异,生成应用程序或网站,由委托测试方和测试方共同协商确定,对选定代码的测试结果仅对被测源代码有效,不能作为评价全部源代码的依据。

8)数据库测试

     数据库测试的主要因素有数据完整性、数据有效性、数据操作和更新

9)网络测试

    网络测试主要验证链路连接情况、错包率、连通性、网络质量

10)性能测试

  负载测试又叫强度测试,是通过逐步增加系统负载来测试系统最大负载量的测试。

  压力测试用来发现在什么条件下应用程序的性能会变的不可接受。

    性能测试:

           负载测试

          压力测试:1、并发测试     2、大数据量测试

          稳定性测试

     

     

     

原文地址:https://www.cnblogs.com/hl-2030/p/14745956.html