When you use a product the first thing that comes up in your mind is quality. Quality cannot be compromised and the USP for all companies and manufacturers is the quality of their products. Webdura too has various QA tools and techniques for assuring quality in software development that guarantees end-user satisfaction.
At Webdura, once an application is developed our team ensures that the application is tested with reference to a multitude of aspects by carrying out quality assurance practices. We do QA with the ultimate goal of user satisfaction and shrewd products. Our QA team takes the initiative and thinks in the perspective of the user and sees how quality can be enhanced for each product.
What is Quality Assurance?
Quality assurance is the process of checking and testing a product before releasing it to the market or the end user. This will ensure that the product is devoid of defects and issues and it is ready to roll.
QA Strategies: The Process of Quality Assurance
QA has different components and the QA strategy at Webdura is executed as depicted below:
- Requirement Analysis:
Analyzing the requirements and defining the scope
- Test Planning:
Create Test plan document and define the test cases with traceability matrix
- Test Design:
How the test cases will be executed- Manual or Automation and test scenarios
- Environment Setup:
Setup Dev, QA for stakeholders to test and verify the test cases.
- Test Execution:
Execute the test cases manually and through automation if required
- Test Closure:
Passing all the test cases and sign off from QA
We carry out testing in multiple phases. It starts with developers testing the software or source codes created. It is called the unit testing phase. During unit testing, our developers ensure that the functionality or feature which is developed aligns with the requirement and working as expected. At this point if there is a need for change in design, we induce it. Once it is done then the code is deployed for peer review. The code review is done by the peer or the lead who verifies the code for assessing whether it is written as per the requirements and the coding standards.
Once the peer review is done the developer deploys the code into the QA environment for the Tester (QA) to verify the application.
Our QA will be ready with the test design, test cases and test data to start verifying the functionality or the feature developed. Our QA assumes the role of a product owner who captures and is fully aware of the end to end working and UI flow of the application. There will be a checklist or test data document to mark and confirm on the test cases and confirmed as passed or failed. After QA testing, the tester will provide the percentage of quality on which the application is working.
Once the QA starts testing, we ensure that the application is working in alignment with the requirements. QA will verify each functionality, UI components, content and integration points. The tester will raise and inform the development team if there are any defects found while testing. QA will include both happy flow and negative test cases in the test design. The quality of a product depends on the skill of the QA who tests the application.
For us, QA plays a major role in ensuring quality and readiness of the product developed. The product can be released only if QA signs off and UAT is done. During debugging, our QA spots and clears logical and analytical errors spotted. The identified bugs during testing are tracked in a bug tracking system. At Webdura, our QA tracks the bug detected in Jira dashboard.
Which are the Different Types of Testing?
Webdura has different testing strategies for different projects. For example, alpha-beta testing is done for the food delivery app ‘Eat It In’. In case of our online gig platform- Trova- functionality, UI , performance and security testing are done. Since it is an E-commerce platform, there are certain security constraints as we have less control over the third parties in the platform. However, our team makes every effort to keep the app tested and minimize bugs.
There are number of testing levels and the different types of Software Testing includes:
- Unit testing
- Integration testing
- Regression testing
- Smoke testing
- User Acceptance testing
- Business testing
- Performance testing
- Unit Testing
Unit Testing
Unit testing is mainly done by the programmer to verify if the loop, method or function is working fine based on an individual unit or a group of interrelated units.
In our online gig platform- Trova, Webdura had frequently updated new features. These new features are added to the product as and when clients demand or as per the latest updates required for the software. During this time, our developers conduct unit testing for already existing features as well as newly induced features to make certain that the features act in perfect sync. Through positive testing, QA double-ensures that the features work without any flaws.
- Integration testing
Our team checks and confirms whether the integration request provided is correct and the response received is complete. The APIs will be written and configured properly. Integration testing is very important and our QA checks whether the request and response is correct and the flow is successfully completed.
In Wuyers, the food app, third party integration for making payments with the bank was involved and we did integration testing to check the responsiveness of this feature. We ensure that the testing starts from one point and ends in another system without thereby ensuring there are no gaps.
- Regression Testing
When a new module, feature and an enhancement is added to an existing software, Regression testing should be done. This is done mainly to ensure that changes in the software does not affect the proper working of the components.
Trova has daily feature updating and in the process our QA takes care to avoid bugs from getting repeated with the help of regression testing..
- Smoke Testing
This is a trial run to check whether there are no major defects and blockers in the application which is planned for a release.
- User Acceptance Testing (UAT)
UAT is done prior to release by the Business Analyst/ Product Owner with the QA in order to ensure that all the requirements are covered and checked. UAT is done by the user. The language learning app, Lyringo takes in client satisfaction at every single point of time and issues are resolved with immediate effect.
- Performance Testing
This testing is done to know the speed and time taken to complete a flow based on the load given to the application. Performance testing is done to measure the effectiveness of the application and we do it using JMeter.
- Business Testing
End to End testing done by Business to ensure that all the expectations are met and in line with the requirements to release to Market.
Manual Testing
Manual testing is a type of software testing in which test cases are executed manually by the tester from an end user’s perspective. QA writes a script and checks whether the functionality is working. If there is a bug, the script won’t be read.
Different types of Manual testing
- Smoke testing
- Cross browser testing
- Acceptance testing
- Usability testing
- Device testing
Automation testing
Automation testing is another type of Software testing in which test cases are automated with the help of an automation tool. There will be no human interference and less interaction with the system as the tool will automate the test cases in order to achieve greater speed and efficiency. Automation test is done after ensuring that the functions, keys, features are stable.
Advantages of Automation testing
- Reduce testing effort and time
- Better quality software
- Higher test coverage for large test cases
- Eliminate Human error
- Better insights
- Reusability of test suites
- Brings usability to apps
Tools used for Automation testing are mainly Selenium, Cyprees for functionality testing and Appium done using Postman. Selenium is an open source web based testing tool which provides a portable testing framework for web applications. It automates browsers for automating web applications for testing.
Appium is an open source automation tool primarily used for Mobile app testing. It helps in automation of native, hybrid and mobile web apps built in both iOS and Android. Through a simulator and emulator, and plugins, application performance is assessed in different environments.
Conclusion:
Webdura has different testing strategies for different projects. Undertaking different types of testing and assuring quality is very important to us. User satisfaction by making intelligent software applications is the ultimate aim of our logical testing and prompt bug fixing. Webdura has a flexible QA practice and takes in feedback at every client checkpoints. Webdura projects are based on agile methodology and hence QA has a vital role to play.