• 【软件测试基础】软件测试阶段


    本文由小编根据慕课网视频亲自整理,转载请注明出处和作者。

    1.软件测试的分类

    按测试阶段分类:单元测试、集成测试、系统测试、验收测试
     
    2.单元测试
    • 定义:对软件中的最小可测试单元进行检查和验证。
    • 单元:人为规定的可测试的最小模块。比如C语言中,可看作各个函数;Java这种面向对象语言中,可看做每一个类;针对有界面的功能软件,单元可看做具体的功能项,比如菜单项,一个子窗口的具体的功能。
     
    单元测试的原则:
    • 尽可能保证各个测试用例是互相独立的。
    • 一般由代码的开发人员来实施,用以检验所开发的代码功能符合自己的设计要求。
     
    单元测试的益处:
    • 能尽早发现缺陷。单元测试处于前期,可以发现更多的缺陷。
    • 有利于重构。有了完善的单元测试,可以在重构时,就可以快速地识别出重构时出现问题的点。
    • 简化集成。只有充分的单元测试,集成测试才能更加聚焦在模块之间的关系上,而不用再花精力到单元内部的逻辑上。
    • 减少文档。现在的敏捷研发,提倡代码级文档,即尽可能地减少文档。如果单元测试比较规范,通过对单元测试代码的阅读,就可以基本地理解模块的特性。很大程度上可以减少文档的工作。
    • 用于设计。通过编写单元测试,是可以把设计思路体现在单元测试的组织上。设计的本身可以用来验证设计。
     
    注:
    TDD:测试驱动开发,先编写单元测试,再编写功能的代码,并保证这些代码能使单元测试通过。
     
    单元测试的限制:
    • 不可能覆盖所有的执行路径,所以不可能保证捕捉到所有路径的错误。
    • 每一行代码,一般需要3~5行测试代码才能完成单元测试。所以存在投入和产出的一个平衡。
     
    单元测试框架:
    • Xunit
    • JUnit: 针对java
    • nunit:针对.net
    • PHPUnit:针对PHP
    • CppUnit:针对C++
     
    3.集成测试:
    定义:是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。
     
    集成测试的主要实施方案:
    • Big Bang:一次性集成,把大部分的开发模块都耦合起来,形成一个完整的软件系统或系统的主要的组成部分,然后再来做集成测试。
    • 自顶向下:从主程序开始,沿控制层逐层向下地测试,以覆盖到所有的模块。
    • 自底向上:从程序模块的最底层的模块开始,逐层地向上组装,逐层地测试。针对已经集成的或已经组装过的,可以不需要对上一层组装模块。它是最常用的集成方法。
    • 核心系统集成:先把核心的软件部分挑选出来,并对这些部件进行集成测试。在测试通过的基础上,再逐步地扩展到外围的部件,直到最后形成稳定的软件产品。
    • 高频集成:高频次地、不断地进行集成。
    核心系统集成和高频集成是很常用的集成方式,自顶向下和自底向上在传统的瀑布软件研发模型中比较常用。
     
    集成测试&单元测试的区别:
    • 测试的对象不同:单元测试针对的是最小的单元,集成测试则是以模块和子系统为单元,它主要测试的是模块和模块之间的关系。
    • 测试的依据不同:单元测试主要针对的是软件的详细设计,集成测试则主要针对软件的概要设计来测试的。
    • 测试的方法不同:集成测试关注的是接口之间的集成,单元测试只关心单元的内部。
     
    4.系统测试:
    定义:是将经过集成测试的软件,作为计算机系统的一个部分,与系统中其他部分结合起来,在实际运行环境下对计算机系统进行的一系列严格有效地测试,以发现软件潜在的问题,保证系统的正常运行。
     
    系统测试的关注点:
    • 关注系统本身的使用
    • 关注系统与其他系统间的连通
    • 关注系统在不同使用压力下的表现
    • 关注系统在真实使用环境下的表现
     
    系统测试&集成测试的不同
    测试对象
    • 集成测试:由通过了单元测试的各个模块所集成起来的构件
    • 系统测试:除了软件以外,还包括计算机硬件及相关的外围设备、数据采集和传输机构、支持软件、系统操作人员等整个系统。
     
    测试时间
    • 集成测试介于单元测试和系统测试之间测试
    • 系统测试是在集成测试之后
     
    测试内容
    • 集成测试: 各个单元模块之间的接口
    • 系统测试:整个系统的功能和性能
     
    测试角度
    • 集成测试:偏于技术角度的验证
    • 系统测试:偏于业务角度的验证
     
    5.验收测试:
    定义:也称交付测试。针对用户需求、业务流程的正式的测试,确定系统是否满足验收标准,由用户、客户或其他授权机构决定是否接受系统。
     
    细分
    • 用户验收测试
    • 运行验收测试
    • 合同和规范验收测试
    • alpha测试:开发者所提供的的环境中,由用户完成。
    • Beta测试:完全脱离了开发者环境,在用户环境下测试。
  • 相关阅读:
    mysql复制那点事
    全排列问题
    56. Merge Interval
    2. Add Two Numbers
    20. Valid Parentheses
    121. Best Time to Buy and Sell Stock
    120. Triangle
    96. Unique Binary Search Trees
    91. Decode Ways
    72. Edit Distance
  • 原文地址:https://www.cnblogs.com/sophia194910/p/6424960.html
Copyright © 2020-2023  润新知