“90岁奶奶都能学会!DeepSeek本地部署教程”!!!

一、DeepSeek简介

DeepSeek是一种基于深度学习的语义搜索技术,能够高效处理非结构化数据并实现精准搜索。它广泛应用于知识管理、企业内搜索和智能客服等场景。

主要特点:

  • 高精度语义搜索: 能够理解用户搜索意图并提供精准的结果。

  • 可定制化: 支持根据场景调整模型参数与训练数据。

  • 支持多种数据类型: 文本、图片、语音等。

  • 技术红利:Deepseek开源免费,本地部署无成本,小白也能上手。

  • 优势:隐私安全+离线运行

二、部署前的准备工作

在开始部署之前,需要完成以下准备工作:

1. 系统要求
  • 操作系统: Linux(推荐Ubuntu 20.04)或Windows 10/11。

  • 建议硬件配置:

    • CPU:Intel i5或以上

    • 内存:16GB及以上

    • 显卡:NVIDIA GPU 8GB以上

    • 存储空间:至少50GB (建议固态硬盘)

2. 软件环境
  • Python版本: Python 3.8或更高。

  • 需要配置好python环境变量。

3.安装部署

(以windows10为例)

1、下载ollama 下载链接:Download Ollama on Windows

验证ollama是否安装完成

2、下载deepseek运行

ollama run deepseek-r1:32b
注意:deepseek有多种版本,我这里用的32b,部署方法一样

3、效果展示 

4、搭配web界面

open-webui,本地大语言模型运行框架。

pip install open-webui
#下载open-webui(需要提前配置好python环境变量)
open-webui serve
#启动open-webui(本地需要提前将大模型跑起来)

浏览器访问:http://localhost:8080

第一次访问需要创建一个账号 效果如图:
 



来源与微信公众号:太白也无奈
 

