ROSIN: Why Should You Care About Quality?
/This is a guest post by Adam Alami, IT University of Copenhagen, who is a Ph.D. Fellow, tasked with stewarding the assessment of quality of ROS/ROS-Industrial and developing the roadmap for the realization of Quality Assurance and the tools and ecosystem to support that goal.
The answer to the question, “Why should you care about quality?” is simply that we all want code that delivers value. In the context of software engineering, value is achieved when the code is defect-free, reliable, and integrates quickly. In view of this, ROSIN is a step toward higher-quality intelligent robot software components for industry. ROSIN is an initiative to create a set of tools to speed up ROS use and integration. “Quality” is a feature of the end product that is achieved through a set of tools and practices known as quality assurance.
The goal of ROSIN is to create quality assurance utilities and practices for ROS to improve its quality. This will be met through the implementation of these initiatives:
Make ROS packages’ quality visible: Create a process/tool where packages’ quality can be measured, assigned, and displayed.
Appoint ownership: Appoint ownership of quality assurance practices and infrastructure.
Energize the code review process: Code review is an existing process; unfortunately, it is loosely implemented and practiced. The aim of this initiative is to bring this practice back to ROS QA core quality practices.
Implement a code scanning method and tool.
Maintenance issues: The objective is to attract and recruit new maintainers and reduce the number of orphan packages.
Energize Continuous Integration: This initiative will review and enhance the current implementation of the Continuous Integration (CI) services.
Quality Hub website: This will be a central “go-to” place for QA knowledge sharing and documentation of QA practices.
Formalize the code ownership process: Currently, the community has an informal code ownership practice. Defining and implementing a code ownership process will establish the responsibility relationship for a software component and a responsible developer.
Onboarding process for core and non-core community members: The onboarding process is exercised each time a new member joins the core team or a new maintainer. Newcomers are integrated faster, and knowledge is transferred seamlessly. This should improve retention of newcomers.
Model-in-the-Loop testing: This will identify and demonstrate opportunities to use the paradigm of model-driven development for code generation.
Implement a continuous improvement process: A continuous improvement process is an ongoing effort to improve quality assurance practices. These efforts are the incremental review and improvement of practices already in place. This is a set of community activities and processes to ensure the survival and continuity of quality assurance practices.
Automated unit test generation: The goal of this initiative is to automate the creation of tests. The work includes the following:
Developing and demonstrating property tests and test-data synthesis for diverse parts of ROS
Producing guides for developers to continue using these tests
Developing the automated test generation algorithms
Evaluating, selecting, and integrating combinatorial interaction testing methods for the purpose of ROS
Quality Discourse: This is a forum dedicated to quality assurance.
QA promotion events: Regular community campaigns will promote QA practices or support a particular community need. Ideas for campaigns: Bug Crushing party – A regular event where volunteers meet up (virtually or collocated physically) to fix bugs.
Model-driven development: Identify and demonstrate opportunities to use the paradigm of model-driven development for code generation.
#ROSQA: Twitter hashtag; possibly link the “Quality Hub” account to the hashtag for synergy.
By establishing standards, practices, and tools, quality is assured and emerges in the culture of the community. Quality influences trust as well as brand value. Maximizing trust in ROS and ROS-Industrial will come through providing evidences that quality requirements are taking place in the production process of the community. Today, ROS is one of the de facto operating systems for robotics. This status comes with an inherent commitment to quality.
By establishing standards, practices, and tools, quality is assured and emerges in the culture of the community. Quality influences trust as well as brand value. Maximizing trust in ROS and ROS-Industrial will come through providing evidences that quality requirements are taking place in the production process of the community. Today, ROS is one of the de facto operating systems for robotics. This status comes with an inherent commitment to quality.
Learn more at: http://rosin-project.eu
Recent presentation from ROS-I Conference 2017 hosted by Fraunhofer IPA, HOW DOES ROS CARE ABOUT QUALITY?, by Yvonne Dittrich provides additional insight.