This course provides a student of software engineering or software professional a complete understanding of software testing. It covers the psychology or mindset that a tester should possess in order to be able to test a program successfully. Testing is by definition a destructive activity and the tester’s mind should be programmed to find errors in the program, rather than to certify it as “working”. The course also covers the key principles that should be kept in mind for a testing organization, the most notable ones being that an individual should not test his own code and that a program should be tested for both valid and invalid conditions. Following these principles will help a professional or organization to reap the benefits of testing.
The course also offers an insight into static testing, i.e. reading the code without executing it. Formal techniques of review like inspection and walkthrough are introduced along with job aids that greatly enhance the professional’s ability to detect errors before conventional testing begins.
The main focus of the course is the coverage of test case design techniques, namely white box techniques like statement, decision and condition coverage and black box techniques like equivalence partitioning, boundary value analysis, cause effect graphing and error guessing. White box techniques use an understanding of the structure and logic of the code to design test cases and are hence useful at unit and integration levels while black box techniques depend only on the inputs and outputs or “functionality” of the program to design test cases and are hence more suited for system testing.
These techniques help in making testing economicalas it is practically impossible to test every line of code or every input and output condition. Usage of these techniques helps in reducing the potential number of test cases to a more manageable level without compromising on its effectiveness.
The course also discusses some integration strategies like top-down and bottom-up along with their merits and demerits. Incremental and non-incremental methods are also covered. Also covered are a number of non functional types of testing like volume, stress, security, usability, performance, reliability, storage, compatibility, recovery and serviceability. This is very useful for a test organization to plan its testing efforts since many a times test organizations plan only for functional testing and non functional testing is done almost like an afterthought! This can severely compromise perceived quality of the product since for the user, non functional requirements are as important as functional requirements.
The course also addresses issues arising in testing modern technologies like web and mobile as well as modern methods like Agile. Because agile methods are highly iterative in nature, testing is required to fit in with the fortnightly or monthly iterations. This requires some changes to the traditional way of test planning and execution with extra emphasis on regression and automation. Web and mobile applications are difficult to test because of the extremely large and unpredictable user base along with volume and security considerations. This course hopes to address all of these.
Udemy Coupon Code : https://www.udemy.com/software-testing-testing-techniques/?couponCode=TINTIN