前几篇文章我们介绍了,分析需求,生成代码,生成流程图,序列图等汽车软件开发设计中的常见工作步骤,今天我们讲下汽车软件测试中怎么使用大模型,如何用千问生成用例,具体操作步骤如下:

提示词:

车速自动闭锁

使能条件(a&b&c&d&e&f) a. 电源状态为 ON(PowerMode = ON) b. 主驾门锁反馈开关为解锁状态 c. 四门关闭(CAN:((LHFdoorSts)&(LHRdoorSts)&(RHFdoorSts)&( RHRdoorSts))=0x0:Close) d. 大屏设置自动落锁功能开启(ICC_AutolockSts =0x1: Autolock mode) e. 配置字:车速自动上锁=0x1 存在 f. 热失控无效(BMS_HVBattThermRunaway !=0x1:warning) 触发条件(a) a. 车速由小于 15km/h 到大于 15km/h ( VehicleSpeedVSOSig ; VehicleSpeedVSOSigValidData =0x0:Valid) 执行输出(a&b) a. FLZCU 输出 200ms±50ms 驱动左前/左后门锁电机,执行左前/左后门闭锁; b. FLZCU 发送 CAN 信号(CentralLockingReq =0x2:lock)

为这段需求生成测试用例,续覆盖需求所有控制逻辑条目,用例设计方法需考虑基于需求测试,边界值,等价类,等用例设计方法

千问回复:

为了全面测试上述车速自动闭锁功能,我们需要设计一套测试用例来确保每一个使能条件、触发条件以及执行输出都能得到充分验证。下面是一系列基于不同测试方法设计的测试用例:

1. 基于需求的测试用例

  • 用例1: 验证正常情况下自动闭锁功能
    • 预设条件:
      • 电源状态 ON
      • 主驾门解锁
      • 四门关闭
      • 自动落锁功能开启
      • 车速自动上锁配置有效
      • 热失控无效
    • 操作步骤:
      • 将车辆速度从静止加速至16km/h
    • 预期结果:
      • 左前/左后门锁电机驱动200ms±50ms闭锁
      • FLZCU发送CAN信号(CentralLockingReq = 0x2:lock)

2. 边界值测试

  • 用例2: 车速刚好达到触发阈值

    • 预设条件同上
    • 操作步骤:
      • 将车辆速度设定为15km/h
      • 再次加速至16km/h
    • 预期结果: 闭锁动作不应发生
  • 用例3: 车速刚超过触发阈值

    • 操作步骤:
      • 将车辆速度设定为16km/h
    • 预期结果: 触发自动闭锁功能
  • 用例4: 车速远超触发阈值

    • 操作步骤:
      • 将车辆速度直接加速至25km/h
    • 预期结果: 同样触发自动闭锁功能

3. 等价类测试

  • 用例5: 自动落锁功能未开启

    • 预设条件:
      • 所有其他条件满足
      • 自动落锁功能关闭 (ICC_AutolockSts = 0x0: Off)
    • 操作步骤:
      • 将车辆速度从静止加速至16km/h
    • 预期结果: 不触发自动闭锁
  • 用例6: 任意一扇门未关闭

    • 预设条件:
      • 所有其他条件满足
      • 任一门(例如LHFdoor)开启
    • 操作步骤同用例1
    • 预期结果: 不触发自动闭锁

4. 异常情况测试

  • 用例7: 热失控警告状态

    • 预设条件:
      • 所有其他条件满足
      • 热失控状态为警告 (BMS_HVBattThermRunaway = 0x1: warning)
    • 操作步骤同用例1
    • 预期结果: 不触发自动闭锁
  • 用例8: 电源状态OFF

    • 预设条件:
      • 所有其他条件满足
      • 电源状态为OFF
    • 操作步骤同用例1
    • 预期结果: 不触发自动闭锁

通过这些测试用例的设计,我们可以全面地验证车速自动闭锁功能的各个控制逻辑条目,确保其在各种条件下均能正确响应。

哇呜,太牛了,基本可以跟工程师写的媲美了,甚至超越了初级工程师的水平。

接下来我们看看测试用例的覆盖率如何,分析下覆盖率:

提示词:

分析下以上的测试用例覆盖率是否满足要求

千问回复:

