As QA Analysts our primary function is to find ways to break a given piece of software, but this is not something we do randomly, rather there is an efficient process to be followed. When we are given the requirements for the Software Under Test (SUT) we have to intimately study each requirement and ask ourselves, “How can we test this?” and then “Under what conditions can this test fail?”. Thus we plan out testing scenarios which wil then lead to us writing out a series of test cases which will help us validate whether the SUT does or does not meet the given requirements. Here is a good article that discusses how to write Test Cases in detail, including giving you a visual on how to structure the TC matrix.
Test Care Writing (Creation) 101
Hope you guys find it helpful.
Verification answers the question “Am I building the product correctly?” i.e. Does the product do what the requirements said that it should do. Verification is a low-level activity, done by testers and developers mostly, and performed during development on key artifacts, like walkthroughs, reviews and inspections, mentor feedback, training, checklists and standards. It is a Demonstration of consistency, completeness, and correctness of the software at each stage and between each stage of the development life cycle.
According to the Capability Maturity Model(CMMI-SW v1.1) we can also define verification as the process of evaluating software to determine whether the products of a given development phase satisfy the conditions imposed at the start of that phase. [IEEE-STD-610].
Validation answers the question “Ami I building the right product?” i.e. Does the product being built actually fulfill its intended purpose and meet the client’s needs? Validation is done at the end of the development process and takes place after verifications are completed. It is a High level activity, performed after a work product is produced against established criteria ensuring that the product integrates correctly into the environment.
According to the Capability Maturity Model(CMMI-SW v1.1) we can also define validation as The process of evaluating software during or at the end of the development process to determine whether it satisfies specified requirements. [IEEE-STD-610].
One of the first things that we learn as QA Analysts are the 7 principles of Testing, as set up by the ISTQB, which govern the overall tone and attitude of testers.These are open to interpretation, but you often come across them in various testing environments, and may find them useful in given circumstances. Continue reading The 7 Principles of Testing.
When you have a series of test cases in a script using an “assert” will halt the test run when it encounter a failure. On the other hand with a “verify” command it will continue to run and log the rest of the tests regardless of failures.
So the choice really dependent on the function you are testing. For example, if you have an email submission form and you want to test that the data verification module works for each input then you can test each input and just return the fail/pass results. Here you will use a verify statement.
But if on the same email submission form if you are testing the email submission functionality then if the first field, lets say, First name is not functioning properly then there is no point in testing the rest of the submission process, Here you will use an assert.
In practice however you use a combination of both. The Selenium documentation gives details of how this is done here.
Selenium does not have the capability to automate captchas. This must be done manually by the tester. Ideally during the test period the tester should collaborate with the development team to disable the captcha temporarily so that the tests could be run unsupervised.