当前位置: 首页 > web >正文

AIGC(生成式AI)试用 31 -- AI做软件程序测试 2

    接上文 AIGC(生成式AI)试用 30 -- AI做软件程序测试 1

  • 整合测试项
  • 提问并输出测试用例
  • 思考并调整提问方式,为完整的输年程序测试提问准备

- 再次对需求提问 --> 实际是之前的提问记录找不到了,不过有新发现;不妨后续再对需求提问

> 需求:读入txt文件,过滤文件有关年记录
    0)读入txt文件
    1)以“。”,中文句号,为界区分一句,最小统计单位
    2)年格式:YYYY,4位
    3)输出:YYYY:所在句子内容
    4)说明
          -  一句中包含多个年的,以“,”,中文逗号连接
          - 剔除句中的非文字内容:换行符,非正常的标号等
          - 按行输出过滤到的有关年记录
> AI提问:需求测试
   根据上述需求
   1)使用列表形式对软件需求进行分解、陈述
   2)指出需求定义中描述不清晰之处
   3)补充未明确定义的隐式需求

个人理解:
1) 输出格式更美观,使得输也逻辑更清晰

2) 新增需求质疑
    - 连续年份及年份可扩展性
    - 大文件及性能
    - 去重排序 
    - 强化了特殊字符和异常处理         

新增内容,见如下加粗、下划线、斜线标记

AI 也在学习吗?下次提问会更完整、更条理?

文心一言DeepSeek

1)需求分解列表

#

需求描述

输入/输出

0

读取指定路径的txt文件内容

输入:文件路径;输出:字符串形式的文件内容

1

按中文句号"。"分割文本为句子列表

输入:原始文本;输出:句子列表(需处理连续句号/无内容句子)

2

识别句子中的4位年份(YYYY格式)

输入:单个句子;输出:年份列表(需验证4位数字且符合年份逻辑范围)

3

清洗句子中的非文字内容(换行符、异常标号等)

输入:含杂质句子;输出:仅保留中文/标点/数字的纯净句子

4

按格式输出"YYYY:句子内容",多年份用中文逗号连接

输入:年份列表+清洗后句子;输出:格式化字符串(需处理无年份句子的过滤)

5

按行输出所有含年份的记录

输入:所有处理后的记录;输出:逐行打印的文本

2) 需求描述不清晰之处

  - "非正常的标号"定义模糊

   > 未明确"非正常标号"的具体范围(如是否包含数学符号、特殊符号、非标准标点等)

   > 需确认是否保留中文标点(如逗号、顿号)或仅保留基础标点

  - 年份逻辑范围缺失

   > 未说明是否需要验证年份合理性(如1900-2100范围),可能误判"0000"等非实际年份

  - 句子分割边界条件

   > 未定义连续句号(如"。。")或句号后紧跟其他符号(如"。,")的处理方式

   > 未说明空句子(分割后产生)是否过滤

  - 输出格式细节

   > 未明确年份在句中的位置是否影响输出(如是否保留年份在句中的原始位置)

   > 未说明多个年份在句中的出现顺序是否需与输出顺序一致

3) 隐式需求补充

   - 文件编码处理

     需自动检测文件编码(如UTF-8/GBK),避免因编码错误导致乱码

   - 性能优化

     对大文件需支持流式读取,避免一次性加载全部内容导致内存溢出

   - 年份去重

    > 同一句子中重复出现的相同年份需去重(如"2020年2020年"应合并为单个"2020")

   - 上下文保留

    > 输出句子需保留原始标点和格式(除明确需清洗的杂质外),避免破坏语义

   - 错误处理

    > 文件不存在时需给出明确错误提示

    > 非文本文件需进行类型校验

   - 扩展性设计

    > 可配置是否启用年份范围过滤(如仅提取1900-当前年份)

    > 支持自定义分割符(如同时支持"。"和"!"作为句子结束符)

### **1. 软件需求分解与陈述**  
以下需求以功能模块和规则形式分解:  

