Upload
mpho-mphego
View
194
Download
2
Embed Size (px)
Citation preview
Testing Framework for Development of a Correlator Beamformer
Mpho Mphego & Alec RustSKA-SA
Overview
• Python functional “unit” testing for verification of a Correlator Beamformer system.
• Jenkins Continuous Integration• Jenkins Demonstration
Functional Testing Overview
• Functional testing is used to verify each correlator requirement after a new build.
• Functional tests uses Python unit testing tools to determine whether correlator beamformer subsystem is ready for deployment.
• Individual tests are developed for each requirement.
CBF Overview
Jenkins Automated Test Server
KATCP – Control Protocol
CBF Servlet
Low Level Drivers
MeerKAT CBF (ROACH2)
Functional Testing Overview
• Tests are automated to enable nightly build verification.• Made possible by the Dsim. ROACH2
based digitiser simulator capable of producing CW tones and noise (correlated and un-correlated).
• Each functional test configures the Dsim before capturing and analysing results.
Functional Testing Structure
• Python Nosetests used as unit testing framework.
• Nosetests extended with report generation plugin.
• Python decorators are associated with each tests, these are used in the generated report.
• Decorator specifies which verification requirements are covered in each test.
Functional Tests Performed
• Sensor Values• Control via CAM interface• Coarse and Fine L-Band Channelisation• Baseline Correlation Products• Accumulation Length• Per-Antenna Phase Error • Delay Compensation
Continuous Integration
• CI is the process of applying continuous quality control – small pieces of effort, applied frequently.
• CI aims to improve the quality of software, and to reduce the time taken to deliver it, by replacing the traditional practice of applying quality control after completing all development.
• Team members integrate work frequently. Each integration is verified by an automated build to detect errors as quickly as possible.
Jenkins Overview
Jenkins CI
• Jenkins is a continuous integration and delivery application that builds and tests projects making it easier for developers to integrate changes to the project.
• It is an auto test platform which helps users to track where and when bugs are introduced.
Jenkins CI Advantages
• Much of the work of frequent integrations is handled by automated build and testing systems – developer time is not wasted on large-scale integrations.
• Software quality is improved - Issues are detected and resolved quickly.
Jenkins Capabilities
• Scheduled test runs and generate test reports.
• Email notifications to the team on current build status.
• If build is a success, automatically deploys directly to production or test environments.
• Integrate with many different Version Control Systems.