测试

概述

  • 经典定义:在规定的条件下对程序进行操作,以发现错误,对软件质量进行评估
  • 对象:程序、数据和文档
  • 目的:发现软件的错误,验证软件是否满足用户需求,并通过分析软件错误产生的原因,以帮助发现当前开发工作所采用的软件过程的缺陷,以便进行软件过程改进。
  • 嵌入式软件的测试工作与台式机上的应用软件的测试工作有许多共同之处,但也有很大区别
    • 嵌入式系统的硬件一般采用专门的测试仪器进行测试
    • 由于嵌入式软件自身的特点,其测试过程相对复杂
    • 与PC软件相比,在测试嵌入式软件时,除了逻辑上的正确性之外,还要看重系统的性能和健壮性
    • 嵌入式软件的一个重要特点就是实时性
    • 嵌入式系统的开发是一个软硬件相互协调、互相反馈和互相测试的过程
Read more »

  1. 安装依赖包

    1
    sudo apt install cifs-utils
  2. 创建本地挂载点

    1
    mkdir ~/windows_share
  3. 手动挂载共享文件夹

    1
    sudo mount -t cifs //<Windows的IP地址>/<共享文件夹名称> /mnt/windows_share -o username=<用户名>,password=<密码>,iocharset=utf8,file_mode=0777,dir_mode=0777
  4. 配置开机自动挂载

    1
    sudo nano /etc/fstab

    最后一行添加

    1
    //<Windows的IP地址>/<共享文件夹名称> /mnt/windows_share cifs username=<用户名>,password=<密码>,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0

自动备份

  1. 创建下命名为的脚本

  2. 配置邮件服务(将备份结果以网易邮件形式通知到管理员)

    1. 安装postfix

      安装过程中选择 Internet Site

    2. 编辑配置文件

      修改/添加以下内容

    3. 配置SMTP认证信息

      写入以下内容

    4. 设置发件人域名

    写入以下内容

  3. 生成数据库文件并设置权限:

    1. 重启Postfix

    2. 测试发送邮件

    3. 可能存在的问题

      • MAIL FROM配置不正确,需要强制修改

        1. 修改postfix配置文件

          添加以下内容

        2. 创建地址映射文件

          写入以下内容

        3. 生成映射数据库

        4. 重启Postfix

  4. 自动运行脚本

  5. 为脚本添加sudo免密码权限

  6. 手动触发脚本执行测试

  7. 说明

    • 备份产生的目录结构为gitlab /(config + logs + data),其中logs是一个空文件夹,此举只是为了方便生成新容器时方便挂载,data包含一个gitlab内置备份功能生成的一个tar文件,config则是从源容器完全移植过来的。
    • backup下会自动生成一个log.txt文件记录备份结果日志。

恢复

Read more »

  • 睿智,得乎静;刚勇,显与动。是故大丈夫处世,必忧思以深远,行决以神速,孤心磨砺以求成也。
  • 万事万物各行其道我又何必庸人自扰。
  • 去寻找全局最优解,而不是局部最优解。
  • 伟人之所以伟大,只是因为我们跪在地上,站起来吧!
  • 先不不喜欢的事情做好才能去做喜欢的事。
  • 故天将降大任于是人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,曾益其所不能。
  • 熬过每一个今天,成功自然会来。
  • 我们能够掌控的是能力,我们无法掌控的是机遇。没有机遇你展现不了能力,没有能力你抓不住机遇。我们能做的只有提升能力,抓住机遇。
  • 成功或失败是上天决定的,前进或停下是我决定的。命定但不注定。
  • 从无所不能,到无所能,到有所能。循此苦旅,以达天际。
  • 人们总会高估一个技术的短期价值,而又低估它的长期价值。所以不要妄想人工智能会即刻改变世界,而又不要忽略我们的世界正被人工智能一点一点改变。

