测试笔记01

一、python自动化介绍

1. python的发展方向

  • 人工智能
  • 科学计算、数据处理、爬虫
  • python自动化:自动化运维、自动化测试
  • web开发

2. 什么是python自动化

python自动化就是使用python语言来编写脚本或者平台(自动化运维平台、自动化测试平台—>devops),实现公司中重复业务的自动化流程。大体的方向分为:

  • 自动化测试
  • 自动化运维

二、软件测试概述

1. 软件测试与需求

1. 软件测试定义: 
    在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否满足设计要求进行评估的过程
    1). 规定的条件
    2). 目的: 发现错误,衡量软件质量

2. 通俗定义:
    软件测试是一种实际输出与预期输出之间的审核或者比较过程
    设计过程中: 预期结果 <——> 实际输出

需求:
    测试是保证实际输出与预期输出之间的审核或者比较过程,及时发现软件Bug与缺陷。
    避免项目上线由于Bug给公司带来损失。

 2. 开发与测试

在开发过程中,开发人员会对自己开发的功能进行简单测试。但不会让开发人员完成对软件的整个测试。原因可能有以下几点:
    - 思维定式
    - 测试力度
    - 关注度不足

 三、软件开发模型与生命周期

  • 瀑布类型
  • 快速原型
  • 螺旋模型

注意:软件测试与软件的开发模式有着紧密的联系,作为测试人员,应该充分理解软件的开发模式,一边找准自己在期中的位置,从而发挥自身的价值

1. 瀑布模型

瀑布模型: 
    1). 瀑布模型的特点
        1. 是线性模型的一种,每一个阶段只执行一次。
        2. 文档驱动
    2). 瀑布模型的优缺点
        优点: 
            开发的各个阶段比较清晰,当前阶段完成后,只需关注后续阶段。
        缺点: 
            不响应需求的变化。
            风险往往延至后期才显露,失去及早纠正的机会。

 2. 快速原型模型

快速原型模型
  在开发真实系统之前,构造一个圆型,在该原型的基础上,逐渐完成整个系统的开发工作。
    (1).快速原型模型的特点
	    1).快速的构建软件的原型 
    	2).支持用户参与
    优缺点:
	    优点: 克服瀑布模型的缺点,减少由于软件需求不明确带来的项目开发风险。
    	缺点: 不适合大型系统的开发(适合开发小型的、灵活性高的系统)。

 3. 螺旋模型

螺旋模型
    (1).螺旋模型特点: 
        引进了风险分析活动
    (2).螺旋模型的优缺点:
	    优点: 螺旋模型很大程度上是一种风险驱动的方法体系。
    	缺点: 采用螺旋模型需要具有相当丰富的风险评估经验和专门知识。

生命周期 

2 测试模型

2.1软件测试模型

  • V模型

  • W(双V)模型

2.1.1V模型

1.V模型
    (1).V模型介绍:
        - V模型是最具有代表意义的测试模型,最早是由Paul Rook在20世纪80年代后期提出,由英国国家计算机中心文献中发布,旨在改进软件开发的效率和效果; 
        - V模型本身是软件开发中瀑布模型的变种,它反映了测试活动与分析和设计的关系。 
        - V模型标明了测试过程中本身存在的不同阶段,从左到右,描述了开发过程和测试过程间的阶段对应关系。
    (2).V模型的优缺点
        优点: 测试V模型即包含了底层测试又包含了高层测试;
        缺点: 当需求变更时将会导致返工量非常大,模型灵活性比较低。

2.1.2W模型

2.W模型
  (1).W模型介绍:测试伴随着整个软件开发周期,并且测试的对象不仅仅是程序,需求和设计同样要测试。
  (2).W模型的优缺点:
    优点:
      1).强调测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,还包括需求和设计。
      2).更早地介入测试,能尽早得发现缺陷进行修复。
    缺点: 对于测试技术要求高,实践起来困难。

3 质量模型

软件质量,就是软件与明确地和隐含地定义的需求相一致的程度。 
ISO 9126软件质量模型是评价软件质量的国际标准,这个模型是软件质量标准的核心,对于大部分的软件,都可以考虑从这这6个特性和27个子特性去测试、评价一个软件。

 


4.软件测试分类

1. 按测试阶段划分

1.单元测试
单元测试, 又称模块测试,针对软件设计中的最小单位-程序模块,进行正确性检查的测试工作。
    单元测试需要从程序内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。
单元定义: C中指一个函数,Java中指一个类。

2.集成测试
集成测试, 又叫组装测试,通常在单元测试的基础上,将所有程序模块进行有序的、递增的测试。

3.系统测试
系统测试, 指的是将整个软件系统看为一个整体进行测试,测试的依据是软件需求说明书.

4.验收测试
验收测试, 用来检验软件是否符合用户需求的测试.
验收测试又细分为一下分类:
    (1).α测试:
        Alpha 是内测版本 
        通常只在软件开发者内部交流 
        一般而言, 该版本软件的bug较多,普通用户最好不要安装
      (2).β测试:
        Beta是公测版本,是对所有用户开放的测试版本 
        这一版本通常由软件公司免费发布, 用户可从相关的站点下载 
        通过一些专业爱好者的测试, 将结果反馈给开发者, 开发者们再进行有针对性的修改
    (3).γ测试:
        Gamma版本,指的是软件版本正式发行的候选版。该版本已经相当成熟了, 与即将发行的正式版相差无几, 成为正式发布的候选版本

2. 按是否查看源代码划分

软件测试分类中按照是否查看源代码划分可以分为以下几类:

    1.黑盒测试
        黑盒测试, 又称数据驱动测试,完全不考虑程序内部结构和内部特性,注重于测试软件的功能需求,只关心软件的输入数据和 输出数据。
    2.白盒测试
        白盒测试, 指的是把盒子打开,去研究里面的源代码和程序结构。
    3.灰盒测试
        灰盒测试,是介于白盒测试与黑盒测试之间的一种测试,不仅关注输出、输入的正确性,同时也关注程序内部的情况。

3. 按是否运行划分

(1).静态测试:指不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误过程。 
(2).动态测试:是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。

4. 按照是否自动化划分

人工测试: 也叫做手工测试,测试人员手动去进行的测试 
自动化测试: 利用代码或者工具帮助人工进行测试

5. 更多分类

冒烟测试: 冒烟测试就是对系统进行最基本功能的测试,保证基本的功能和流程能走通

回归测试: 当修复一个BUG后,把之前的测试用例在新的代码下进行再次测试

随机测试: 随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试用例没有覆盖到的部分 

探索性测试: 探索性测试意味着同时设计测试和执行测试。测试人员通过测试来不断学习被测系统。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值