Browsing by Author "Klemetti, Marko Juhana"
Now showing 1 - 1 of 1
- Results Per Page
- Sort Options
- Applying Test-driven Development practice in Digital Signal Processing
School of Science | Master's thesis(2010) Klemetti, Marko JuhanaThe accelerating pace of digital signal processor evolution has brought new demands to the embedded software development. The question is no longer how to implement new features, but how to make sure the existing functionalities still work after changes, and how to make sure the quality of the software does not deteriorate. By changing the code without automatic and accurate feedback, it is only natural for the code to gradually become more difficult to read and understand. This thesis presents a new paradigm for developing embedded software. Test-driven Development (TDD) is a developer practice where the design of the code is driven with automated tests. The practice can be summarized with a repeating mantra: "red - green - refactor", where the developer first writes a failing test (red), then as little code as possible to make is pass (green) and finally improves the code quality (refactor). The motivation behind Test-driven Development is that the developer lets the code emerge organically with a series of small tests instead of planning too much ahead. This leads to the developer being able to take risks with the design and make changes to the code structure throughout the development process. The feedback of the functionality becomes continuous and reliable - every test run verifies that the system still behaves as expected. While doing Test-driven development, the developers inevitably leave a test-based documentation behind, both verifying the functionality and documenting the software in a code level. In this work the Test-driven Development technique is enabled for a digital signal processing software used in a telecommunications network element Media Gateway (MGW). The implementation was carried out together with the development team, and this work describes the process and its outcome. The developers adopted the TDD paradigm successfully and the software quality began to improve significantly. This work shows that Test-driven Development is a feasible technique for improving the embedded software quality, and brings numerous advantages as compared to the traditional software development.