Amanda Wen
Contact Me

The Functional Requirement specifies how the system or application SHOULD DO where in

Non Functional Requirement it specifies how the system or application SHOULD BE. Every Mobile automation testing process contains both functional and non functional testing process. It is importnat to know and understand different elements of testing because it helps you find out the right step to find and fix bugs in an easy way.

Some functional Requirements are

  1. Authentication
  2. Business rules
  3. Historical Data
  4. Legal and Regulatory Requirements
  5. External Interfaces

Some Non-Functional Requirements are

  1. Performance
  2. Reliability
  3. Security
  4. Recovery
  5. Data Integrity
  6. Usability

What is the difference between Priority and Severity?

The terms Priority and Severity are used in Bug Tracking to share the importance of a bug among the team and to fix it.

Severity: Is found in the Application point of view

Priority- Is found in the User point of view

Severity- (tells the seriousness/depth of the bug)

The Severity status is used to explain how badly the deviation is affecting the build.

The severity type is defined by the tester based on the written test cases and functionality.


If an application or a web page crashes when a remote link is clicked, in this case clicking the remote link by an user is rare but the impact of application crashing is severe, so the severity is high and priority is low.

PRIORITY- (tells which bug should rectify first)

The Priority status is set by the tester to the developer mentioning the time frame to fix a defect. If High priority is mentioned then the developer has to fix it at the earliest.

The priority status is set based on the customer requirements.


If the company name is misspelled in the home page of a website, then the priority is high and the severity is low to fix it.

Severity: Describes the bug in terms of functionality.

Priority: Describes the bug in terms of customer.

Few examples:

High Severity -Low priority

Supposing, you try the wildest or the weirdest of operations in a software (say, to be released the next day) which a normal user would not do and supposing this renders a run -time error in the application,the severity would be high. The priority would be low as the operations or the steps which rendered this error by most chances will not be done by a user.

Low Severity -High priority

An example would be- you find a spelling mistake in the name of the website which you are testing.Say, the name is supposed to be Google and its spelled there as ‘Gaogle’. Though, it doesn’t affect the basic functionality of the software, it needs to be corrected before the release. Hence, the priority is high.

High severity- High Priority

A bug which is a show stopper. i.e., a bug due to which we are unable to proceed our testing.An example would be a run time error during the normal operation of the software,which would cause the application to quit abruptly.

Low severity – low priority