根据上述测试用例的设计,我们已经覆盖了车速自动闭锁功能的多个关键方面,包括正常流程、边界条件、功能开关状态、异常情况等。下面是对这些测试用例覆盖情况的分析:

  1. 使能条件覆盖:

    • 电源状态ON:在所有用例中均为预设条件,得到覆盖。
    • 主驾门解锁状态:预设条件中包含,已覆盖。
    • 四门关闭:通过用例6专门测试了任意一扇门未关闭的情况,间接证明了四门均需关闭的逻辑,覆盖了关门的全部状态(全关与非全关)。
    • 自动落锁功能开启:用例5针对此条件进行了否定测试,用例1测试了开启情况,覆盖了两种状态。
    • 车速自动上锁配置:作为预设条件之一,所有用例中均有涉及。
    • 热失控无效:用例7专门测试了热失控警告状态,覆盖了此异常情况。
  2. 触发条件覆盖:

    • 车速由小于15km/h到大于15km/h:用例2、3、4分别测试了车速等于、稍高于、远高于阈值的情况,确保了车速触发条件的全面覆盖,包括边界值。
  3. 执行输出覆盖:

    • FLZCU输出门锁电机驱动及CAN信号发送:在用例1和理论上所有车速超过15km/h且满足使能条件的情况下,都预期会发生执行输出,虽然具体测试用例中没有单独列出更多输出变化的测试,但逻辑上只要触发条件满足,执行输出的验证就隐含在了功能验证之中。
  4. 异常处理与边界条件:

    • 边界值:车速的边界条件(15km/h)通过多个用例进行了详尽测试。
    • 功能开关和异常状态:通过不同的用例设计,覆盖了功能开启关闭的状态以及异常情况如热失控警告。

综上所述,这些测试用例在很大程度上满足了对车速自动闭锁功能的测试覆盖率要求,覆盖了使能条件、触发条件、执行输出以及异常处理的各个方面。然而,为了达到更高的覆盖率,还可以考虑以下几个方面进行补充:

  • 更细粒度的边界值测试:比如测试车速刚好等于15km/h时的不同时间点(持续时间),确保系统稳定识别。
  • 重复性测试:在不同速度点反复进行测试,验证系统的稳定性和可靠性。
  • 环境因素影响:如果适用,可以考虑温度、湿度等环境因素对系统的影响。
  • 并发条件测试:比如同时考虑车门开关和车速变化的并发情况,确保系统能够正确响应。

通过这些补充测试,可以进一步提升测试的全面性和深入程度,确保软件质量。

以上回答,对覆盖率做了一些分析,分析的还是恨到位的,可以很好地辅助我们做测试用例的评审。

通常的用例肯定是excel格式的,我们还希望千问能帮我们把用例转化成excel格式的,接下来我让千问写一段脚本来实现这个功能,

提示词:

写一个python程序,将以上的测试用例内容写入到Excel中,第一列为:用例标题(用例的测试目的概括),第二列为:预设条件,第三列为操作步骤,第四列为预期结果,请帮我输出实现这个功能的python代码

千问回复:

要完成这个任务,我们可以使用Python的pandas库来创建Excel文件。首先,确保你已经安装了pandas和openpyxl(用于写入Excel文件)。如果没有安装,可以通过pip安装:

pip install pandas openpyxl

接下来是实现你需求的Python代码示例:

import pandas as pd

# 定义测试用例数据
test_cases = [
    {
        "用例标题": "验证正常情况下自动闭锁功能",
        "预设条件": "电源状态 ON, 主驾门解锁, 四门关闭, 自动落锁功能开启, 车速自动上锁配置有效, 热失控无效",
        "操作步骤": "将车辆速度从静止加速至16km/h",
        "预期结果": "左前/左后门锁电机驱动200ms±50ms闭锁, FLZCU发送CAN信号(CentralLockingReq =0x2:lock)"
    },
    # 添加其他用例...
    # 请按照上面的格式继续添加剩余的测试用例数据
    # ...
]

# 使用pandas创建DataFrame
df = pd.DataFrame(test_cases)

# 写入Excel文件
output_file = "test_cases.xlsx"
df.to_excel(output_file, index=False)

print(f"测试用例已成功写入到 {output_file}")

请注意,我只提供了一个测试用例作为示例,你需要按照上述格式手动添加或通过循环结构动态生成其余的测试用例数据。上述代码定义了一个简单的列表,其中每个元素是一个字典,代表一个测试用例的详细信息,然后使用pandas.DataFrame将其转换为表格形式,并保存为Excel文件。

记得根据实际需要补充完整所有测试用例的数据。

下一步我们需要在做一个步骤就是把上边的用例转化成程序里

# 定义测试用例数据
4test_cases = [
5    {
6        "用例标题": "验证正常情况下自动闭锁功能",
7        "预设条件": "电源状态 ON, 主驾门解锁, 四门关闭, 自动落锁功能开启, 车速自动上锁配置有效, 热失控无效",
8        "操作步骤": "将车辆速度从静止加速至16km/h",
9        "预期结果": "左前/左后门锁电机驱动200ms±50ms闭锁, FLZCU发送CAN信号(CentralLockingReq =0x2:lock)"
10    },
11    # 添加其他用例...
12    # 请按照上面的格式继续添加剩余的测试用例数据
13    # ...
14]

