Your Complete Guide Regarding QA Jobs
What is QA?
The Software Development Life Cycle (SDLC) involves several distinct stages, including planning, design, building, testing, and deployment. A Software QA looks at the testing phase. A software quality assurance engineer is someone who monitors every phase of the software development process to ensure the quality of the software. They make sure that it meets the standards of the company which would be stated beforehand as the requirements
specifications. They make sure that the new products work before being released to the public. If there are any bugs they are reported and sent back a phase until it is ready to be moved to the release stage. The basic goals of software tests are to eliminate bugs and to enhance various aspects of the software, such as performance, user experience, security, and so on.
Types of testing:
There are 2 main types of testing: functional and non- functional testing.
Functional tests are performed both manually and using automation tools. For this kind of testing, manual testing is easy, but you should use tools when necessary. Some tools that you can use for functional testing are Selenium, Micro Focus UFT (previously known as QTP, and UFT stands for Unified Functional Testing), JUnit, soapUI, Watir, Appium, JMeter, Jenkins, TestLink, Postman, Bugzilla, Mantis, Jira, etc.
Functional tests include:
- Unit testing
- Integration testing
- System testing
- End-to-end testing
- Smoke testing
- Sanity testing
- Regression testing
- Acceptance testing
- White box testing
- Black box testing
- Interface testing
- Security testing
Unit testing is when individual units or components are tested. This may involve testing a feature or a function. This will validate each unit of the software. Normally the developers carry out unit tests to test their code but QA Engineers may also be required to do these tests. Common tools QA Engineers and Developers use for Unit testing are JUnit, NUnit, JMockit and PHPUnit.
This is normally done after Unit testing. This is when all the individual units are tested as a whole. This is done to see if there are any faults in the interaction between all the units being integrated. This is done before system testing. Common tools used for this are FitNesse, Protractor, Jasmine etc.
Checks the features and functionalities of the software system. It validates the complete integrated product and its purpose is to evaluate the end to end specifications.
End to end testing:
End to end testing Involves testing the entire product from beginning to end to check the flow of the software and see how it behaves. This is to simulate a real user scenario. This is done after system testing. Common tools used are Cypress, WebdriverIO, Protractor etc.
This is done to see if the QA team can keep progressing with further tests by determining if the deployed build is stable enough. The main aim is to detect any major issues before continuing. Any time there is a new functionality added then a smoke test needs to be done to ensure that they are working correctly. This can be done by developers or testers.
This is done after multiple rounds of regression tests. This is done as a basic test to check the code changes made to the software build and verifies the new functionality after bugs are fixed. It determines if the build can continue or not. This is done by testers.
This is done after any changes are done to the features. Tools used for this are QTP, Selenium, Watir, Silk test etc. This is commonly done by testers.
This is to test if the requirements are met and assess whether it is acceptable for delivery. There are different types of acceptance testing such as User Acceptance Testing (UAT), business acceptance testing, Alpha testing, Beta testing etc.
White box testing:
This tests the internal structure of the application. This is used by both developers and testers.
Black box testing:
This tests the functionality of the application without looking into the internal workings.
This is testing the products graphical user interface to ensure it meets the specifications of the company.
Is done to uncover any vulnerabilities of the application and determine that the data is protected from possible intruders. This is done by identifying weaknesses with the network and system.
Non-functional testing is the testing of non-functional aspects of an application, such as performance, reliability, usability, security, and so on. Non-functional tests are performed after the functional tests.
Non-functional testing allows you to polish the software. This kind of testing is not about whether the software works or not. Rather, it’s about how well the software runs, and many other things.
Non-functional tests are not generally run manually. In fact, it’s difficult to perform these kinds of tests manually. So these tests are usually executed using tools.
Non-functional tests include:
- Performance testing
- Load testing
- Failover testing
- Compatibility testing
- Usability testing
- Scalability testing
- Volume testing
- Stress testing
This is the process of determining the speed, responsiveness and stability of a computer, network, software program or device under a workload. The tools used for performance testing are Jmeter, LoadRunner, SilkPerformer etc.
This type of testing is done mainly on multi-tier systems to determine a systems behaviour when being accessed by many users. This is to ensure that the system can still run correctly at peak times.
This is done as a precaution to the server failing and testing if the system will be able to back up systems during this.
This is to test how easy or difficult the software is to use for the end users. It is difficult to measure as it is done by testers completing a series of tasks and reporting back on
the usability of the system.
This is different to performance testing as it is testing if the system can handle an increased workload without impacting the performance of the system.
This is done by increasing the data in the database and see how the system performs under a huge data load. This is also referred to as flood testing.
This is done by gathering system data, defining the goals and creating test scripts. This will tell us how the system behaves under heavy network traffic, process loading etc and tell us how the system performed.
Effective QA Best Practices:
- Understand business goals
- Make acceptance criteria clear
- Know your supported platforms
- Prepare test plan
- Use test cases/checklists
- Use continuous integration and continuous deployment (CI/CD)
- Keep test cases/checklists updated
- Share release notes with your clients
- Never forget about exploratory testing
Are you suited to be a software quality assurance engineer?
Most software quality assurance engineers have distinct personalities. They tend to be investigative, intellectual, introspective, patient and inquisitive people. Testing isn't for everyone. It takes a creative, technically minded person to be a successful tester.
Who hires QA Engineers?
Technology companies hire QA Engineers to join their teams to test software being created by the development team. They will test new products and new features. Their role is to ensure that the application has been tested in many ways before releasing the application to the public. Large companies often have QA teams but in smaller companiesQA Engineers may work as the only QA on a team of developers.
Who are the biggest employers in Ireland of QA Engineers?
After conducting research from LinkedIn, it was found that out of a study of 10,000 developers all based in Ireland the biggest employers for Software QA Engineers/Testers are Zenith Technologies, IBM, Workday, Ericson, Microsoft, Intel Corporation, Dell and Hewlett Packard Enterprises.
Why work in QA?
QA Engineers play a big part in the company. They are doing more than just testing for bugs, they are contributing to the product and improving it so the best possible version of the product can be released. At the end of the day the users of the product will judge the quality of the product so a QA Engineers role is important to the users. Being a QA Engineer these days is definitely more of a technical role then people believe. Working on the automation side of testing is a very highly technical role and has so many opportunities for career development.
QA Engineers career timeline normally starts as a manual tester then junior automation tester, then mid level, then senior automation engineer. This can then lead to roles such as QA Lead and QA Manager. A manual tester normally earns about €35,000 a year. This is the same for a grad or a Junior QA Engineer. A mid level Automation Engineer would earn €40,000-€50,000 a year and a Senior would earn €50,000-€65,000. A Lead QA Engineer earns about €65,000 - €70,000 and a QA Manager can earn up to €85,000 or so.
Some people believe that QA Engineers get paid much less than Developers but that is a myth as QA Engineers earn about the same as Developers who have the same amount of experience.
Typical interview process for QA’s:
From GemPool’s experience with guiding QA Engineers through the interview process, we have noticed that there tends to be 2-3 rounds of interviews. The first round would normally be a phone interview and it would be technical. The interviewers may consist of a QA Manager, a QA Engineer, a Developer on the team or maybe even CTO depending on the company and the position.
The second round is normally a face to face interview onsite with the company where there would be 2-3 interviewers. This would also be quite technical and could follow up with a technical test. This could involve testing a feature of their product. They would normally give a time frame for this of about 3-5 working days.
The third round would be onsite also and they would talk through the tech test, they may ask some questions to see if you would be a cultural fit and someone from the HR team could join in and ask questions around notice periods and salary expectations etc.
At this point you have gotten to meet a lot of the team members and should have a fair idea of the role, company, team and the culture. If successful it would then go to the offer stage.
The future of QA jobs:
QA roles are changing and will keep changing in the near future. Manual tester roles are becoming less and less common as automation testers carry out these tests or sometimes the developers themselves carry out the manual tests of a product. Automation testing is also starting to be done by developers as part of their role. That being said there is still a need for both manual testers and automation testers, especially in larger companies who would have teams made up of testers.
As recruitment consultants, our job is to give you information on the job, the company, the project, the team and the interview process and we also ask you some screening questions. We then send your CV and a short paragraph about you to our point of contact with that client, this may be the Hiring Manager for that role, someone in HR or a recruiting Coordinator depending on the structure of that client. From there, we work with the client in regards to setting up interviews and gathering feedback for hiring managers etc.
We bring you through the interview process as smoothly as possible by helping you in arranging interview times, sending you interview prep and guiding you through the process. We have a relationship built with this client, we may know the hiring managers personally and know what skills and characteristics they are looking for. This will help us guide you and give you the best chance at a successful interview.
Typical length of Recruitment cycle for QA roles.
This can vary from client to client and depending on the demand for the role and how long the recruitment process is but, on average, this should take about 2-3 weeks from submittal to final round interviews and then with notice periods included it could take up to 4-6 weeks from submitting your CV to your first day working.
If you ever wish to discuss QA, the current market or just looking for career advice, contact Laura on 01 905 2948 or email email@example.com