| **需求编号** | **需求描述**                                                                 |  
|--------------|-----------------------------------------------------------------------------|  
| **F0**       | **文件读取**:读取用户指定的`.txt`文件,确保编码兼容性(如UTF-8)。                    |  
| **F1**       | **分句规则**:以中文句号“。”为分隔符,将文本拆分为独立句子。                               |  
| **F2**       | **年份匹配**:识别句子中的4位数字年份(YYYY格式,如`1998`或`2023`),排除非4位数字(如`99年`)。 |  
| **F3**       | **内容清洗**:剔除句子中的换行符、非文字符号(如乱码、特殊标点`#&*`)。                        |  
| **F4**       | **输出格式**:按行输出`YYYY: [句子内容]`,一句含多个年份时,年份以中文逗号“,”连接(如`1998,2023: ...`)。 |  

---

### **2. 需求描述不清晰之处**  
#### **需明确的问题**:  
1. **年份格式边界**:  
   - 是否包含带“年”字的表述(如`2023年`)?需求中仅提及“YYYY”可能需补充正则表达式规则。  
   - 是否排除非公元年份(如`3000`这类未来不合理值)?  

2. **分句规则细节**:  
   - 是否处理嵌套句号(如`“这是一个测试。”他说。`)?需定义是否拆分此类情况。  
   - 是否忽略非句号结尾的段落(如以感叹号结尾但包含年份)?  

3. **非文字内容范围**:  
   - “非正常标号”的具体定义(如是否保留常见标点`!?、`)?需明确允许保留的符号列表。  

4. **多年份连接逻辑**:  
   - 若原句已含中文逗号,是否合并到输出中(如`1998,2023: 会议于1998年,2023年召开`)?需避免混淆。  

---

### **3. 隐式需求补充**  
#### **需额外定义的规则**:  
1. **输入限制**:  
   - 文件大小限制(如支持GB级文件)或编码自动检测逻辑。  

2. **去重与排序**:  
   - 是否合并相同年份的句子?是否按年份顺序输出?  

3. **容错处理**:  
   - 对非法文件(如非文本文件)的报错机制,或对部分乱码句子的跳过处理。  

4. **性能要求**:  
   - 处理速度要求(如每秒处理X条句子),尤其是大文件场景。  

5. **扩展性**:  
   - 是否支持自定义年份格式(如`YYYY-MM`)或跨语言文本(中英文混合)?  

---

### **总结建议**  
建议在需求文档中补充上述模糊点的明确定义(如正则表达式示例、标点保留列表),并增加异常处理与性能基线说明,以提升实现可靠性。

- 强化测试大纲 --> 定义测试大纲、强化输出格式(区别测试点、测试项、测试数据)

个人理解:
1. 基本测试项完整,各测试项对应的测试点描述准确 -- 参考粗体标记
2. 不同AI工具汇总后的测试大纲=测试项+测试点,更完整 -- 是否有遗漏呢?
3. 结果的条理性、逻辑性需要按个自习惯进行调整
AI提问:
测试大纲是对测试对象的梳理,包括测试项、测试点的,及测试思路备注。
1. 输出以上需求的测试项和测试点,不需要标注测试预期结果
2. 输出样例,测试项:文本输入,测试点:1)非txt文件;2)大于1M的文件
3. 输出格式,表格形式输出:第1列为测试项,第2列为测试点
文心一言DeepSeek

测试大纲:需求测试项与测试点(表格形式)

测试项

测试点

文件输入处理

1. 非txt文件(如.docx/.pdf等)

2. 大于1MB的txt文件

3. 不存在的文件路径

4. 不同编码格式文件(GBK/UTF-8/ANSI)

句子分割逻辑

1. 连续句号(如"。。。。")

2. 句号后紧跟其他符号(如"。,")

3. 无内容句子(如" 。")

年份识别规则

1. 有效4位年份(如"2025年")

2. 非4位数字(如"123"、"12345")

3. 边界值年份(如"0000"、"2100")

4. 年份与其他数字组合(如"2020abc")

句子清洗规则

1. 换行符(\n、\r\n)

2. 异常标号(如"①②③")

3. 混合特殊符号(如"*@#$")

输出格式规范

1. 多年份合并输出(如"2020,2021")

2. 无年份句子的过滤

3. 年份与句子的原始顺序保留

隐式需求验证

1. 同一句子中重复年份的去重

2. 大文件(如10万行)的性能压力测试