换成上边生成的用例的数据,我们写段提示词,让千问给我们转化一下:

 提示词:

  1. 基于需求的测试用例 用例1: 验证正常情况下自动闭锁功能 预设条件: 电源状态 ON 主驾门解锁 四门关闭 自动落锁功能开启 车速自动上锁配置有效 热失控无效 操作步骤: 将车辆速度从静止加速至16km/h 预期结果: 左前/左后门锁电机驱动200ms±50ms闭锁 FLZCU发送CAN信号(CentralLockingReq = 0x2:lock)
  2. 边界值测试 用例2: 车速刚好达到触发阈值

预设条件同上 操作步骤: 将车辆速度设定为15km/h 再次加速至16km/h 预期结果: 闭锁动作不应发生 用例3: 车速刚超过触发阈值

操作步骤: 将车辆速度设定为16km/h 预期结果: 触发自动闭锁功能 用例4: 车速远超触发阈值

操作步骤: 将车辆速度直接加速至25km/h 预期结果: 同样触发自动闭锁功能 3. 等价类测试 用例5: 自动落锁功能未开启

预设条件: 所有其他条件满足 自动落锁功能关闭 (ICC_AutolockSts = 0x0: Off) 操作步骤: 将车辆速度从静止加速至16km/h 预期结果: 不触发自动闭锁 用例6: 任意一扇门未关闭

预设条件: 所有其他条件满足 任一门(例如LHFdoor)开启 操作步骤同用例1 预期结果: 不触发自动闭锁 4. 异常情况测试 用例7: 热失控警告状态

预设条件: 所有其他条件满足 热失控状态为警告 (BMS_HVBattThermRunaway = 0x1: warning) 操作步骤同用例1 预期结果: 不触发自动闭锁 用例8: 电源状态OFF

预设条件: 所有其他条件满足 电源状态为OFF 操作步骤同用例1 预期结果: 不触发自动闭锁

将以上这些用例的格式转化成以下格式:

