享受每一天,Just Enjoy !

0%

软件测试分类
1.按阶段划分
  • 单元测试,集成测试,系统测试,验收测试
    2.单元测试
  • 单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证
  • 单元测试包含内容
    入口和出口函数,输入和输出信息,错误处理信息,部分边界数值测试
    3.集成测试
  • 集成测试,也叫组装测试联合测试
  • 集成测试常用方法
    自顶向下增量式测试,自底向上增量式测试
    4.系统测试
  • 将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,是针对整个产品系统进行的测试。目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案
  • 系统测试范围

    功能、界面、性能、 安全性、安装、卸载 、易用性 、兼容性等

    5.验收测试
  • 验收测试:它是一项确定产品是否能够满足合同或用户所规定需求的测试。这是管理性和防御性控制主要确认软件是否按合同要求进行工作,既是否满足软件需求规格说明书中的要求
6.按是否运行划分
  • 静态测试
    不运行被测试的软件,而只是静态的检查代码、界面或者文档
  • 动态测试
    实际运行被测试的软件,输入相应的测试数据,检查实际的输出结果是否和 预期结果相一 致的过程
    7.按是否查看代码
  • 黑盒测试
    把软件看成一个黑盒子,不 管内部 逻辑 和内部 特性 ,只依据规格说明书检查程序的功能是否符合功能说明
  • 白盒测试
    又称为结构测试。着重于程序内部结构和算法,不关心 功能和性能指标。白盒测试主要用在具有高可靠性要求的软件领域
    8.其他测试
    • 冒烟测试
    • 回归测试
    • 随机测试
    9.敏捷测试
    首先敏捷测试(Agile testing)是测试的一种,原有测试定义中通过执行被测系统发现问题,通过测试这种活动能够提供对被测系统提供度量等概念
    ……待续
    )

    享受每一天,Just Enjoy !

关注公众号获取更多内容.png

质量

1.什么是质量
  • 质量(quality)定义为“ 事物、产品或工作的优劣程度”或者“事物的优劣程度和数量
  • 日常生活中,质量好意味着
    “好吃”,“好用”,“耐用”,“省电”,“用着顺手”,“摔不坏”,“速度快”
    2.什么是软件质量
  • 软件质量的定义:软件特性的总和,软件满足规定或潜在用户需求的能力
  • 一般对“质量”的理解是一个实体的“属性”“属性”好就是质量好的。但这不够全面,“属性”是内在特性,内在特性好,不一定能胜任和完成好用户的任务
  • 国际标准ISO 9126定义的软件质量包括“内部质量”、“外部质量”和“使用质量”三部分
    3.软件质量模型
  • 内部质量:它是从内部观点出发的软件产品特性的总体。内部
    质量是针对内部质量需求被测量和评价的质量
  • 外部质量:外部质量是从外部观点出发的软件产品特性的总体。它是当软件执行时,更典型地是使用外部度量在模拟环境中,用模拟数据测试时,所被测量和评价的质量
  • 使用质量:是从用户观点出发,来看待软件产品用于特定环境和条件下的质量。它测量用户在特定环境中达到其任务目标的程度,而不是测量软件自身的性质
4.外部质量和内部质量
  • 功能行,可靠性,易用性,效率,维护性,可移植性

    5.使用质量
  • 有效性,生产率,安全性,满意度

    6.什么是质量保障
  • 为保证产品和服务充分满足消费者要求的质量而进行的有计划、有组织的活动
  • 当前的软件研发过程中,通常定义了2个软件质量相关的角色
  • QA即英文QUALITY ASSUR ANCE的简称 ,中文意思是质量保证
  • QC即英文QUALITY CO NTR OL的简称 ,中文意义是质量控制
    7.CMMI 等级
  • 在模型中,所有软件组织的软件能力成熟度划分为5个等级—第1到第5级。数
    字越大,成熟度越高。高成熟度等级代表比较强的综合软件能力
  • 5个成熟度等级分别为:

    第1级:初始级
    第2级:受管理级
    第3级:已定义级
    第4级:定量管理级
    第5级:持续优化级

……待续

)

享受每一天,Just Enjoy !

关注公众号获取更多内容.png

软件测试理论基础