3. 清洗后保留关键标点(如逗号、句号)

说明:

  1. 表格结构:第1列为测试项(功能模块),第2列为具体测试点(覆盖正常/异常场景)。

  2. 扩展性:可根据实际测试深度补充测试点(如增加更多边界值或特殊符号)。

  3. 执行建议:每个测试点需单独设计测试用例,通过日志或断言验证程序行为。

### **测试项与测试点表格**  

| **测试项**              | **测试点**                                                                                     |  
|-------------------------|-----------------------------------------------------------------------------------------------|  
| **文本输入**            | 1)非txt文件,2)大于1GB的文件,3)非UTF-8编码文件,4)非法文件路径                          |  
| **分句功能**            | 1)以“。”分句,2)嵌套句号处理,3)非句号结尾段落,4)空文件或仅换行符                      |  
| **年份识别与提取**      | 1)合法4位年份提取,2)排除非4位数字,3)含“年”字的处理4)多年份逗号连接,5)排除非公元年份 |  
| **文本清洗规则**        | 1)移除换行符/制表符,2)清除特殊符号,3)处理乱码文本,4)保留合法标点及数字                |  
| **结果输出格式**        | 1)单年份格式,2)多年份逗号连接,3)原句逗号干扰,4)输出编码与行写入                      |  
| **异常处理与容错**      | 1)部分乱码句子处理,2)年份识别冲突,3)内存不足终止                                        |  
| **性能测试(隐式需求)**| 1)大文件处理速度,2)多线程/并发处理能力                                                   |  

---

### **样例说明**  
| 测试项       | 测试点                     |  
|--------------|---------------------------|  
| **文本输入** | 1)非txt文件,2)大于1M文件 |

- 手工分解的测试大纲

> 需求:读入txt文件,过滤文件有关年记录
    0)读入txt文件
    1)以“。”,中文句号,为界区分一句,最小统计单位
    2)年格式:YYYY,4位
    3)输出:YYYY:所在句子内容
    4)说明
          -  一句中包含多个年的,以“,”,中文逗号连接
          - 剔除句中的非文字内容:换行符,非正常的标号等
          - 按行输出过滤到的有关年记录
1. AI很好的帮我们拓展了思路,补充了不足之处
2. 个人思路输出 -> AI辅助 -> 个人思路整理、补充、再拓展
测试项测试点
文件输入1. 满足要求的文件:txt
2. 不满足要求的文件
    1) 非txt文件
    2) 大文件
        - 容量大于1G?
        - 总行数超过10万行?
    4) 特殊编码文件
    5) 不存在的文件
句子识别1. 标准句子:两个句号“。”之间的内容
2. 特殊句子
    1) 段落首句:无前句号
    2) 省略号。。。。。。
    3) ! ? 结尾
    4) 两句号间包含特殊字符 \n,\t, \r
    5) 无年份句子
年份识别1. 4位年份
    1) YYYY
    2) 一句中包含多个年份
    3) 一句中年份有重复
2. 非标准年份: XX世纪,XX年代,YYYY-YYYY,XX年,公元前223年
4. 非年份
    1) 非4位数字: 小于4位,大于4位
    2) 4位数字但非年份: XXXX吨
结果输出1. 输出格式: 年份:内容
2. 年份格式:
    1) 单年份输出
    2) 多年份输出: 年份连接符?句中年份排序?
    3) 重复年份输出: 多次输出?输出1次?
    4) 整体输出年份排序: 原序?时间顺序?
3. 输出方式
    1) 控制台输出
    2) 文件输出
程序展示1. 控制台
2. GUI

- 测试用例

个人理解:
1. 格式没有问题
2. 用例覆盖不完整,未有效利用大纲所整理的测试项和测试点:
    - 测试项覆盖
    - 测试点覆盖不足:测试数据不足
3. 预期结果仅描述,未能体现实际程序实现结果,需按实际再加工
AI提问:
测试用例是对测试执行步骤的描述,基本元素包括 序号、测试环境、测试项、测试目的、测试数据、测试步骤、预期结果、设计人、设计时间、实际结果、执行人、执行时间
1. 输出以上需求的测试用例
2. 输出样例,序号、测试项、测试目的、测试数据、测试步骤、预期结果
3. 输出格式,表格形式输出
文心一言DeepSeek

