|
From: DEVANSH V. <dev...@ns...> - 2025-12-12 10:45:05
|
DEVANSH VASHISHT <dev...@ns...> 2:46 PM (1 hour ago) to mifos-developer, edcable, dave.higgins Dear community, While the recent Angular 20 migration highlighted our testing gaps, the issue is systemic. With *~1.46% code test coverage*, we rely heavily on manual testing efforts not just for upgrades, but for every major PR. This slows down development, makes refactoring risky, and lets regressions (like the Audit Trails CSV bug) slip into codebase. I am proposing a *GSoC '26 project* to build a production-grade *E2E + Unit Testing Infrastructure*. My goal is to shift us from "manual testing" to "automated testing." *The Core Problem:* - *Fragility:* Touching core logic (Loans/Savings) risks breaking unrelated features silently. - *Bottlenecks:* Mentors and contributors spend hours manually testing. - *Onboarding Friction:* New contributors fear breaking the build because there are no safety nets. *My Proposed Solution:* A hybrid strategy to secure the codebase: - *Cypress E2E:* Automate critical workflows (Login → Client → Loan → Accounting) to guarantee the app "works" from a user perspective. - *Unit Tests:* Target complex business logic (Validators, Pipes) to catch edge cases before they reach the UI. *Proof of Work (Started):* I have already begun this initiative—my PR links where I have significantly improved the testing coverage: 1. https://github.com/openMF/web-app/pull/2816 2. https://github.com/openMF/web-app/pull/2802 3. https://github.com/openMF/web-app/pull/2742 4. *E2E:* https://github.com/openMF/web-app/pull/2886 *Roadmap & Commitment before gsoc * - *Finalize the CI/CD pipeline* to automatically block regressions on new PRs, ensuring a stable build environment. - *Significantly improve unit test coverage* across the codebase to ensure component reliability and catch logic errors early. - *Implement automated End-to-End (E2E) testing* for core workflows, prioritizing scenarios and architectures under mentor guidance. *During GSoC:* - *E2E:* Scale to 40-50 tests covering Loans, Savings, Admin, and Accounting workflows. - *Unit:* Target 40% coverage on high-risk Components and Services. - *Developer Experience:* Create "Copy-Paste" testing templates and documentation so writing tests becomes the norm for every contributor. *The Goal:* By the end of GSoC, we will have a self-verifying codebase where refactoring is safe, upgrades are routine, and "it works on my machine" is replaced by "it passes the pipeline." I’d love to hear your feedback on prioritizing this infrastructure for GSoC '26. Thanks & Regards Devansh Vashisht |