软件测试基础理论知识(一)

测试的基础理论(重点)

一、软件开发阶段划分

1、需求分析阶段

由需求分析师完成

产出物:《需求规格说明书》

2、概要设计阶段

3、详细设计阶段

由系统架构师(分析师)完成

产出物:《概要设计说明书》《详细设计说明书》

4、编码阶段

程序开发人员

产出物:程序(源代码)

问题:哪个阶段引入的bug最多?哪个阶段最少?

需求分析阶段引入bug最多,其次是设计阶段,编码阶段引入bug最少。

所以:1)测试工作不能只测程序,文档也要测

2)测试工作应该尽早介入,最好从需求分析阶段就开始,测试工作应该贯穿整个开发周期始终。(尽早测试原则和不断测试原则)

二、软件测试阶段划分

1、单元测试阶段

1)单元测试是最小的测试单位,一般是一个功能模块(方法),一个窗口,一个类等

2)主要依据是详细设计文档

3)单元测试是以白盒测试为主。(也有可能辅助以黑盒测试)

4)单元测试可能要求测试人员编写桩模块和驱动模块

驱动模块:模拟被测模块的上一级模块(调用被测模块的)

桩模块:模拟被测模块的下一级模块(被“被测模块”调用)

总结、;驱动模块–>被测模块–>桩模块

5、在实际工作中,单元测试往往由程序员完成(可以节约成本。但是测试测试质量不严格,质量没有保证,所以企业往往会1)交换测试 2)由测试人员再测一轮,双保险)

2、集成测试阶段(组装测试)

1)也叫组装测试,通常在单元测试的基础上将软件的功能模块逐步地组装在一起,执行测试的过程。

2)组装的过程一般是逐步完成的,会形成很多临时的版本。

3)集成测试是以黑盒(功能)测试为主,核心模块也会辅助以白盒测试

4)集成测试阶段主要依据的是概要设计文档

5)冒烟测试:也叫版本验证测试

拿到一个新版本后,一般先做“冒烟测试”,使用较少的人(1-3人,经验丰富),较少的时间(0.5-2天)对软件的核心功能进行快速测试,如果软件的核心功能没有问题,就全测试组投入全面测试,如果问题较多,版本不稳定,就打回开发组。

6)问题:在集成测试阶段,拿到一个新的版本时的基本工作思路?

–首先冒烟测试,决定该版本是否接受

–返测:对解决的bug,进行测试,验证bug是否已经解决

–回归测试(回测):对于上一个版本测过的功能,要再次测试一遍–验证修改了的代码和新加的功能对原有功能是否有影响,产生新的bug

–对该版本新加的功能进行测试(有些版本可能只是修复之前的bug,没有新功能)

3、系统测试阶段

1).整个功能全部完成之后,对集成了硬件、软件的完整系统进行的模拟真实环境的测试。

2).系统测试的重点:

(1)整个系统在模拟真实环境下能否正确运行

(2)系统的兼容性

3)系统测试阶段主要依据的是需求文档

4)系统测试全部为黑盒测试

5)在系统测试之前,一般会安排“确认测试”,主要确认:

A:该系统是否可以进入全面的系统测试阶段。

B:确认相关文档是否齐全,尤其是给用户的文档,参与认证评估的文档

说明:确认测试一般时间较短,参与人员较少。所以一般不把其与单元测试、集成测试、系统测试、验收测试所并列

4、验收测试阶段

UAT:User Acceptance Testing—用户接受度测试

1)由用户参与的检查过程

2)验收测试一般会分为两个小阶段:

A:alpha测试:在软件开发公司提供的环境中,由最终用户对软件进行检查。(实际情况一般是要么客户请第三方测试机构代替进行;要么软件公司替客户完成)

B: beta测试:在用户的实际环境中,由最终用户对软件进行检查。

例如:公共类软件(os、输入法、 络游戏等)一般把软件免费发放给最终用户,通过用户的使用收集bug。—公测版本

三、软件测试模型

1、软件测试模型表达的是测试阶段和开发阶段的对应关系