测试用例(表格形式)

序号

测试项

测试目的

测试数据/文件

测试步骤

预期结果

1

文件输入

验证非txt文件处理

test.jpg(非txt文件)

1. 运行程序并输入test.jpg
2. 观察系统提示

系统提示“仅支持txt文件”并退出

2

文件输入

验证大文件处理能力

生成1.5MB的txt文件

1. 运行程序并输入大文件
2. 记录处理时间

系统正常处理文件,无内存溢出

3

句子分割

验证多句号分割

输入:“句子。句子。句子。”

1. 分割句子
2. 统计分割后的句子数量

分割为3个独立句子

4

句子分割

验证换行符处理

输入:“句子\n。句子”

1. 分割句子
2. 检查分割结果

分割为2个句子:“句子”和“句子”

5

年份提取

验证标准年份识别

输入:“2020年是关键年份。”

1. 提取年份
2. 验证输出格式

输出:“2020:2020年是关键年份。”

6

年份提取

验证非年份数字过滤

输入:“电话:2020-1234”

1. 提取年份
2. 检查是否提取2020

不提取2020(假设规则排除非年份数字)

7

非文字内容过滤

验证特殊符号剔除

输入:“2020@年#数据”

1. 过滤非文字内容
2. 检查输出句子

输出句子为“2020年数据”

8

输出格式

验证多年份合并

输入:“2020年和2021年。”

1. 提取年份并合并
2. 检查输出格式

输出:“2020,2021:2020年和2021年。”

9

边界条件

验证最小年份处理

输入:“0001年是起点。”

1. 提取年份
2. 检查是否识别0001

提取0001(若规则允许)

10

性能与稳定性

验证大文件稳定性

生成10MB的txt文件

1. 运行程序并输入大文件
2. 监控内存和CPU占用

系统稳定运行,无崩溃或异常退出

测试样例说明

  • 测试项:文件输入

    • 测试目的:验证系统对非txt文件的拒绝能力。

    • 测试数据:任意非txt文件(如.jpg、.exe)。

    • 预期结果:明确提示文件格式错误,不执行后续操作。

  • 测试项:句子分割

    • 测试目的:验证含换行符的句子分割逻辑。

    • 测试数据:这是2020年\n。这是2021年

    • 预期结果:分割为两句话,年份分别关联到对应句子。

  • 测试项:年份提取

    • 测试目的:验证粘连字符的年份提取。

    • 测试数据:项目始于2020abc年

    • 预期结果:提取2020(若规则允许部分匹配)或无提取(若要求严格独立)。

  • 测试项:输出格式

    • 测试目的:验证多年份合并输出。

    • 测试数据:2020年和2021年是关键年份。

    • 预期结果:年份合并为“2020,2021”,句子内容完整保留。

### 测试用例表格