<think>我们正在讨论软件测试中的两种覆盖标准:条件覆盖(Condition Coverage)和决策覆盖(Decision Coverage,也称为判定覆盖)。根据用户的问题和提供的引用,我们需要明确这两者的区别。 引用分析: [^1] 条件覆盖:关注每个逻辑条件(如布尔表达式中的原子条件)的真假值都被覆盖。 [^2] 决策覆盖:关注整个决策(即整个布尔表达式)的真假结果都被覆盖,但忽略决策内部的子条件是否完全覆盖。 [^3] 提到了条件判定覆盖(C/DC)和修正条件判定覆盖(MC/DC),但用户目前问的是条件覆盖和决策覆盖。 [^4] 决策覆盖属于白盒测试,为布尔值提供决策覆盖,报告布尔表达式的真/假结果,关注有多个结果可能性的控制流语句(如if, while等)。 [^5] 展示了代码覆盖率的可视化,其中黄色表示部分覆盖(可能分支未覆盖),红色表示未执行。 用户问题:条件覆盖和决策覆盖的区别。 回答思路: 1. 定义条件覆盖:针对每个原子条件(atomic condition),要求每个条件取真和假至少一次。 2. 定义决策覆盖:针对整个决策(即整个布尔表达式),要求决策的结果取真和假至少一次(即每个分支至少执行一次)。 3. 区别: - 覆盖的粒度不同:条件覆盖关注更细粒度的原子条件,而决策覆盖关注整个决策的布尔结果。 - 满足条件覆盖不一定满足决策覆盖:例如,在一个由多个条件组成的决策中,即使每个条件都取过真和假,但可能没有组合出整个决策为真和假的情况。 - 满足决策覆盖不一定满足条件覆盖:因为决策覆盖只要求整个决策的真假各一次,而不关心每个条件是否都取过真和假。 4. 举例说明: 考虑一个决策:`if (A && B)` - 原子条件:A 和 B。 - 条件覆盖要求:A为真、A为假、B为真、B为假都要出现。 - 决策覆盖要求:整个表达式为真(即A和B都为真)和整个表达式为假(即A为假或B为假)的情况都要出现。 测试用例设计: - 条件覆盖的测试用例可能为: 用例1: A=true, B=false (覆盖A真,B假) 用例2: A=false, B=true (覆盖A假,B真) (注意:这里已经覆盖了所有条件的真和假,但是整个决策在这两个用例中都是假,没有覆盖到决策为真的情况!所以决策覆盖不满足。) - 决策覆盖的测试用例可能为: 用例1: A=true, B=true (决策为真) 用例2: A=false, B=false (决策为假) (这里覆盖了决策的真和假,但是条件覆盖没有满足:A没有取过假?实际上用例1中A为真,用例2中A为假,B在用例1中为真,用例2中为假,所以这个例子中决策覆盖也同时满足了条件覆盖。但是考虑另一个例子:决策覆盖的用例也可以设计为: 用例1: A=true, B=true (决策为真) 用例2: A=false, B=true (决策为假,因为A为假导致整个表达式为假) 这样,条件B的真和假并没有完全覆盖(B在用例1为真,用例2也为真,没有取假),因此决策覆盖不满足条件覆盖。) 5. 总结:两者关注的层次不同,条件覆盖在原子条件层次,决策覆盖在整个决策层次。因此,它们之间没有包含关系。 根据引用[^2]:决策覆盖不考虑组成条件表达式的各个子条件是否被完全覆盖。 因此,回答如下: </think> ### 条件覆盖与决策覆盖的区别 条件覆盖(Condition Coverage)和决策覆盖(Decision Coverage,又称判定覆盖)是白盒测试中两种不同的代码逻辑覆盖标准,主要区别在于**覆盖粒度和关注点**: #### 1. **覆盖目标不同** - **条件覆盖** 关注代码中每个**原子条件**(布尔表达式的最小单元)的真假取值。 要求:每个原子条件必须至少出现一次 `true` 和一次 `false`。 *示例*: 对于表达式 `(A > 0) && (B < 5)`: - 需覆盖 `A>0=true`, `A>0=false`, `B<5=true`, `B<5=false` (不要求组合后的整体结果)。 - **决策覆盖** 关注**整个判定语句**(如 `if/while` 等控制流)的分支结果。 要求:每个判定语句必须至少执行一次 `true` 分支和一次 `false` 分支。 *示例*: 对于 `if (A>0 && B<5)`: - 需覆盖整个表达式结果为 `true`(执行if块)和 `false`(跳过if块) (不关心子条件的具体取值)[^2]。 #### 2. **覆盖粒度对比** | **维度** | 条件覆盖 | 决策覆盖 | |----------------|--------------------------|--------------------------| | 覆盖对象 | 原子条件(如 `A>0`) | 整个判定(如 `A>0 && B<5`) | | 目标 | 每个条件取真/假 | 每个判定取真/假分支 | | 代码关注点 | 表达式内部的子条件 | 控制流的分支路径 | | 测试强度 | 较细粒度 | 较粗粒度 | #### 3. **关键差异案例** 假设代码: ```python if (A > 0 and B < 5): print("执行分支") ``` - **满足条件覆盖但不满足决策覆盖**的用例: - 用例1:`A=1, B=6` → `A>0=true`, `B<5=false` - 用例2:`A=-1, B=3` → `A>0=false`, `B<5=true` *问题*:两个用例中整个表达式均为 `false`,未覆盖 `true` 分支。 - **满足决策覆盖但不满足条件覆盖**的用例: - 用例1:`A=1, B=3` → 表达式`true` - 用例2:`A=-1, B=6` → 表达式`false` *问题*:`A>0` 取过 `false`,但 `B<5` 仅取 `true`(用例1)和 `false`(用例2),已覆盖决策分支,但条件 `B<5` 未独立验证[^4]。 #### 4. **短路运算的影响** 在含短路运算符(如 `&&`, `||`)的语言中(如Java/C++): - **决策覆盖**可能遗漏未执行的子条件。 *示例*: `if (A>0 && B<5)`,当 `A>0=false` 时,`B<5` 不会执行 → 决策覆盖不强制验证 `B<5=false`。 - **条件覆盖**则明确要求每个子条件独立验证真假。 #### 5. **应用场景** - **条件覆盖**:适合检测原子条件的边界错误(如 `A>0` 误写为 `A>=0`)。 - **决策覆盖**:适合验证程序分支逻辑(如是否遗漏异常分支)[^3][^4]。 > 总结:条件覆盖验证**表达式的组成部分**,决策覆盖验证**控制流路径**。两者互补,常结合为**条件判定覆盖**(Condition/Decision Coverage)以提升测试强度。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李不归

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值