1)V模型(重点:面试频率高)

(1)会画

(2)优、缺点

优点:A:开发和测试阶段(级别)划分明确,对应关系明确

B:测试阶段既包含单元测试(专业级、代码级)又包含验收测试(用户级)

缺点:软件开发前期的需求和设计过程的测试阶段没有体现,容易造成误解测试只是开发完成后的收尾工作。没有体现出尽早测试原则和不断测试原则。

2)W模型(了解)

(1)可以看出是双V模型:第一个V是开发活动过程;第二个V是测试活动

(2)W模型加入了需求和设计的文档测试内容。

优点:体现出测试对象不仅仅是程序,需求和设计文档同样需要测试

体现出了尽早测试和不断测试原则

四、软件测试的分类

1、按测试技术划分:

  • 黑盒测试:又称为功能测试,是不考虑程序的代码和内部结构特征,只知道输入和输出的情况下进行的功能测试
  • 白盒测试:又称为结构测试或基于程序的测试。只考虑程序代码和内部结构,而不考虑程序功能的测试。
  • 灰盒测试: 结合黑盒和白盒测试的要素,对软件进行测试。一般先做黑盒测试,当发现bug对bug进行定位,对代码进行白盒测试的过程(在集成测试中经常采用)
  • 说明:

    1)、白盒测试一般对风险较大、难度较大的核心模块进行补偿测试

    2)、白盒测试要求测试人员懂代码,测试效率较低。时间成本较高

    3)、白盒测试也需要写测试用例

    2、按是否需要运行代码划分:

  • 静态测试:
  • 不需要运行程序就能进行的测试

    例如:界面测试、文档测试、静态代码测试:主要测试代码是否符合相应的标准和规范

  • 动态测试:
  • 使程序运行起来进行的测试(例如:功能/黑盒一般都是动态测试)

    说明:白盒测试有可能是动态测试,也有可能是静态测试

    问题:(静态)代码测试和白盒测试有区别吗?

    白盒测试主要关注代码的逻辑功能,测试者必须懂代码,要求编写测试用例

    代码测试主要关注代码的规范性,标志性,测试者可以不懂代码,也不用写测试用例,只要参考代码审查单即可。

    3、按照软件的特性分类:

    1)功能测试

    A:任何软件必须先做功能测试,以保证其功能的正确性。

    B:功能测试既可以手工测试,又可以借助自动化工具实现

    2)性能测试

    A: 性能测试主要针对分布式软件(B/S和C/S)

    B: 性能测试必须要依赖于性能自动化测试工具

    4其他(名词、术语)

    1)、返测:对解决的bug,进行测试,验证bug是否已经解决

    2)、回归测试:对于上一个版本测过的功能,要再次测试一遍–验证修改了的代码和新加的功能对原有功能是否有影响,产生新的bug。回归测试存在大量的重复性工作,所以可以使用自动化工具以提高测试效率。

    3)、随机测试:(猴子测试)在测试用例执行完成之后,对软件进行随意测试的过程。随机测试只是时间充足时,对正常测试用例之外的补充测试

    4)、兼容测试:指所设计的软件与硬件、软件之间的兼容性的测试。

    主要分三类:

  • 硬件兼容:
  • 与整机兼容

    与外设兼容

  • 软件兼容
  • 与操作系统兼容

    与应用软件之间的兼容

    不同浏览器的兼容

    数据库的兼容

  • 数据兼容
  • 不同版本间的数据兼容

    5)、软件项目的测试流程

    步骤1:需求(阅读、熟悉理解需求)

    步骤2:制定测试计划

    步骤3:用例设计(通过测试方法,设计合理测试用例)

    步骤4:执行测试

    步骤5:记录执行结果,如果有bug要记录缺陷

    步骤6:跟踪、管理bug

    步骤7:进行测试总结( 告)

    6)、测试的策略

    就是将7种测试方法的应用场合说明出即可

    总结:测试时通常不是一种测试方法,往往会将2-4种测试方法综合应用

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2021年3月18日
    下一篇 2021年3月18日

    相关推荐