Nowadays a lot of value addition and learning has been associated with testing as a career. Nowadays, automation testing is a mandatory skill for every person who wants a breakthrough in a testing job that involves the same programming skill as needed by a developer. Moreover, API, security, database, load are crucial aspects of a strong testing profile. After spending a couple of years, you have to be really into a developer’s shoe for a long term career as a software test engineer.A software test team is responsible for the quality of the product, and in today’s world of high competition, the slightest quality compromise and the defect will lead to drastic monetary loss, a decline of the user base, and even failure of the product. Therefore, software testing is a highly demanding role nowadays.You’ll have a great career path if you broaden your profile to include a multitude of tools and technologies that covers the entire aspects of testing. Just like a full stack developer, a full stack tester is in high demand who can cover the functional as well as non-functional aspects of testing for the product. A tester is expected to think from a business point of view as well, unlike a developer who just codes as per the design documents.Certification from ISTQB (International Software Testing Qualifications Board) is a good way to kick start testing as a career for the beginner or a newbie as it will give you an upper edge over the non certified beginners.
Software Testing Guide for beginners:Below is the software testing guide which a beginner must go through to get an insight and understanding of the software testing process, methodology, and phases, moreover the below tutorial will help you in kick-starting the preparation for ISTQB certification:1. Testing in software engineering2. Types of Testing3. Test life cycle4. Phases of software testing5. Bug/defect life cycle6. Different attributes of a bug7. Verification, Validation and V-Model8. Software test deliverables and key performance indicators
What is testing in software engineering ?
Testing is a process of finding faults and defects in the application under test so that the quality of the product can be improved and it is made defect free before it is rolled out for the actual end users to use. The purpose of testing is to make sure that the product is living up to the business expectations i.e. all the functional requirements are fulfilled by the product. Moreover, the product is also validated for the non functional aspects. For e.g. the product should be robust enough to bear the intended user load, the product is secure enough to maintain the integrity of user data and not vulnerable to hackers, and lastly, the product should be easy to use and enhance the user experience so that the user base can be retained.
What are the types of software testing ?
The entire testing has been categorized into two types:Functional testing: Every product in existence has some purpose to serve. The product under development is meant to serve something to its end-user. The validation of a product to ensure that it delivers the intended services to its end-users is called functional testing. In other terms, the testing carried out to ensure that the product is fulfilling and conforming to all its business requirements is called functional testing.Non-functional testing: Non-functional testing is carried out to test the non-functional aspects of the product. For e.g. the product should be robust enough to bear the intended user load, the product is secure enough to maintain the integrity of user data, and not vulnerable to hackers, and the product should be easy to use and enhance the user experience so that the user base can be retained.
What is Test life cycle ?
The below image depicts the typical STLC phases. Requirement Analysis: During requirement analysis, brainstorming sessions are conducted, requirements received from the business team in the form of SRS-(system requirement specification), FRS- (functional requirement specification), and BRS-(business requirement specification) are analyzed, reviewed, and understood from a QA perspective. Reviews and walkthroughs are conducted and lastly, RTM (requirement traceability matrics) is prepared by the test team. RTM is nothing but the mapping of test cases with requirement IDs. RTM is useful to make sure that the test cases have covered all the requirements and none of the requirement is missed from testing coverage.Test planning: In the test planning phase, important parameters required for testing and conditions are identified and documented. A test plan specifies the important parameters needed for testing and defines the blueprint, approach, and road map for testing. You can refer to my in-depth article on test planning and test plan format.Test Case creation phase: A test case is a document used to validate the features, components, and scenarios of an application under test. A test case specifies the preconditions, inputs, steps to execute, and expected result of an operation or feature to be tested. During test case creation, the scenarios, test input, preconditions, and steps to execute are identified and documented in a test case document.Test case execution phase: During test case execution, the features and components of an application under test are validated by referring to the steps, and by applying the appropriate test data and preconditions. The actual result is matched against the expected result and the status is updated accordingly. Any mismatch in the expected and actual result along with other defects are logged in the defect logging tool during test execution.Test cycle closure: Test cycle closure is an activity which is performed after the conclusion of test execution. The test results, test metrics, and test report have been generated and key performance indicators are shared with the stakeholders.