Недавно мой коллега сказал что-то в этом роде: "Последовательные APK (исполняемые файлы), созданные сервером сборки из одного и того же исходного кода, могут быть не такими же". Контекст для этого обсуждения заключался в том, относится ли QA к построению X к построению Y, которое было выполнено одним и тем же сервером сборки (настроенным одинаково) из того же исходного кода.
Я думаю, что сгенерированные исполняемые файлы могут быть не идентичными из-за различных факторов (например, другой временной метки), но вопрос в том, могут ли они быть функционально разными.
Единственный сценарий, о котором я могу думать, в котором один и тот же исходный код может создавать различные функции, - это проблема многопоточности: в случае некорректной синхронизации многопоточного кода выполняются различные действия по повторному упорядочиванию/оптимизации во время компиляции может повлиять на этот плохо синхронизированный код и изменить его функциональное поведение.
Мои вопросы:
- Правда ли, что последовательные сборки, выполненные одним и тем же сервером сборки из одного и того же исходного кода, могут быть функционально разными?
- Если # 1 истинно, эти различия ограничены некорректно синхронизированным многопоточным кодом?
- Если # 2 ложно, каковы другие части, которые могут измениться?
Ссылки на любые связанные с этим материалы будут оценены.