Software testing can be stated as the process of verifying and validating that a software or application is bug free, meets the technical requirements as guided by its design and development and meets the user requirements effectively and efficiently with handling all the exceptional and boundary cases.
The process of software testing aims not only at finding faults in the existing software but also at finding measures to improve the software in terms of efficiency, accuracy and usability. It mainly aims at measuring specification, functionality and performance of a software program or application.
Standard Job Description:
Software Test Engineer is an umbrella term for many specialists who are versed in different testing approaches including automation, exploratory testing, performance testing, etc. But here as we identify the six roles, by STE we mean a testing specialist who minimally relies on automation. Despite having a strong tendency towards automation testing today, some test scenarios can turn out to be time- and cost-consuming or they are just not possible to automate, like real user interactions.
Software testers play a critical role in application development. They are quality assurance experts who put applications through the wringer to root out bugs, poor performance and funky interface issues. To do this, they run all kinds of tests – stress, performance, functional, scalability, user acceptance – at different stages of the software life cycle. Because software testing is so important to the quality and usability of the final product, testers are typically brought in at the planning and design stage, and often remain involved throughout post-release support.
Most testers work on teams that develop vendor software. Today, a lot of software is pushed through DevOps (development + operations) teams, where development, testing, and delivery are on a continuous loop using the Agile, Lean, or Scrum frameworks.
Test Engineers find defects in a system and make sure that test requirements match test objectives. After a test plan with a detailed understanding of the testing workflow is completed (including test strategy, environment requirements, test schedule, functions to be tested, resources and responsibilities, deliverables, exit criteria, tools, etc.), testers write test cases — scripts describing an input action and an expected response.
While running a test, STEs compare the actual result with the ones outlined in the test case, logging a defect if they don’t match. The found defects are communicated to other departments or other team members in test execution status reports or via any bug tracking and management tool, e.g., Jira.
Once the engineering team reports that the defect is resolved, a STE must verify whether the problem is now fixed. Their workflow is managed in daily status reports that monitor the progress of the project and each tester involved. The status reports take different forms: an email, a document, or a live meeting.
Software Testing can be broadly classified into two types: Manual Testing and Automation Testing. Software techniques can be majorly classified into two categories: Black box testing and White box testing. Software level testing can be majorly classified into 4 levels: Unit Testing, Integration Testing, System Testing, Acceptance Testing.
Key Job Responsibilities:
1. Document test cases.
2. Perform and document risk analysis.
3. Record test progress and results.
4. Code automated tests.
5. Create test plans.
6. Develop standards and procedures to determine product quality and release readiness.
7. Discover bugs within software.
8. Drive innovation and streamline overall testing processes.
9. Identify, isolate, and track bugs throughout testing.
10. Identify any potential problems that users might encounter.
11. Perform manual and automated testing.
12. Research and analyze product features being tested.
13. Research new tools, technologies, and testing processes.
14. Review user interfaces for consistency and functionality.
1. Experience in software development and testing
2. Project development and leadership skills are essential in planning and overseeing project tests
3. Current understanding of best practices regarding system security measures
4. Advanced understanding Experience with software engineering, customer experience and design architecture
5. Advanced knowledge of testing methodologies and when certain strategies are recommended
6. Extensive knowledge and experience working with various operating systems and backend programming
7. Professional work experience in analyzing and testing computer hardware and software
8. Hands-on experience with Quality Management Systems (QMS)
9. Great troubleshooting skills
BTech/ B.E., MCA, BCA, BSc- Computers
1. ISTQB Foundation level is the basic certification in Testing field.
2. Certification on popular testing tools like- QC, LoadRunner, Aruba, Selenium, etc.
3. CSTE certification by International Software Certification Board (ISCB)
Manual Testing, Defect Management, Test Case Execution, Test Analysis, Test Reporting, Test Case Design, Test Lead, QA Automation, QTP, Mobile Application Testing, Quality Center, Test Management, Selenium Web driver, SDLC, STLC, Framework Design, Regression Testing, Jira.
1. Software Engineer
2. Software Test Engineer
3. Software Tester
4. QA Tester/Engineer
5. Test Automation Engineer
6. Test Architect
Screening Questions/Assessment Parameters:
1. Basic knowledge of Database/SQL (different types of databases like Oracle, MySQL, etc.)
2. Basic knowledge of Linux commands
3. Knowledge and hands-on experience of a Test Management Tool (Several tools are used like QC, Bugzilla, Jira, etc.)
4. Knowledge and hands-on experience of any Defect Tracking tool
5. Knowledge and hands-on experience of Automation tool
1. Quality Assurance. QA includes activities that ensure the implementation of processes, procedures and standards in context to verification of developed software and intended requirements.
2. Quality Control. It includes activities that ensure the verification of a developed software with respect to documented (or not in some cases) requirements.
3. Testing. It involves identifying bug/error/defect in a software without correcting it.
4. Debugging. It involves identifying, isolating, and fixing the problems/bugs.
5. Test Plan. A test plan outlines the strategy that will be used to test an application, the resources that will be used, the test environment in which testing will be performed, and the limitations of the testing and the schedule of testing activities.
6. Test Scenario. It is a one-line statement that notifies what area in the application will be tested.
7. Test Case. Test cases involve a set of steps, conditions, and inputs that can be used while performing testing tasks.
8. Traceability Matrix. Traceability Matrix (also known as Requirement Traceability Matrix – RTM) is a table that is used to trace the requirements during the Software Development Life Cycle.
9. Alpha Testing. This test is the first stage of testing and will be performed amongst the teams (developer and QA teams).
10. Beta Testing. In beta testing, a sample of the intended audience tests the application.
1. Manual Testing. Manual testing includes testing a software manually, i.e., without using any automated tool or any script.
2. Automation Testing. Automation testing, which is also known as Test Automation, is when the tester writes scripts and uses another software to test the product. Automation Testing is used to re-run the test scenarios that were performed manually, quickly, and repeatedly.
3. Black-Box Testing. The technique of testing without having any knowledge of the interior workings of the application is called black-box testing.
4. White-Box Testing. White-box testing is the detailed investigation of internal logic and structure of the code. White-box testing is also called glass testing or open-box testing. In order to perform white box testing on an application, a tester needs to know the internal workings of the code.
5. Grey-Box Testing. Grey-box testing is a technique to test the application with having a limited knowledge of the internal workings of an application.
6. Functional Testing. This is a type of black box testing that is based on the specifications of the software that is to be tested.
7. Unit Testing. This type of testing is performed by developers before the setup is handed over to the testing team to formally execute the test cases.
8. Integration Testing. Integration testing is defined as the testing of combined parts of an application to determine if they function correctly.
9. System Testing. System testing tests the system. Once all the components are integrated, the application is tested rigorously to see that it meets the specified Quality Standards.
10. Regression Testing. Whenever a change in a software application is made, it is quite possible that other areas within the application have been affected by this change. Regression testing is performed to verify that a fixed bug hasn’t resulted in another functionality or business rule violation.