- Value objects
- aliasing
- functional code
- pytest (https://docs.pytest.org/) x unittest
- Fixtures e.g. @pytest.fixture(scope="module")
- Parametrizing
- hypothesis (https://github.com/equinor/camille/blob/c60e767eb4802a6a9c0b9134bdd5940620ed410b/tests/process/test_lidar.py#L107), https://hypothesis.readthedocs.io/en/latest/
- pytest-timeout (https://pypi.org/project/pytest-timeout/)
- Monkeypatching (https://docs.pytest.org/en/stable/monkeypatch.html)
- mock side effects
- test coverage (codecov), in PR
- mutation testing (time consuming) mutmut (petroelastic example 6000 mutations, time consuming, at night Andreas team)
- @property
- integration test (NASA example)
- triangle testing: units/functional/integration (time, coverage) https://www.softwaretestinghelp.com/the-difference-between-unit-integration-and-functional-testing/
- Testing in VSC was different from pycharm: https://stackoverflow.com/questions/65577254/python-module-import-statement-runs-in-pycharm-but-not-in-vscode
- "python -m venv tdd_venv" leads to "Error: [WinError 1260] This program is blocked by group policy. For more information, contact your system administrator"
https://medium.com/miq-tech-and-analytics/test-driven-development-in-data-science-190f1247ebbc
https://www.linkedin.com/pulse/software-engineering-data-scientist-test-driven-gopinadhan-jagan-/ python modules -> jupyter