网络攻击

  • 被动攻击:指攻击者从网络上窃听他人的通信内容。通常把这类攻击称为截获
    • 流量分析:是通过持续检测现有网络中的流量变化或者变化趋势,从而得到相应信息的一种被动攻击方式
  • 主动攻击:是指通过一系列的方法,主动地获取向被动攻击对象实施破坏的一种攻击方式
    • 篡改:攻击者故意篡改网络上传送的报文。也包括彻底中断传送的报文
    • 恶意程序:种类繁多,威胁较大的有:计算机病毒、计算机蠕虫、特洛伊木马、逻辑炸弹
    • 拒绝服务:指攻击者向因特网上的某个服务器不停地发送大量分组,使因特网或服务器无法提供正常服务。如:DoS,DDos
Read more »

  1. 生成SSH密钥

    1
    ssh-keygen -t ed25519 -C "your_email@example.com"

    这里可选择是否为公钥设置二级密码

  2. 复制公钥内容

    1
    cat ~/.ssh/id_ed25519.pub

    复制输出的全部内容(以 ssh-ed25519 开头)

  3. 将公钥添加到 GitLab

    1. 登录 GitLab,点击右上角头像 → PreferencesSSH Keys
    2. Key 文本框中粘贴复制的公钥
    3. 填写标题(可选,如 “My Laptop”),点击 Add key
  4. 测试SSH连接

    1
    2
    3
    4
    5
    # gitlab.com应该修改为目标服务器IP
    ssh -T git@gitlab.com

    # 注意:以上命令默认端口号为22,若需要指定端口号,则使用(以2222为例)
    ssh -T -p 2222 git@gitlab.com

    若看到 Welcome to GitLab, @username! 表示成功

  5. 使用SSH克隆项目

    1
    2
    3
    4
    5
    6
    7
    # gitlab.com应该修改为目标服务器IP

    # 默认端口号为 22
    git clone git@gitlab.com:admin_qyd/test1.git

    # 指定端口号为 2222
    git clone git@gitlab.com:admin_qyd/test1.git -c core.sshCommand="ssh -p 2222"

  1. 创建Dockerfile文件

    1
    2
    mkdir gitlab-docker && cd gitlab-docker
    touch Dockerfile
  2. 编写Dockerfile内容

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # 使用GitLab官方镜像作为基础
    FROM gitlab/gitlab-ce:16.10.2-ce.0

    # 设置时区(可选)
    ENV TZ=Asia/Shanghai
    RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

    # 持久化数据目录声明(推荐在运行时挂载)
    VOLUME ["/etc/gitlab", "/var/log/gitlab", "/var/opt/gitlab"]

    # 暴露常用端口
    EXPOSE 80 443 22
  3. 构建Docker镜像

    1
    docker build -t my-gitlab:16.10.2 .
  4. 运行Gitlab容器

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    docker run -d \
    --name gitlab \
    --hostname gitlab.example.com \
    --publish 8080:80 \
    --publish 8443:443 \
    --publish 2222:22 \
    --volume $PWD/gitlab/config:/etc/gitlab \
    --volume $PWD/gitlab/logs:/var/log/gitlab \
    --volume $PWD/gitlab/data:/var/opt/gitlab \
    --shm-size 256m \
    --restart always \
    my-gitlab:16.10.2
    • gitlab.example.com修改为接口IP
    • 端口映射:将容器端口 80/443/22 映射到主机的 8080/8443/2222
    • 数据卷挂载:将 宿主机的数据卷:容器数据卷 进行挂载
      • config: GitLab 配置文件
      • logs: 日志文件
      • data: 应用数据(仓库、数据库等)
    • --shm-size: 解决Sidekiq内存不足问题
    • --hostname: 设置GitLab实例的访问域名
  5. 首次访问设置(设置root用户密码)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    docker exec -it gitlab /bin/bash
    gitlab-rails console
    irb(main):001:0> u=User.where(id:1).first
    => #<User id:1 @root>
    irb(main):002:0> u.password='xxxxx'
    => "xxxxx"
    irb(main):003:0> u.save!
    => true
    irb(main):004:0> exit

环境准备

  1. 安装VMware(这里遇到一个问题:win11与VMware15.5似乎并不兼容吗,百度win11不支持VMware16以下版本)
  2. 安装ubuntu(这里ubuntu的版本需要符合docker的要求)

安装Docker

Read more »