Quality Assurance Process

Quality Assurance and Code Review

EcoPortal is committed to delivering high-quality products that meet or exceed our customer's expectations. To achieve this goal, we have established a comprehensive QA policy that applies to all phases of our software development lifecycle. 

Goals and Objectives

Our QA policy aims to achieve the following goals and objectives:

  • Ensuring the quality and reliability of our software products 

  • Meet or exceed customers' expectations and requests 

  • Minimizing defects and errors in user interfaces and software code 

  • Ensure compliance with industry standards and regulations 

  • Continuous improvement of our software testing processes 

Quality Control Processes

Our QA policy includes the following quality control processes:

  • Code review and testing to ensure that our software products meet functional and non-functional requirements 

  • Automated unit and E2E tests for the backend

  • Automated unit tests for the REACT frontend

  • Automated OWASP tests ran after every commit to check for security risks using Brakeman

  • Automated E2E regression tool to detect and prevent defects and errors

  • User acceptance testing to ensure that software meets customer's expectations support by QASE (test planning, execution and logging)

Quality Assurance Processes

Our QA policy includes the following quality assurance processes:

  • Review requirements: Our tester would review the requirements documentation to ensure that they are complete, testable, and accurate. Any unclear and ambiguous requirements would be raised and clarified with the Product Manager and development team so requirements are fully understood 

  • Build test cases: Based on the requirements documentation, our tester would develop test cases that cover all possible scenarios that our software product is expected to handle. The test cases should be designed to ensure that our product meets the functional requirements as well as non-functional requirements such as usability and security.

  • Execute test cases: Our tester would execute the test cases to validate that our software product behaves as expected. The tests could be conducted manually or automatically depending on the complexity and nature of our software. 

  • Report defects: If any issues are detected during testing, our tester would report them on Trello board (our team management tool) and log them on Qase. The defects should be well-documented, providing a clear description, the steps to reproduce it, and any supporting evidence such as screenshots and screen recording 

  • Verify fixes: After the development team has fixed any issues identified during testing, the tester would verify that the fixes have been implemented correctly and that software behaves as expected 

  • Retest: As changes are made to our software product throughout the development lifecycle, our tester would retest the software to ensure that it continues to meet the functional and non-functional requirements.

  • Regression testing: After all the adjustments and fixes have been completed, our tester would discuss with the development team to define the scope of unintended side effects. This process is to make sure any change would not affect the behavior of other parts of the system.

  • Acceptance testing: We involve the EcoPortal service and implementation team in the acceptance testing process to ensure that the software products meet their expectations and requirements. User acceptance testing is conducted to validate the usability and accessibility of the software. Evidence of acceptance testing being completed on an approved change 

  • Any defects raised during acceptance testing can be tracked on our team management tool (Trello board), including showing the issue reports, how and when they were resolved 

  • Sign-off: Once the acceptance testing is complete, our software is scheduled to be released.

To ensure effective and efficient testing of the software products that we implement, we introduce the use of instant servers for testing purposes. Here are the key components to use the instant server during testing:

  • Purpose: The instant server will be used to provide an isolated testing environment from the production environment. This allows us to test our software products without affecting production data or causing downtime.

  • Accessibility: We only allow authorized personnel to access the instant server. For example, we provide secure login credentials.

  • Configuration: The instant server replicates the experience from our production server, allowing our QA to mitigate and find issues hard to spot during development.





Approved by





Raphael Santos







Download the file in .pdf/.pages here: