Метод адаптивного контрольного тестування оцінки якості арифметики
DOI:
https://doi.org/10.31861/sisiot2025.2.02003Ключові слова:
верифікація числових обчислень, плаваюча крапка, точність обчислень, обчислювальна складність, адаптивне тестуванняАнотація
Арифметика з плаваючою крапкою є вразливою до похибок точності, які можуть накопичуватись у процесі обчислень і суттєво впливати на результати. Особливо це актуально для застосувань, де навіть незначні відхилення можуть призвести до критичних помилок – зокрема, у наукових розрахунках, технічному моделюванні, фінансових обчисленнях або роботі з великими обсягами даних. У статті запропоновано новий метод адаптивного тестування, який призначений для систематичної перевірки точності реалізацій арифметичних операцій. Його мета полягає в тому, щоб виявити слабкі місця в обчисленнях, визначити джерела нестабільності та запропонувати обґрунтовану оцінку надійності числових результатів. На відміну від традиційних підходів, що використовують фіксовані або випадково згенеровані вхідні дані, запропонований метод постійно оновлює набір тестів, зосереджуючи увагу на тих ділянках числової області, де похибки виявляються найзначнішими. Це дає змогу ефективно виявляти ті області вхідних значень, які найчастіше викликають значні відхилення результатів, зокрема – у разі використання дуже малих, великих або граничних чисел. Метод базується на багаторазовому запуску арифметичних операцій, таких як додавання, віднімання, множення та ділення, з подальшим порівнянням отриманих результатів у різних реалізаціях арифметики. Для порівняння використовуються базова реалізація арифметики та альтернативна реалізація з підвищеною точністю. Похибки оцінюються за допомогою абсолютних та відносних показників, а їхні статистичні властивості аналізуються для виявлення закономірностей. Отримані дані використовуються для динамічного оновлення тестового набору: якщо у певній числовій області виявлено значні похибки, то в цій самій області формуються нові тестові значення з невеликими відхиленнями. Такий підхід дозволяє поступово уточнювати оцінку якості арифметичних обчислень у найпроблемніших областях. У результаті тестування стає все більш цілеспрямованим і сфокусованим на складних випадках, що особливо важливо для складних інженерних або наукових задач. Таким чином, запропонований підхід підвищує ефективність перевірки числових обчислень, надає нові можливості для аналізу точності й виявляє приховані проблеми, які залишаються непомітними при класичному тестуванні, що робить його корисним для верифікації числових бібліотек та покращення арифметичних моделей.
Завантажити
Посилання
G. Dahlquist and Åke Björck, Numerical Methods in Scientific Computing. SIAM, 2008.
N. J. Higham, Accuracy and Stability of Numerical Algorithms, 2nd ed. SIAM, 2002.
T. Nelson, E. Rivera, S. Soucie, T. D. Vecchio, J. Wrenn, and S. Krishnamurthi, “Automated, Targeted Testing of Property-Based Testing Predicates,” The Art Science and Engineering of Programming, vol. 6, no. 2, Nov. 2021, doi: https://doi.org/10.22152/programming-journal.org/2022/6/10.
N. Metropolis and S. Ulam, “The Monte Carlo Method,” Journal of the American Statistical Association, vol. 44, no. 247, pp. 335–341, Sep. 1949, doi: https://doi.org/10.1080/01621459.1949.10483310.
“Monte Carlo: Concepts, Algorithms, and Applications,” Journal of Computational and Applied Mathematics, vol. 75, no. 2, pp. N3–N4, Nov. 1996, doi: https://doi.org/10.1016/s0377-0427(97)80822-9.
J. R. D’Errico, “An Adaptive Quadrature Routine,” ACM SIGAPL APL Quote Quad, vol. 17, no. 2, pp. 19–20, Dec. 1986, doi: https://doi.org/10.1145/9327.9331.
M. Redmann and S. Riedel, “Runge-Kutta Methods for Rough Differential Equations,” Journal of Stochastic Analysis, vol. 3, no. 4, Dec. 2022, doi: https://doi.org/10.31390/josa.3.4.06.
P. Godefroid, “Fuzzing,” Communications of the ACM, vol. 63, no. 2, pp. 70–76, Jan. 2020, doi: https://doi.org/10.1145/3363824.
B. Beizer and J. Wiley, “Black Box Testing: Techniques for Functional Testing of Software and Systems,” IEEE Software, vol. 13, no. 5, p. 98, Sep. 1996, doi: https://doi.org/10.1109/ms.1996.536464.
E. Hairer et al., Solving Ordinary Differential Equations I, 2nd ed. Springer Series in Computational Mathematics. Berlin, Heidelberg: Springer Berlin Heidelberg, 1993.
L. F. Shampine and M. W. Reichelt, “The MATLAB ODE Suite,” SIAM Journal on Scientific Computing, vol. 18, no. 1, pp. 1–22, Jan. 1997, doi: https://doi.org/10.1137/s1064827594276424.
P. Virtanen et al., “SciPy 1.0: Fundamental Algorithms for Scientific Computing in Python,” Nature Methods, vol. 17, no. 3, pp. 261–272, Feb. 2020, doi: https://doi.org/10.1038/s41592-019-0686-2.
“Defining Extension Types: Tutorial,” Python Documentation, 2025. [Online]. Available: https://docs.python.org/3/extending/newtypes_tutorial.html#adding-data-and-methods-to-the-basic-example (accessed Dec. 08, 2025).
S. S. Shapiro and M. B. Wilk, “An Analysis of Variance Test for Normality (Complete Samples),” Biometrika, vol. 52, no. 3/4, pp. 591–611, 1965, doi: https://doi.org/10.2307/2333709.
B. L. Welch, “The Generalization of `Student’s’ Problem When Several Different Population Variances Are Involved,” Biometrika, vol. 34, no. 1/2, p. 28, Jan. 1947, doi: https://doi.org/10.2307/2332510.
J. Cohen, Statistical Power Analysis for the Behavioral Sciences, 2nd ed. Routledge, 1988.
R. D. Richtmyer and R. E. Moore, “Interval Analysis,” Mathematics of Computation, vol. 22, no. 101, p. 219, Jan. 1968, doi: https://doi.org/10.2307/2004792.
“Adapting strategies - Hypothesis 6.148.7 documentation,” Readthedocs.io, 2025. [Online]. Available: https://hypothesis.readthedocs.io/en/latest/tutorial/adapting-strategies.html (accessed Dec. 08, 2025).
Опубліковано
Номер
Розділ
Ліцензія
Авторське право (c) 2025 Безпека інфокомунікаційних систем та Інтернету речей

Ця робота ліцензується відповідно до ліцензії Creative Commons Attribution 4.0 International License.







