• 软件测试概念


    目录

    基础概念

    1、软件测试的概念

    2、软件测试的目的

    3、基本要求

    4、测试的工作流程

    5、开发模型

    1、瀑布模型

    2、增量模型

    3、快速模型

    4、螺旋开发模型

    5、迭代开发模型

    6、敏捷开发模型

    6、测试模型

    1、V模型

    2、W模型

    7、软件测试的分类

    1、测试开发的阶段

    2、是否覆盖源码

    8、测试用例

    9、测试用例设计方法

    1、等价类

    2、边界值

    3、因果图法

    4、判定表

    5、正交表

    6、场景法

    7、错误猜测法

    10、软件缺陷报告


    基础概念

    1、软件测试的概念

    简单来说,就是在软件中找bug

    具体概念:检查软件产品是否满足用户的需求

    2、软件测试的目的

    以最少的人力,物力,财力找到软件潜在的缺陷和错误

    3、基本要求

    外观界面测试+功能测试+易用性测试+性能测试+兼容性测试+安全性测试

    外观界面测试:界面排版符合要求,窗口缩放等

    功能测试:产品是否符合客户要求

    易用性测试:产品使用是否符合正常逻辑,是否方便用户操作

    性能测试:产品性能检测

    兼容性测试:产品在不同平台、不同版本、不同系统等是否可以正常使用

    安全性测试:用户信息加密存储等

    4、测试的工作流程

    1. 需求分析
    2. 测试计划和测试方案
    3. 测试用例制定
    4. 测试用例执行
    5. 评估阶段,测试报告

    1)需求分析:阅读需求文档,明白需求内容,分析需求的测试点。参与需求评审来排除不合理的需求

    2)制定测试计划和测试方案:

    测试计划:测试整个项目的安排(人力,时间等),测试范围,测试策略,测试地点,风险评估,风险规避等。

    测试方案:测试目标,测试工具,测试方法,测试重点等

    3)测试用例的设计与执行

    4)测试项目的评估,撰写测试报告

    5、开发模型

    1、瀑布模型

     瀑布模型是最原始的开发模型

    1、计划时期:进行项目整体分析,研究需求的正确性,可行性

    2、开发时期:针对项目进行需求分析,针对需求进行软件设计和代码编写

    3、运行时期:针对写出来的项目进行测试,测试通过后发布,上线之后也要进行维护

    a)特点:

    1、一个过程执行结束之后,才可以继续执行下一步,也就是阶段之间具有顺序性和依赖性

    2、一个阶段结束之后才可以继续执行下一步,每一个阶段都设计了测试点,保证了每一个阶段的质量

    b)优点:

    1、每一个阶段设置了检查点

    2、此阶段完成之后,就只需要关注后序阶段

    c)缺点:

    不支持需求模糊或者需求经常变动的项目

    2、增量模型

    将软件看作一系列相互联系的模型的增量,每次完成一个增量。

    将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。运用增量模型的软件开发过程是递增式的过程。相对于瀑布模型而言,采用增量模型进行开发,开发人员不需要一次性地把整个软件产品提交给用户,而是可以分批次进行提交。

    a)特点:可以根据功能划分模块

    b)优点:

    1、开发顺序灵活。开发人员可以对组件的实现顺序进行优先级排序,先完成需求稳定的核心组件。当组件的优先级发生变化时,还能及时地对实现顺序进行调整。

    2、将待开发的软件系统模块化,可以分批次地提交软件产品,使用户可以及时了解软件项目的进展。

    3、快速模型

    快速建立起可以在计算机上运行的程序。

    即先用相对少的成本,较短的周期开发一个简单的、但可以运行的系统原型向用户演示或让用户试用,以便及早澄清并检验一些主要设计策略,在此基础上再开发实际的软件系统。

    4、螺旋开发模型

    (1)制定计划:确定软件目标,选定实施方案,弄清项目开发的限制条件;

    (2)风险分析:分析评估所选方案,考虑如何识别和消除风险;

    (3)实施工程:实施软件开发和验证;

    (4)客户评估:评价开发工作,提出修正建议,制定下一步计划。

    5、迭代开发模型

    开发出来一个功能之后,在此功能上迭代,增加新的功能

    迭代开发模型不可并行,增量模型各个功能可以并行

    6、敏捷开发模型

    简单设计,快速实现。

    敏捷开发以用户的需求进化为核心,采用迭代,循序渐进的方法进行软件开发。
    在敏捷开发中,软件项目在构建初期被切分成多个子系统,各个子系统的成果都经过测试,具备可视,可集成和可运行使用的特征。换言之,就是把一个大的项目分为多个相互联系,但也可以独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。


    6、测试模型

    1、V模型

     缺点:测试介入太晚,如果需求出现问题,之前的工作就可能要做出很大的改正。

    优点:每一个阶段都清晰明了,便于控制每一个阶段

    2、W模型

     双V模型,测试伴随着项目始终。

    7、软件测试的分类

    1、测试开发的阶段

    • 单元测试:编码完成后运行 (比如写完一个方法,一个类,检测这个内容能否正确运行) 参与人员:开发人员 白盒测试人员
    • 集成测试:单元测试结束之后,主要检测模块和模块之间的内容测试  参与人员:开发人员 白盒测试人员
    • 系统测试:集成测试结束之后,检测整个项目  参与人员:开发人员 白盒测试人员 黑盒测试人员
    • 验收(交付)测试:系统测试之后,可以内测(α测试)和公测(β测试)

    2、是否覆盖源码

    1、黑盒测试没有源码;包括功能测试和性能测试

    功能测试主要包括:

    1. UI测试:检验界面是否符合要求,界面排版,窗口缩放等
    2. 功能测试:主要功能是否符合预期
    3. 兼容性:是否支持各种平台、各种系统、各种版本;软件自身的新、旧版本是否可以兼容;对其他软件的兼容性;数据之间的兼容性
    4. 文档测试:检测需求文档是否正确
    5. 易用性测试:是否符合用户的平时使用习惯
    6. 安装和卸载测试:软件的安装和卸载是否正常

    性能测试:

    1. 请求的响应时间(响应速度)
    2. 对资源的利用(CPU,内存大小)
    3. 稳定性测试(服务器稳定性,程序稳定性)
    4. 负载测试(服务器的负载容量如果是5万,就要看能不能扛到5万的并发访问)
    5. 压力测试(项目可以正常运行时,到达不会崩溃的极限)

    2、白盒测试有源码

    • 语句覆盖
    • 判断覆盖
    • 条件覆盖
    • 路径覆盖

    就是保证 每一种情况 每一个语句 都会被考虑到

    3、灰盒测试:不是完全的黑盒,白盒 介于两个之间。

    关心输入和输出,同时可以考虑输入输出过程内程序运行的状态

    8、测试用例

    为了测试某一个功能,编制的一组输入数据

    测试用例基本要素:1、测试用例编号 2、测试项目(测试模块) 3、前置条件 4、测试输入 5、预期输出 6、操作步骤 7、测试用例标题 8、级别

    9、测试用例设计方法

    1、等价类

    在输入数据穷举时,测试数据才可以说是完美的。然而,穷举是无法实现的,使用等价类划分,选取一类中的某一个数据,代表这一类

    比如:程序规定了用户名长度。用户注册时输入用户名,就要符合规范。

    如果长度规定在[4,8],那么有效等价类 长度就是4 5 6 7 8的不包含特殊字符的字符串,无效等价类就是其他数字长度的字符串或者包含特殊字符的字符串

    长度为4的有效等价类,就可以选取数据 ’1234‘ 作为所有长度为4的用户名的代表,输入结果作为所有长度为4的用户名的结果

    测试用例编号测试模块前置条件测试输入预期输出操作步骤测试用例标题级别测试人员测试结果
    1注册网络正常10000注册成功

    1、输入此用户名和符合要求的密码"123"

    2、点击注册

    用户名注册长度检测重要张三通过
    2注册网络正常100

    注册

    不成功

    1、输入此用户名和符合要求的密码"123"

    2、点击注册

    用户名注册长度检测重要张三通过

    2、边界值

     选择数据的边界进行测试

    3、因果图法

    使用因果图描述 不同输入和输出之间的对应关系

    4、判定表

    将因果图的结果使用表格表示

    5、正交表

    使用最少的测试过程集合获取最大的测试覆盖率。

    当条件过多,产生的组合就可能有n种。(比如A,B两个条件,可能组合就有AB同时满足,A满足B不满足,B满足A不满足,AB都不满足),这时是很难覆盖到每一个组合情况的。

    测试方法是从大量的测试情况中找出具有代表性的测试情形,利用正交表,结合等价类划分、边界值等方法来编写测试用例。

     覆盖到每一个测试用例 有 3*3*3*3种可能性。我们使用选取少数排列组合的测试结果,表示测试的结果

    6、场景法

    设置一个场景,走完所有的流程

    7、错误猜测法

    根据经验,重点测试容易出错的位置

    10、软件缺陷报告

    包括测试过程中的bug,没有满足用户需求的点等

     

     

  • 相关阅读:
    wps:样式集的使用【笔记】
    python机器学习之梯度下降法
    小学生Python编程 ——飞机大战
    C# ref 学习1
    SpringBoot结合Redisson实现分布式锁
    leetcode 1742. 盒子中小球的最大数量
    【操作系统】Lesson1-什么是操作系统
    Redis内存碎片:深度解析与优化策略
    前后端分离时后端shiro权限认证
    Python学习 — 免费使用,无须激活,下载安装即可免费使用Pycharm教程
  • 原文地址:https://blog.csdn.net/m0_58342797/article/details/128046347