| 序号 | 测试项         | 测试目的                     | 测试数据                                                                 | 测试步骤                                                                 | 预期结果                                                                                     |
|------|----------------|----------------------------|------------------------------------------------------------------------|------------------------------------------------------------------------|------------------------------------------------------------------------------------------|
| 1    | 文件输入       | 验证非txt文件处理能力         | 文件名为`test.docx`,内容包含年份和中文句号                               | 1. 输入`test.docx`;<br>2. 执行程序                                     | 提示“仅支持txt文件”或直接忽略                                                                |
| 2    | 文件输入       | 验证大文件(>1MB)处理能力    | 生成一个1.5MB的txt文件,内容包含有效年份和正常句子                         | 1. 输入大文件;<br>2. 执行程序                                         | 程序正常处理并输出结果,无卡顿或崩溃                                                         |
| 3    | 句子分割       | 验证多中文句号分割准确性      | 文本:`2023年。天气晴朗。1999年。`                                       | 1. 输入文本;<br>2. 执行分割                                            | 分割为3个句子:`2023年`、`天气晴朗`、`1999年`                                                |
| 4    | 句子清洗       | 验证特殊符号和换行符清洗      | 文本:`2020年#数据\n*测试*`                                               | 1. 输入文本;<br>2. 执行清洗                                            | 清洗后句子为`2020年数据测试`                                                                 |
| 5    | 年份提取       | 验证全角数字年份识别          | 文本:`全角年份:2023年`                                              | 1. 输入文本;<br>2. 提取年份                                            | 识别出年份`2023`(需明确是否支持全角)或忽略                                               |
| 6    | 年份提取       | 排除无效四位数(如0000)      | 文本:`无效年份:0000年`                                                  | 1. 输入文本;<br>2. 提取年份                                            | 不提取`0000`或根据需求标记为无效                                                             |
| 7    | 结果格式化     | 验证多年份逗号连接顺序        | 文本:`2008年北京,2022年冬奥会`                                          | 1. 输入文本;<br>2. 提取年份并格式化                                     | 输出`2008,2022: 2008年北京,2022年冬奥会`                                                   |
| 8    | 输出顺序与格式 | 验证输出与原文顺序一致        | 文本:`1997年香港回归。2001年加入WTO。`                                   | 1. 输入文本;<br>2. 执行程序                                            | 输出顺序为`1997: ...`在前,`2001: ...`在后                                                   |
| 9    | 异常处理       | 验证文件路径不存在时的处理    | 输入路径为`C:\fake.txt`                                                   | 1. 输入错误路径;<br>2. 执行程序                                        | 提示“文件不存在”或静默忽略                                                                   |

---

### 样例说明(根据用户要求补充)

| 序号 | 测试项       | 测试目的                 | 测试数据             | 测试步骤                   | 预期结果             |
|------|--------------|------------------------|--------------------|--------------------------|--------------------|
| 1    | 文本输入     | 验证非txt文件处理       | 输入`test.docx`    | 1. 执行程序              | 提示“不支持此格式”   |

---

### 扩展说明
1. **测试环境**:默认需标注操作系统(如Windows 11)、Python版本(如3.9)、依赖库版本等,但用户未明确要求,此处省略。  
2. **实际结果/执行人**:需在测试执行阶段补充填写。  
3. **隐式逻辑**:  
   - 若年份嵌入非文字内容(如`【2020】`),需明确是否提取。  
   - 若句子清洗后为空(如`####`),是否跳过输出。

http://www.xdnf.cn/news/1439.html

相关文章:

  • JEnv-for-Windows​管理JDK版本
  • web刷题笔记
  • 基于deepseek的模型微调
  • HCIA-Access V2.5_18_网络管理基础_3_ 华为接入网络网络管理系统概览
  • 2025年04月23日Github流行趋势
  • Byte-Buddy系列 - 第3讲 byte-buddy与jacoco agent冲突问题
  • Qt Creator中自定义应用程序的可执行文件图标
  • node.js 实战——(path模块 知识点学习)
  • 计算机视觉基础
  • 编程实现ESP8266分别作为服务端 客户端
  • 集结号海螺捕鱼服务器调度与房间分配机制详解:六
  • nginx部署前端项目时,正常访问前端页面成功后,浏览器刷新报404解决访问
  • ​​OSPF核心机制精要:选路、防环与设计原理​
  • 一篇文章学会开发第一个ASP.NET网页
  • 金融租赁质检的三重业务困境 质检LIMS系统的四大价值赋能场景
  • “时间”,在数据处理中的真身——弼马温一般『无所不能』(DeepSeek)
  • MCU开发学习记录11 - ADC学习与实践(HAL库) - 单通道ADC采集、多通道ADC采集、定时器触发连续ADC采集 - STM32CubeMX
  • Python jsonpath库终极指南:json数据挖掘的精准导航仪
  • 消息中间件RabbitMQ02:账号的注册、点对点推送信息
  • MySQL运算符
  • kafka安装、spark安装
  • 5.学习笔记-SpringMVC(P53-P60)
  • Spring Boot 的配置加载顺序
  • Elasticsearch学习
  • 【Hive入门】Hive基础操作与SQL语法:DDL操作全面指南
  • 国内ip地址怎么改?详细教程
  • AI搜索AI SEO排名:国际采购商的搜索行为正在被AI重塑
  • 高防IP是什么
  • 批量处理多个 Word 文档:插入和修改页眉页脚,添加页码的方法
  • 什么是量子计算?它能做什么?