1.软件测试概念
  • 软件测试的定义:在规定的条件下对软件进行操作,以发现错误,对软件质量进行评估
  • 软件测试的范围:对软件形成中的文档数据程序进行测试,而不仅仅对程序进行测试
    2.软件测试的目的
  • 测试的目的不仅仅是为了发现软件缺陷错误,而且也是对软件质量进行度量评估,以提高软件的质量
    3.软件测试的原则
  • 基于测试是为了寻找软件的错误缺陷,评估与提高软件质量,因此我们提出了这样的一组测试原则,如下所示

    1.所有的软件测试都应追溯到用户需求

2.应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭
3.完全测试是不可能的,测试需要终止
4.测试无法显示软件潜在的缺陷
5.充分注意测试中的群集现象
6.程序员应避免检查自己的程序
7.尽量避免测试的随意性

4.软件测试对象

1、根据软件的定义,软件包括程序数据文档,所以软件测试并不仅仅是程序测试。软件测试贯穿于整个软件生命周期
2、由于在整个软件生命周期中,各阶段有不同的测试对象,形成了不同开发阶段的不同类型的测试。需求分析概要设计详细设计以及程序编码等各阶段产生的文档,包括需求规格说明概要设计规格说明、详细设计规格说明以及源程序,都应作为“软件测试”的对象

5.软件测试风险

1.软件测试中的软件风险分析是根据预测软件将出现的风险,制定软
测试计划并排列优先等级风险分析是对软件中潜在的问题进行
识别估计评价的过程
2.风险也包括进度风险质量风险人员风险变更风险成本风险

6.初级软件测试工程师的职责

1.编写测试计划
2.编写测试用例
3.配置测试环境
4.执行软件测试
5.报告软件缺陷
6.更新缺陷报告内容
7.验证修正的缺陷
8.报告测试状态
9.完成测试相关的其它任务

……待续


在这里插入图片描述

享受每一天,Just Enjoy !

关注公众号获取更多内容.png

