Monday, December 30, 2019

Functional Testing

Also called component testing. Testing each and every component thoroughly (rigorously) against requirement specifications is known as functional testing.

Thus, during testing, we must remember the following points,
a) We must always start testing the application with the valid data. In the above example for amount transfer, we see that we have entered the valid data 100
only in the 6th test. This should not be done, because if the valid data itself is not taken correctly
, then we need not have to waste our time checking for the invalid data
b) If the application works for valid data, only then we must start testing for invalid data
c) If the application is not working for 1 of the invalid values, then we can continue testing for all the other invalid values and then submit the test report of all the defects for invalid values.

d) In testing, we should not assume or propose requirement. If we have any queries, talk to the one who knows the requirements very well and clarify the queries.
e) We must not do over-testing ( testing for all possible junk values ) or under-testing ( testing for only 1 or 2 values ). We must only try and do optimize testing (testing for only the necessary values- both invalid and valid data).
f) We must do both positive testing (testing for valid data) and negative testing (testing for invalid data).
Interface elements include but are not limited to:

Input Controls: checkboxes, radio buttons, dropdown lists, list boxes, buttons, toggles, text fields, date field


Navigational Components: breadcrumb, slider, search field, pagination, slider, tags, icons


Informational Components: tooltips, icons, progress bar, notifications, message boxes, modal windows


Containers: accordion


The characterstics of a good requirement are,

1) Unitary ( cohesive ) – the requirement addresses 1 and only 1 thing
2) Complete – the requirement is fully stated in 1 place with no missing information
3) Consistent – the requirement does not contradict any other requirement and is fully consistent
with all authoritative external documentation 
4) Non-Conjugated ( Atomic ) – the requirement is atomic i.e, it does not contain certain conjunctions
. Ex – “the postal code field must validate American and Canadian postal codes” should be
written as two separate requirements : 1) “The postal code field must validate American
Postal codes” and 2)
“The postal code field must validate Canadian Postal codes”.
5) Traceable – the requirement meets all or part of a business need as stated by stakeholders and
authoritatively documented
6) Current – the requirement has not been made obsolete by the passage of time
7) Unambiguous – the requirement is concisely stated without recourse to technical jargon,
acronyms etc. it expresses objective facts, not subjective opinions. It is subjective to one and
only one interpretation.
8) Mandatory – the requirement represents a stakeholder defined characterstic the absence of
which will result in a deficiency that cannot be ameliorated
9) Verifiable – the implementation of the requirement can be determined through one of 4
possible methods – inspection, demonstration, test or analysis.

1 comment: