测试 AI 生成代码的应用:挑战与建议

📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)

📝 职场经验干货:

软件测试工程师简历上如何编写个人信息(一周8个面试)

软件测试工程师简历上如何编写专业技能(一周8个面试)

软件测试工程师简历上如何编写项目经验(一周8个面试)

软件测试工程师简历上如何编写个人荣誉(一周8个面试)

软件测试行情分享(这些都不了解就别贸然冲了.)

软件测试面试重点,搞清楚这些轻松拿到年薪30W+

软件测试面试刷题小程序免费使用(永久使用)


像Lovable.dev这样的AI工具正在改变应用开发模式,它们能通过自然语言提示快速生成原型,让每个人都能轻松创建功能性应用。

这些工具的编码速度比传统开发人员快 20 倍,但也带来了在测试、调试和维护生成代码方面的独特挑战。当团队引入AI时,必须保持警惕。

我们下面将探讨一些挑战,以及在测试和识别问题时可能遇到的常见场景。

如果你希望将这些代码作为项目的基础模板,并在未来扩展产品,请不要在测试之前就添加过多功能!
AI 会生成上百行代码,使得代码审查、维护和测试变得越来越困难,应尽早进行检查和测试。

还需要注意的是,AI 工具会选择它们认为最合适,或者与其有合作关系的库(例如:Lovable.dev 会推荐使用 Supabase)。但这些库或工具可能并不是最适合你的产品,也可能价格昂贵(建议查看订阅价格)。此外,一些库可能已经弃用,与其他依赖项发生冲突,从而引入新 bug。

当然,如果你只是为了验证市场、做一个原型,并且可以接受将 MVP 从头重写,那么就无需太担心这些问题。


测试 AI 生成代码应用的常见挑战

1. 代码质量与优化问题

场景:  某电商初创公司用Lovable.dev搭建购物平台,生成的商品列表功能因冗余数据库查询导致性能下降。

示例代码:

// 由 AI 生成
let products = [];
for (let productId of productIds) {
    let product = db.query(`SELECT * FROM products WHERE id = ${productId}`);
    products.push(product);
}

问题:  在循环中对数据库进行查询,导致单个操作进行了多次数据库访问。

如果只做“正常流程”测试,很可能不会发现这个问题。因此,需要主动检查数据库及其性能。


2. 自定义与灵活性不足

场景:  一家非营利组织创建了一个活动管理应用,但 AI 生成的代码缺乏计算活动碳足迹的功能。

示例代码:

// 由 AI 生成
events.forEach(event => {
    console.log(`Event: ${event.name}`);
});

问题:  AI 没有包含碳排放的计算逻辑。

这是典型问题,有时 AI 只生成前端代码和简单组件交互,甚至使用硬编码数据。如果没有明确地说明公式或逻辑,它通常无法生成后端逻辑。可以通过不同输入做简单测试来发现这一点。


3. 调试复杂性

场景:  一家小企业使用 AI 工具生成了 CRM 应用,通知系统出错,导致重复发送通知。

示例代码:

// 由 AI 生成
reminders.forEach(reminder => {
    if (reminder.date === today) {
        sendNotification(reminder.userId, reminder.message);
        sendNotification(reminder.userId, reminder.message);
    }
});

问题:  重复的函数调用导致通知重复发送。

有时 AI 会建议你重构代码,这类问题在“正常流程”测试中很容易发现,只需验证是否只收到了一个通知。


4. 可扩展性问题

场景:  一家社交媒体初创公司使用 AI 生成平台。用户登录时,代码低效地提取用户数据,随着用户数量增加导致延迟。

示例代码:

// 由 AI 生成
let userData = {};
userIds.forEach(userId => {
    userData[userId] = db.query(`SELECT * FROM users WHERE id = ${userId}`);
});

问题:  循环式查询结构在用户量大时拖慢了登录速度。

如果你在早期没有做性能测试,这个问题可能会在后期才暴露。虽然易于修复,但如果早点发现会避免更多麻烦。


5. 安全漏洞

场景:  一家医疗初创公司生成了患者门户应用,但 AI 生成的代码未对敏感信息加密。

示例代码:

// 由 AI 生成
db.insert(`INSERT INTO patients (name, dob, medicalRecord) VALUES ('${name}', '${dob}', '${medicalRecord}')`);

问题:  以明文方式存储敏感数据。

这是 AI 编写代码中常见问题之一,通常缺乏对数据安全性的处理。必须格外小心,检查数据的传输、管理和存储方式。


6. 过度依赖 AI

场景:  一位自由职业者创建了预算管理应用,在支出追踪器中出现 bug,但由于缺乏编程知识,难以调试。

示例代码:

// 由 AI 生成
let expenses = [];
expenseItems.forEach(item => {
    expenses.push(item.amount);
});
let total = expenses.reduce((sum, amount) => sum + amount, 0) * discount;

问题:  逻辑错误导致总额计算不正确。

这是一个 AI 自己可能也能识别的问题。由于 AI 有时会混合前后端逻辑,即使是有经验的开发者也可能难以调试。对于不会编程的人来说更是挑战。不过,在正常流程测试中就可能发现这个 bug。


其他注意事项

并非所有 AI 编码平台都会为生成的代码自动编写测试,除非你明确要求。例如:Lovable.dev 默认不创建测试代码,这点需要特别注意。

另外,AI 并不擅长跟上所有最新技术的步伐。例如区块链相关开发目前 AI 仍然支持有限(虽然未来可能改善)。这些技术每一秒都在变化,AI 和人类都还追不上 😂


维护 AI 编写应用的一些建议

  • 定期进行全面的代码审查

  • 实施测试协议

  • 训练 AI 遵循代码最佳实践

  • 提前规划扩展策略

  • 优先考虑安全性

  • 培养开发人员的专业技能


如需我帮你将这篇文章做成总结或用于演讲稿,请随时告诉我。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

​​​

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值