test_cases = [ { "用例标题": "验证正常情况下自动闭锁功能", "预设条件": "电源状态 ON, 主驾门解锁, 四门关闭, 自动落锁功能开启, 车速自动上锁配置有效, 热失控无效", "操作步骤": "将车辆速度从静止加速至16km/h", "预期结果": "左前/左后门锁电机驱动200ms±50ms闭锁, FLZCU发送CAN信号(CentralLockingReq =0x2:lock)" }, # 添加其他用例... # 请按照上面的格式继续添加剩余的测试用例数据 # ... ]

千问回复:


Python

1test_cases = [
2    {
3        "用例标题": "验证正常情况下自动闭锁功能",
4        "预设条件": "电源状态 ON, 主驾门解锁, 四门关闭, 自动落锁功能开启, 车速自动上锁配置有效, 热失控无效",
5        "操作步骤": "将车辆速度从静止加速至16km/h",
6        "预期结果": "左前/左后门锁电机驱动200ms±50ms闭锁, FLZCU发送CAN信号(CentralLockingReq =0x2:lock)"
7    },
8    {
9        "用例标题": "车速刚好达到触发阈值",
10        "预设条件": "电源状态 ON, 主驾门解锁, 四门关闭, 自动落锁功能开启, 车速自动上锁配置有效, 热失控无效",
11        "操作步骤": "将车辆速度设定为15km/h, 再次加速至16km/h",
12        "预期结果": "闭锁动作不应发生"
13    },
14    {
15        "用例标题": "车速刚超过触发阈值",
16        "预设条件": "电源状态 ON, 主驾门解锁, 四门关闭, 自动落锁功能开启, 车速自动上锁配置有效, 热失控无效",
17        "操作步骤": "将车辆速度设定为16km/h",
18        "预期结果": "触发自动闭锁功能"
19    },
20    {
21        "用例标题": "车速远超触发阈值",
22        "预设条件": "电源状态 ON, 主驾门解锁, 四门关闭, 自动落锁功能开启, 车速自动上锁配置有效, 热失控无效",
23        "操作步骤": "将车辆速度直接加速至25km/h",
24        "预期结果": "同样触发自动闭锁功能"
25    },
26    {
27        "用例标题": "自动落锁功能未开启",
28        "预设条件": "电源状态 ON, 主驾门解锁, 四门关闭, 自动落锁功能关闭 (ICC_AutolockSts = 0x0: Off), 车速自动上锁配置有效, 热失控无效",
29        "操作步骤": "将车辆速度从静止加速至16km/h",
30        "预期结果": "不触发自动闭锁"
31    },
32    {
33        "用例标题": "任意一扇门未关闭",
34        "预设条件": "电源状态 ON, 主驾门解锁, 任一门(例如LHFdoor)开启, 自动落锁功能开启, 车速自动上锁配置有效, 热失控无效",
35        "操作步骤": "将车辆速度从静止加速至16km/h",
36        "预期结果": "不触发自动闭锁"
37    },
38    {
39        "用例标题": "热失控警告状态",
40        "预设条件": "电源状态 ON, 主驾门解锁, 四门关闭, 自动落锁功能开启, 车速自动上锁配置有效, 热失控状态为警告 (BMS_HVBattThermRunaway = 0x1: warning)",
41        "操作步骤": "将车辆速度从静止加速至16km/h",
42        "预期结果": "不触发自动闭锁"
43    },
44    {
45        "用例标题": "电源状态OFF",
46        "预设条件": "电源状态 OFF, 主驾门解锁, 四门关闭, 自动落锁功能开启, 车速自动上锁配置有效, 热失控无效",
47        "操作步骤": "将车辆速度从静止加速至16km/h",
48        "预期结果": "不触发自动闭锁"
49    }
50]

以上就是您要求的测试用例列表,按照指定的格式进行了整理和补充。

之后把上边这段程序,替换之前的程序中test_cases这段,修改后的程序如下:

import pandas as pd

# 定义测试用例数据
test_cases = [
    {
        "用例标题": "验证正常情况下自动闭锁功能",
        "预设条件": "电源状态 ON, 主驾门解锁, 四门关闭, 自动落锁功能开启, 车速自动上锁配置有效, 热失控无效",
        "操作步骤": "将车辆速度从静止加速至16km/h",
        "预期结果": "左前/左后门锁电机驱动200ms±50ms闭锁, FLZCU发送CAN信号(CentralLockingReq =0x2:lock)"
    },
    {
        "用例标题": "车速刚好达到触发阈值",
        "预设条件": "电源状态 ON, 主驾门解锁, 四门关闭, 自动落锁功能开启, 车速自动上锁配置有效, 热失控无效",
        "操作步骤": "将车辆速度设定为15km/h, 再次加速至16km/h",
        "预期结果": "闭锁动作不应发生"
    },
    {
        "用例标题": "车速刚超过触发阈值",
        "预设条件": "电源状态 ON, 主驾门解锁, 四门关闭, 自动落锁功能开启, 车速自动上锁配置有效, 热失控无效",
        "操作步骤": "将车辆速度设定为16km/h",
        "预期结果": "触发自动闭锁功能"
    },
    {
        "用例标题": "车速远超触发阈值",
        "预设条件": "电源状态 ON, 主驾门解锁, 四门关闭, 自动落锁功能开启, 车速自动上锁配置有效, 热失控无效",
        "操作步骤": "将车辆速度直接加速至25km/h",
        "预期结果": "同样触发自动闭锁功能"
    },
    {
        "用例标题": "自动落锁功能未开启",
        "预设条件": "电源状态 ON, 主驾门解锁, 四门关闭, 自动落锁功能关闭 (ICC_AutolockSts = 0x0: Off), 车速自动上锁配置有效, 热失控无效",
        "操作步骤": "将车辆速度从静止加速至16km/h",
        "预期结果": "不触发自动闭锁"
    },
    {
        "用例标题": "任意一扇门未关闭",
        "预设条件": "电源状态 ON, 主驾门解锁, 任一门(例如LHFdoor)开启, 自动落锁功能开启, 车速自动上锁配置有效, 热失控无效",
        "操作步骤": "将车辆速度从静止加速至16km/h",
        "预期结果": "不触发自动闭锁"
    },
    {
        "用例标题": "热失控警告状态",
        "预设条件": "电源状态 ON, 主驾门解锁, 四门关闭, 自动落锁功能开启, 车速自动上锁配置有效, 热失控状态为警告 (BMS_HVBattThermRunaway = 0x1: warning)",
        "操作步骤": "将车辆速度从静止加速至16km/h",
        "预期结果": "不触发自动闭锁"
    },
    {
        "用例标题": "电源状态OFF",
        "预设条件": "电源状态 OFF, 主驾门解锁, 四门关闭, 自动落锁功能开启, 车速自动上锁配置有效, 热失控无效",
        "操作步骤": "将车辆速度从静止加速至16km/h",
        "预期结果": "不触发自动闭锁"
    }
]

# 使用pandas创建DataFrame
df = pd.DataFrame(test_cases)

# 写入Excel文件
output_file = "test_cases.xlsx"
df.to_excel(output_file, index=False)

print(f"测试用例已成功写入到 {output_file}")

 

运行以上程序,生成test_cases.xlsx文件

打开test_cases.xlsx文件,调整下格式,如下图:

 

好了到此我们就完成了用例的生成,前后也就5,6分钟的时间,就完成了,效率高的不行,有更多的时间,享受生活了,朋友们,赶快用起来吧。

更多推荐