In IT area, quality assurance, commonly called QA, is the name given to the process of analyzing how well a system or a product has been developed, according to its requirement and needs of the users.
QA’s mission is to reduce the risks of, in the final delivery, the product been delivered with defects and functionalities that affect the user experience, thus bringing losses to the company and rework of the development team. When there is a well-defined, efficient and fully-developed testing process, in addition a self-manageable test team, we have the fundamental pillars to ensure the product’s qualities are delivered before its production. It’s important to emphasize that the cost to fix bugs from a system in production is bigger that the cost to fix them in the development phase.
One of the main challenges of quality professionals is to define what quality is inside the context, considering variables such as deadline, budget, product knowledge, team among other challenges.
That’s why is always important to emphasize the significance of the quality process within the system development, being an essential part from the begining and being necessary in the end, so that the whole team realizes the added value to the product because when deliveries are made with bugs that implicate the operation of the system, the delivered value to the customer is equally compromised.
Choosing quality practices throughout the development of the product is to invest in failure prevention because once introduced in the work process, it is guaranteed that the product is dilevered with minimal errors. By running the tests with warranty, it’s possible to simulate the use of the system, making possible issues being avoided in the day to day life of the user.
System tests validate several conditions that may identify some issues. For this there are the Funtional Tests that validate the operation of the aplication according to the requirements defined by users, that is, they validate the functions in wich it was agreed to run, performing as planned and expected by the users. The Usability Tests valide how the users behaves using the system, validating if it is intuitive and usual, within the rquested requirements.
The Automated Tests are used to control the execution of tests through testing instruments, comparing if the final result is in accordance with the expected result. One of the main objectives of this test is to reduce time, since a large volum of tests can be performed in a short period of time without the need for manual events, another advantage is the possibility of repeating a controled suite of test cases several times (Regression Test) within the development cycle. This is one of the points that make it possible to guarantee (and not control) the quality of the software. Other important tests to run before a delivery are the Security Tests wich validates if the application is secure against supposed attacks, and Load and Stres and Performance Tests, validating the aplication’s capacity in relation to its response time, capacity of concurrent users using the system, amount of resouces in use (memory, disk and processing), among others. However, it’s important to emphasize that these tests creat costs and time to be developed and executed, so their executions must to be previously agreed and planned with the product requester.
However, to ensure that the tests are executed effectively and that the result is indeed satisfactory there are some practices that can be adopted to make the process easier, are they:
Who writes the test cases shouldn’t be the same person who developed the system – To write and run the test scenarios is necessary an expert tester, different from a developer profile, who will decode the system and will have dificulties to finding errors in your own code; and
Time available to run the tests – It’s known that in the ideal world all projects and development team would consider time for the test analyst to execute the scenarios, but that is not that way that it works. So it’s necessary to always consider the reality of the project being executed, so that the test being a essential part of the delivery; and
Maturity of testers – What’s the use of a well-specified and developed product with high tech if the final delivery doesn’t satisfy the customer? It’s there where the tester shows its value by ensuring the qualiy of the developed product, adopting the most effective models to perform tests and ensure the consistency of the system; and
Test scenarios are infinitie – There’s always a funcionality or a scenario that can be validated and there will never be time to test all of them, so it’s necessary to consider the relevance of the functionalities to be tested at the time of the creation of the test case, because if every single detail is considered there will be no time to run all the tests; and
Be pessimistic – Seemingly inoccent test can be a trap! As the maturity of the tester grows, the feeling increases and the simplest scenarios end up demanding the same atention as the complex ones; and
Record and track everything -Keeping recorded and tracked all failures found in the environment is an essential part of the quality of test. An important tip: when registering a bug, describing with details every step performed until the error is reproduced makes the developer’s work easier and reduces the time to fix it. Track and test again the error until the bug is eliminate; and
Don’t be obvious – During tests, explore the system in order to find errors unnotice by the development team or even the business area. Try not to run the test by the easy path, and construct test scenarios to indicate this situations; and
Think as the user – This makes it easier to develop test scenarios and implementation of the tests because expands the tester’s mind to the user’s reality and not only cases related to the system.
An essential part of quality assurance in test execution is to follow best practies in developing test scenarios. Tha main thing is that the test case must to be self-sufficient, comprehending all steps to reach the expected result, so that the tester can execute it without impediments. Avoidng test cases from being extensive and tiring makes the tester keeps on the focus, for this it’s important to write the steps clearly and objectively, describing the expected result with the execution. The test cases must be written waiting for positive and negative results of the system.
Regarding the quality of the system, the developers must not disregard the needs and roles of users because each customer has a different need in relation to the same product. In general, users are more interested in the system performance, its functionality and how it will respond their needs. With the most competitive market and the increase of the supply products, the customer is aware of his power. This demands a higher quality in product development and quality assurance to atends this new customer profile.
As any process, developing a system is also subject to failures that can disappointed the end user. The products need to be developed considering that they will be released to users with the quality levels that they expected at the begining of the project. Thereby, giving due value to the quality area and including their values and practices from the biginnng of the project is essential for value deliveries that satisfy customers.
Ana Luiza de Freitas Gil Câmara Santos | Quality Analyst
OLIVEIRA, Thaís. Automação de testes: o que é, quando e por que automatizar. Medium, Apr 03, 2018. Available in: <https://medium. com/venturus/quais-as-raz%C3%B5es-para-automa%C3%A7%C3%A3o-de-testes-c177cbd9397>. Access in: Jul 01, 2020.
CARVALHO, Ingrid. Boas Práticas de Teste. Medium, Apr 11, 2019. Available in: <https://firstname.lastname@example.org/boas-pr% C3%A1ticas-de-teste-fd826e25f68>. Access in: Jul 07, 2020.
SANTOS, Glyciane Silva. Melhores práticas na elaboração de casos de teste. Cedrotech, Jun 01, 2018. Available in: <https://blog. cedrotech.com/melhores-praticas-na-elaboracao-de-casos-de-teste/>. Access in: Jul 07, 2020.
ABREU, Bruno. Como manter a qualidade durante um processo de desenvolvimento digital. One Day Testing [s.d], Available in: <https:// blog.onedaytesting.com.br/qualidade-desenvolvimento-digital/>. Access in: Jul 16, 2020.
RICARDO, Diana Rúbia Rodrigues. Desenvolvimento de uma Metodologia para Testes Exploratórios. UFPE, Recife, Aug 22, 2007. Available in: <https://www.cin.ufpe.br/~tg/2007-1/drrr.pdf>. Access in: Jul 18, 2020.
QUALIDADE de Software. DevMedia [s.d], Available in: <https://www.devmedia.com.br/qualidade-de-software/9408>. Access in: Jul 22, 2020.