Recently I was reviewing the test cases of one of my colleagues who has joined as a fresher in the testing team. Though he had tried his best to cover up all the test cases as per the functionality and WireFrame provided in the Business Requirement Specification, I found that cases written were not descriptive to be understood in one go. I had to ask him multiple times what he meant to say in Case 1, then in Case 2 and so on…
In my experience, I have observed this multiple times. The test cases written by testers are not quite descriptive, people try to address multiple things in a single test case which actually makes it difficult to understand. A test case should be so specific that even a lay man should understand what it is actually trying to cover and test. Functional test cases need to be developed, reviewed, used, managed and saved.
What does a Test Case mean?
IEEE Standard 610 (1990) defines test case as follows:
“(1) A set of test inputs, execution conditions, and expected results developed for a particular objective, such as to exercise a particular program path or to verify compliance with a specific requirement.”
“(2) (IEEE Std 829–1983) Documentation specifying inputs, predicted results, and a set of execution conditions for a test item.”
It’s basically what you are testing, with what input, what you expect in return and finally recording the actual outcome of the test.
Furthermore, Test Cases can be classified into different categories like GUI, Functional, etc.
What is a Functional Test Case?
A test case which covers the specific functionality of the application can be termed as “Functional Test Case”. Functional test case is attached to a certain function or feature of the application and verifies if it produces the expected result as mentioned in the Business Specification or Functional Specification Document.
Before anything is moved to production, it is required to test that specific feature in the test environment to verify it is actually performing the required function correctly.
Not everything you test in the application relates to the functionality or feature. There are, for example GUI related things like Color, Background, icons, text color, font size, etc which can be tested separately, though these are also important aspects with regards to the application however can not be taken as functional test cases.
What should a Functional Test Case have?
These points are not specific to functional test cases and can be covered in normal test cases as well. However for writing a functional test it is recommended to cover the following:
- Menu Name — Window name where functionality needs to be covered.
- Description of the test case.
- Pre Conditions required.
- Steps required to execute the test.
- Expected Output.
- Actual Output.
- Remarks — In case, any additional info needs to be provided.
In case of test case failure, always make sure that you provide all the required information that is available at your end in the Actual Output column. Information like the following is very handy for the developers to debug the issue and also understand the cause of the failure:
- Error message displayed.
- Error log.
- Screenshot of the issue.
- Exact steps to reproduce the issue.
How to write a Functional Test Case?
Let’s take the example of login functionality and write a few test cases.