2013-06-01 3 views
1

Я создал класс Serializable. Он должен использоваться в настольном приложении. Есть ли набор стандартных/часто используемых тестов, которые я должен написать, чтобы проверить процесс сериализации и десериализации класса.Тестирование сериализации класса

Ожидается, что класс может измениться в будущем, но байт-код должен поддерживаться совместимым между версиями.

Безопасность приложения, в котором используется класс , имеет значение: он должен иметь возможность обрабатывать созданные байтовые потоки.

Если есть какие-либо общепринятые тесты, было бы полезно короткое упоминание о цели каждого из них [какой аспект сериализации делает каждый адрес].

+0

Я могу удалить последнее заявление, если оно считается слишком открытым. – Kevin

+0

Если класс изменится, и сериализованные данные должны оставаться совместимыми, рассмотрите использование JAXB или JSON или что-то похожее на сериализацию ваших данных. Тогда ваши тесты просто будут просто анализировать тесты, анализируя как старые, так и более старые версии. –

+0

... также определить «безопасность приложения» ... означает ли это, что данные должны быть зашифрованы? синтаксические анализаторы должны плохо обрабатывать плохие данные? синтаксические анализаторы должны оставаться обратно совместимыми? –

ответ

0

Обычно вы не хотите использовать сериализацию по умолчанию для долговременного хранения, особенно в тех приложениях, где вы подозреваете, что сериализованный класс может значительно измениться. К сожалению, ваш вопрос не очень ясен в отношении того, что сериализуется. Возможно, мы можем увидеть какой-то код?

Система сериализации не имеет встроенной защиты. Разумеется, вы можете зашифровать сохраненные данные. Опять же, нам нужна дополнительная информация о приложении.

Что касается тестирования, рекомендуется сохранить серийные экземпляры из каждой версии сериализуемого класса при его изменении и попытаться загрузить их в отдельных модульных тестах, проверив поля, чтобы убедиться, что они были загружены правильно. Обратите внимание, что просто сериализация и десериализация экземпляра в одном тесте не очень полезна, хотя вы, вероятно, должны это сделать.

Смежные вопросы