Quality assurance (QA for short) is a complex topic and, in a rapidly changing environment such as software development, a real challenge, as well. QA plays an important role at our company, which is why we start the day with discussions about the quality of our coffee, apply the four-eye principle to our blog posts, put our fire protection equipment through regular tests, and never stop improving the work processes in departments and work groups.
To assure quality, meet requirements
Quality is critical in software development. It is achieved through a coordinated process between different areas of responsibility. At our company, the Product Management department defines the specifications for products to be developed. In consultation with the management and other departments, a detailed list of requirements is drawn up.
The technical strategy, specifications and prototypes are created by the development department based on these requirements — if necessary, in several iterations. The key word here is agility. Within the framework of software development, unit tests are already built into the code, to ensure that any built-in error conditions are detected by subsequent code changes.
Quality assurance in practice: Tests, tests, and more tests
The QA team carries out the actual test run parallel to ongoing software development, as well as after its completion. For this purpose, Product Management defines the target criteria for each individual requirement to be tested. These criteria include a wide range of aspects — usability, speed, correctness, and more. For each concrete requirement, a so-called test case is formulated in terms of what is to be tested, as well as what the expected results should look like in the end. The "test plan" consists of the sum of all test cases for all requirements of a product. It is executed for each iteration of the product. The results of the test plan shows areas that need improvement. At the end of a test cycle, the test results are evaluated. In consultation with all parties involved, a release recommendation for customer use is made.
At xSuite, the process is implemented with Microsoft's "Team Foundation Server (TFS)", which supports all areas of application lifecycle management (ALM). Requirements, source code, test cases, and all other aspects of the development process are recorded in the TFS, allowing all parties involved access to one pool of information. The status of development, testing and more can be communicated transparently within the company.
Quality assurance requires qualification
Quality assurance employees are ISTQB-certified and must possess a wide range of knowledge and skills. A partial list of what this entails:
- Know-how about business processes
- Knowledge of SAP
- Mastery of web technologies
- Mastery of operating system technologies, including provision of infrastructure
- Mastery of database technologies
- Mastery of different test methods/strategies
- Communication and mediation
xSuite's ultimate purpose is to provide customers and their end users with the software that best supports them in achieving their business goals. This is what is kept in mind as development and test cycles roll to a close. By concretely linking testing to this overarching aim, QA's potential is maximized in delivering products which bring customers closer to their goals.