SOFTWARE'S TESTS - THE IMPORTANCE OF THE QUALITY ASSURANCE (QA) TEAM
FIT - Instituto de Tecnologia
Construímos prosperidade para um mundo conectado e melhor.
1.?INTRODUCTION
The Quality Assurance (QA) team has the high responsibility along with the software development and the organization to guarantee the quality of deliveries for its products. If the customer finds a bug (i.e., an unexpected problem with a software application or hardware) on the application and reports that, the costs for solving the problem after a product release are too much higher than if the QA team had found it during the development phase, for example.
Additionally, a bug can have a significant impact on customer satisfaction with a product and even the brand as a whole. When customers experience a bug, it can lead to frustration, disappointment, and a feeling of distrust towards the product and brand. Customers may feel that the company did not invest enough resources into quality assurance, which can damage their perception of the brand's overall quality.
There are a lot of famous bugs found in the world. For example, during a presentation by Bill Gates, he plugged in a printer which caused a "Blue Screen of Death" (BSOD) error to appear on the screen, indicating a serious system error. This incident highlighted the unreliability of early versions of the Windows operating system and the need for improved stability in future updates. Another example, when the Gangnam Style music video broke the YouTube view limit, the counter changed to negative when it reached 2 billion of views. After that, they needed to update their platform for 64 bits. If they had tested the scenarios before releasing the platform for consumers, these problems would have been avoided. This kind of examples proves the need of a QA team.
2. WHAT IS QA?
From the initials “QA”, the term means “Quality Assurance”, and, from software perspective, it means the responsibility to ensure the quality of deliveries to the customer. For IT (Information Technology) companies, it is related to a test team, which is responsible for checking the software, entirely or part of it, to guarantee that every input given reproduces the desired and planned output. Then, software testing is a process integrated with software development, where the main function is to reveal and report failures and bugs to be fixed until the final product reaches the expected quality.
Most people have already tried a software that crashes or freezes, sometimes restarts the system, especially, nowadays, with the technology and the number of applications available in the market involving computers and smartphones, for example.
Thus, the QA team exists to avoid those sorts of problems for the end user and to bring some benefits, such as: reduce failure risks during the operation, reduce risk of incorrect or untestable functionality, increase the probability of the software to meet the needs and supply the requirements from the customer.
This team is of great value for the companies, and it is used to say that if a bug is found during the development phase, it is cheaper to fix than if the final user reports it as a complaint. The QA team is necessary to ensure that all possible entries are working as designed.
Talking about professionals who works in this area, so called testers, they must be able to: analyze, plan, model, implement, execute, evaluate acceptance criteria, and report results, survey and cover all possible scenarios and environments that will be tested. In the following section, it will be presented the kind of tests and levels which are applied by the testers during the software development.
3. TESTS LEVELS AND THEIR TYPES
In this area, there are some test levels, for example, components, integration, system and acceptance testing, and some test types, for example, functional, non-functional, white-box and change-related. The foregoing tests levels, as shown in Figure 1, are the most usual levels that can be found in the large literature to study and apply.
?Describing them with more details, they can be summarized as:
Additionally, regarding the test types, they are better summarized as:
4. AUTOMATED VERSUS MANUAL TESTS
Once the levels and types of tests were described, they can be applied manually or using software resources to automate the task. Both approaches have advantages and disadvantages and need to be evaluated regarding the software proposal to test.
For the automated test, specific tools are necessary in order to implement scripts that run many tests sequentially. Normally, it is common for a large-scale performance testing, stress testing, repetitive tasks and for a data comparison. On the other hand, manual tests offer a better view of the product/software delivered, so that it is very useful for exploratory tests, screen changes and other tasks where the human evaluation is indispensable.
In summary, regarding manual testing:
Regarding automated testing:
In general, both manual and automated testing are important in software development, and the choice of which type to use depends on various factors, such as scope and complexity of the software application, project timeline, and the available resources. Many software development projects use a combination of manual and automated tests to achieve the best results.
5. QA CERTIFICATION
Due to the importance of this phase in software development, there is a certification for Quality Assurance teams, called CTFL (Certified Tester Foundation Level) certification, which is provided by ISTQB (International Software Testing Qualification Board) and is necessary for them to reach maturity and quality during test executions.
The CTFL certification exam consists of 40 multiple-choice questions, and candidates have 60 minutes to complete the exam. The questions are based on the ISTQB's Syllabus for the CTFL, which covers topics as fundamentals of testing, testing throughout the software lifecycle, static techniques, test design techniques, test management and tool support for testing
The exam is designed to test candidates’ knowledge and understanding of these topics, as well as their ability to apply them to real-world testing scenarios. Being globally recognized, this certification has the objective to develop the essential testing knowledge that can be put to practical use, its terminologies and concepts that are used worldwide in the testing domain.
6. CONCLUSION
In short, the QA software team is capable and trained to test software’s limits, to stress it, either manually or automatedly, to provide better deliveries for project teams and customers. In addition, some QA tests also can perform complex checks that humans would be unable to.
It is worth mentioning that a good quality software team leads to customer trust. If customers believe in deliverables quality, then they trust on the product, and trust leads to popularity. Therefore, the ability to produce software with quality leads to a brand trust.
Basically, software testing aims to guarantee quality, minimizing uncertainties and systematizing acceptance criteria, so that it helps to validate if the expectations of all the people involved are being met and aligned, and certifying that the software is working well.
7. REFERENCES
Pesquisador em Saúde | PhD | MSc | BPharm | Software as Medical Device (SaMD) | Medical Device (MD) | Digital Health
1 年Parabéns pelo trabalho! Acho muito bacana esse formato de dissemina??o de conhecimento! Sucesso time??