unit-testing - Java Card 小程序 EEPROM 与 RAM 测试

标签 unit-testing debugging simulation smartcard javacard

Java Card applet 中的典型错误之一是将持久内存用于应该在 RAM 中的临时变量。

这些错误会减慢小程序的运行速度并导致一些严重的问题(例如 Symptoms of EEPROM damage )。

单元测试很难揭示这些错误。单元测试将小程序作为黑盒访问,它们所能做的就是检查给定输入的输出。当然,它们可以测量时间并报告可疑的缓慢命令,但覆盖持久内存中的单个字节与覆盖 RAM 中的单个字节所需的时间几乎相同。

有没有办法摆脱这些错误(除了在编码时要小心)?在处理特定的 APDU 时,我能否以某种方式检测 EEPROM 的变化以及其中有多少变化?

当然,一个好的模拟器可以完成这项工作。然而,JCardSim (www.jcardsim.org) 和 NXP JCOP Tools 似乎离能够报告 EEPROM 使用统计数据还很遥远。

你知道任何其他可能对我有帮助的工具或测试技术吗?

最佳答案

可以实现测试命令并添加测试场景,这将返回可用内存。这可以通过 getAvailableMemory(byte memoryType); 实现

关于unit-testing - Java Card 小程序 EEPROM 与 RAM 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30783573/

相关文章:

javascript - Intl.NumberFormat 空格字符不匹配

ios - 我的应用程序卡住但没有出现错误

php - 一场比赛的足球模拟

Python unittest 的 assertDictContainsSubset 推荐替代

c# - 邪恶的 JUnit 日期技巧 - 在 C# 中你会如何做到这一点?

javascript - 使用 jasmine 监视构造函数

debugging - 如何在 Visual Studio Code 中调试 C++ 代码

xcode:路径中没有可启动的可执行文件

python - 对 Python 调试工具的建议?

java - 使用高级编程语言的简化 MIPS CPU