接上文 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、rn)
|
|
|
2. 异常标号(如”①②③”)
|
|
|
3. 混合特殊符号(如”*@#$”)
|
|
输出格式规范
|
1. 多年份合并输出(如”2020,2021″)
|
|
|
2. 无年份句子的过滤
|
|
|
3. 年份与句子的原始顺序保留
|
|
隐式需求验证
|
1. 同一句子中重复年份的去重
|
|
|
2. 大文件(如10万行)的性能压力测试
|
|
|
3. 清洗后保留关键标点(如逗号、句号)
|
说明:
-
表格结构:第1列为测试项(功能模块),第2列为具体测试点(覆盖正常/异常场景)。
-
扩展性:可根据实际测试深度补充测试点(如增加更多边界值或特殊符号)。
-
执行建议:每个测试点需单独设计测试用例,通过日志或断言验证程序行为。
|
### **测试项与测试点表格**
| **测试项** | **测试点** | |————————-|———————————————————————————————–| | **文本输入** | 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占用
|
系统稳定运行,无崩溃或异常退出
|
测试样例说明
-
测试项:文件输入
-
测试项:句子分割
-
测试目的:验证含换行符的句子分割逻辑。
-
测试数据:这是2020年n。这是2021年
-
预期结果:分割为两句话,年份分别关联到对应句子。
-
测试项:年份提取
-
测试项:输出格式
|
### 测试用例表格
| 序号 | 测试项 | 测试目的 | 测试数据 | 测试步骤 | 预期结果 | |——|—————-|—————————-|————————————————————————|————————————————————————|——————————————————————————————| | 1 | 文件输入 | 验证非txt文件处理能力 | 文件名为`test.docx`,内容包含年份和中文句号 | 1. 输入`test.docx`; 2. 执行程序 | 提示“仅支持txt文件”或直接忽略 | | 2 | 文件输入 | 验证大文件(>1MB)处理能力 | 生成一个1.5MB的txt文件,内容包含有效年份和正常句子 | 1. 输入大文件; 2. 执行程序 | 程序正常处理并输出结果,无卡顿或崩溃 | | 3 | 句子分割 | 验证多中文句号分割准确性 | 文本:`2023年。天气晴朗。1999年。` | 1. 输入文本; 2. 执行分割 | 分割为3个句子:`2023年`、`天气晴朗`、`1999年` | | 4 | 句子清洗 | 验证特殊符号和换行符清洗 | 文本:`2020年#数据n*测试*` | 1. 输入文本; 2. 执行清洗 | 清洗后句子为`2020年数据测试` | | 5 | 年份提取 | 验证全角数字年份识别 | 文本:`全角年份:2023年` | 1. 输入文本; 2. 提取年份 | 识别出年份`2023`(需明确是否支持全角)或忽略 | | 6 | 年份提取 | 排除无效四位数(如0000) | 文本:`无效年份:0000年` | 1. 输入文本; 2. 提取年份 | 不提取`0000`或根据需求标记为无效 | | 7 | 结果格式化 | 验证多年份逗号连接顺序 | 文本:`2008年北京,2022年冬奥会` | 1. 输入文本; 2. 提取年份并格式化 | 输出`2008,2022: 2008年北京,2022年冬奥会` | | 8 | 输出顺序与格式 | 验证输出与原文顺序一致 | 文本:`1997年香港回归。2001年加入WTO。` | 1. 输入文本; 2. 执行程序 | 输出顺序为`1997: …`在前,`2001: …`在后 | | 9 | 异常处理 | 验证文件路径不存在时的处理 | 输入路径为`C:fake.txt` | 1. 输入错误路径; 2. 执行程序 | 提示“文件不存在”或静默忽略 |
—
### 样例说明(根据用户要求补充)
| 序号 | 测试项 | 测试目的 | 测试数据 | 测试步骤 | 预期结果 | |——|————–|————————|——————–|————————–|——————–| | 1 | 文本输入 | 验证非txt文件处理 | 输入`test.docx` | 1. 执行程序 | 提示“不支持此格式” |
—
### 扩展说明 1. **测试环境**:默认需标注操作系统(如Windows 11)、Python版本(如3.9)、依赖库版本等,但用户未明确要求,此处省略。 2. **实际结果/执行人**:需在测试执行阶段补充填写。 3. **隐式逻辑**: – 若年份嵌入非文字内容(如`【2020】`),需明确是否提取。 – 若句子清洗后为空(如`####`),是否跳过输出。
|
文章来源于互联网:AIGC(生成式AI)试用 31 — AI做软件程序测试 2
相关推荐: AIGC技术中常提到的 “嵌入转换到同一个向量空间中”该如何理解
在AIGC(人工智能生成内容)技术中,“嵌入转换到同一个向量空间中”是一个核心概念,其主要目的是将不同类型的输入数据(如文本、图像、音频等)映射到一个统一的连续向量空间中,从而实现数据之间的语义和结构信息的统一表示。这一过程通过嵌入技术完成,具体解释如下: 1…