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/