1.Python虚拟环境概述

  • Python本身存在2.03.0版本,并且通常会使用不在标准库内的软件包和模块,这意味着一个Python安装可能无法满足每个应用程序的要求
  • 解决的方式就是创建Pythonvirtual environment 也就是虚拟环境,安装特定Python版本或是许多其他第三方支持包

    2.创建虚拟环境

    1
    python3 -m venv tutorial-env
    utorial-env是要创建虚拟环境的名字
  • 现在来创建一个名为 Hero的虚拟环境
    1
    ~ python3 -m venv Hero

    3.启动虚拟环境

  • UnixMacOS上启动一下虚拟环境
    1
    2
    3
    4
    5
    6
    ➜  ~ source Hero/bin/activate
    (Hero) ➜ ~ python
    Python 3.7.5 (default, Nov 29 2019, 14:32:46)
    [Clang 9.0.0 (clang-900.0.39.2)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>>
  • Windows电脑启动
    1
    Hero\Scripts\activate.bat

    4.退出虚拟环境

    1
    2
    (Hero) ➜  ~ deactivate
    ➜ ~

    5.删除虚拟环境

  • 可以直接删除这个目录
    1
    ➜  ~ rm -rf Hero
    注意:使用这个rm -rf的时候一定要格外小心,linux没有回收站的,删除之后再想找回就很难了,所以一定要看准要删除的目录正确后再执行!!!

    ……待续


在这里插入图片描述

享受每一天,Just Enjoy !

关注公众号获取更多内容.png


1.Requests 库介绍

  • Requests是一个Python HTTP库,在Apache 2许可证下发布。该项目的目标是使HTTP请求更简单,更人性化。

2.安装方式

  • 直接使用pip安装

    1
    pip install requests
  • 验证是否安装成功,如果可以正常导入,则说明成功

    1
    2
    3
    4
    5
    Python 3.7.5 (default, Nov 29 2019, 14:32:46)
    [Clang 9.0.0 (clang-900.0.39.2)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import requests
    >>>
    阅读全文 »

1. 理解 __name__
  • 如果你经常看python的代码,很多脚本后面都会用到 if __name__ == '__main__':,对于刚接触python的小伙伴开始肯定会不大理解这是什么意思,为何这么使用。会纠结的理不清头绪,今天就这个痛点来简单的分解讲述下
  • __name__其实是python内置的系统变量,我们来首先来看看系统变量中有哪些内容
    1
    2
    >>> dir(__builtins__)
    ['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False', 'FileExistsError', 'FileNotFoundError', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'InterruptedError', 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'ModuleNotFoundError', 'NameError', 'None', 'NotADirectoryError', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'PermissionError', 'ProcessLookupError', 'RecursionError', 'ReferenceError', 'ResourceWarning', 'RuntimeError', 'RuntimeWarning', 'StopAsyncIteration', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'ZeroDivisionError', '__build_class__', '__debug__', '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__', 'abs', 'all', 'any', 'ascii', 'bin', 'bool', 'breakpoint', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'exit', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip']
  • 很多内容直接找到__name__
  • 可见__name__就是内置的系统变量而已
    2. 举个栗子
  • 来建个新的脚本
    1
    2
    (yiluo) ➜  Code touch build.py
    (yiluo) ➜ Code vim build.py
  • 脚本中写入
    1
    2
    3
    4
    5
    #!/usr/bin/env python3
    # 伊洛Yiluo

    print('__name__究竟是什么? ')
    print('该脚本的 __name__值是:{}'.format(__name__))
  • 运行一下
    1
    2
    3
    (yiluo) ➜  Code python build.py
    __name__究竟是什么?
    该脚本的 __name__值是:__main__
  • 打印出的内容很清晰的说明当下脚本的__name__值是 __main__
  • 这就说明单独运行脚本的时候,__name__值就是是 __main__
    3.作为模块导入时
  • Python 中一个.py 文件就是一个模块
    1
    2
    3
    4
    5
    6
    7
    (yiluo) ➜  Code python3
    Python 3.7.5 (default, Nov 29 2019, 14:32:46)
    [Clang 9.0.0 (clang-900.0.39.2)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import build
    __name__究竟是什么?
    该脚本的 __name__值是:build
  • __name__ 的值变成了 build
4.实际应用
  • 那么利用这点,我们如何实际应用,使导入代码的时候不被执行
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #!/usr/bin/env python3
    # 伊洛Yiluo

    print('__name__究竟是什么? ')
    print('该脚本的 __name__值是:{}'.format(__name__))


    if __name__ == '__main__':
    print('我很倔强,我被导入的时候不会被打印!')
  • 来单独运行下build脚本
    1
    2
    3
    4
    (yiluo) ➜  Code python build.py
    __name__究竟是什么?
    该脚本的 __name__值是:__main__
    我很倔强,我被导入的时候不会被打印!
  • 看到最后的print打印了出来
  • 如果被导入呢?
    1
    2
    3
    4
    5
    6
    7
    (yiluo) ➜  Code python3
    Python 3.7.5 (default, Nov 29 2019, 14:32:46)
    [Clang 9.0.0 (clang-900.0.39.2)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import build
    __name__究竟是什么?
    该脚本的 __name__值是:build
  • __name__的值不是__main__的时候就不会打印出来了
  • 再新建一个其它的文件最后验证下
    1
    2
    (yiluo) ➜  Code touch test.py
    (yiluo) ➜ Code vim test.py
  • 键入代码
    1
    2
    3
    4
    5
    6
    #!/usr/bin/env python3
    # 伊洛Yiluo

    import build
    print('test脚本自己打印')
    ``
  • 命令行运行下
    1
    2
    3
    4
    (yiluo) ➜  Code python test.py
    __name__究竟是什么?
    该脚本的 __name__值是:build
    test脚本自己打印
  • 可见并没有打印出“我很倔强,我被导入的时候不会被打印!”
    5. 总结
  • 当脚本下面if __name__ == "__main__":码入代码时,被导入到其它脚本中的时候不会被执
    在这里插入图片描述

欢迎下方【戳一下】【点赞】
Author:伊洛Yiluo
2019年12月18日
愿您享受每一天,Just Enjoy !

关注公众号获取更多内容

1.什么是函数

我们在写程序的时候会多次使用重复的代码,函数就可以简化这种重复。我们在函数里写重复的内容, 然后等需要使用的时候直接调用就可以

  • Python函数定义的通常格式为:
    1
    2
    3
    4
    def 函数名(参数列表):
    #函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明
    函数体
    #return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None
  • 定义函数
    先进入到python的命令行模式
    1
    2
    3
    4
    5
    6
    ➜  ~ source yiluo/bin/activate
    (yiluo) ➜ ~ python3
    Python 3.7.5 (default, Nov 29 2019, 14:32:46)
    [Clang 9.0.0 (clang-900.0.39.2)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>>
    阅读全文 »

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment