Java Card applet EEPROM vs RAM testing



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

这些错误会减慢小程序的速度并导致一些严重的问题(例如EEPROM损坏的症状)。

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

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

当然,一个好的模拟器可以完成这项工作。然而,JCardSim(www.jcardsim.org)和恩智浦JCOP工具似乎都远不能报告EEPROM使用情况统计数据。

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

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

最新更新