What is a functional bug and how to find it
- 29.11.2018
- Posted by: Admin
Bug is a defect or an error in a program that causes its incorrect and/or unpredictable operation.
Defects are discovered during the software testing stage when the tester compares the results of the program (component or design) with the expected result. According to the types of testing, bugs can come in different origins. More generally, they can be divided into functional and non-functional. For the most efficient functional testing, it is very important to distinguish functional defects from others. Let’s consider some recommendations:- It is necessary to determine whether the behavior of a particular function is normal under various conditions. Test the function on its own and in combination with other functions to identify potential differences.
- Determine possible options for using the system by the target audience of users, which will help determine the wishes for the system.
- Check the layout and content, as their interference with the functionality can become a functional defect.
- Security testing should be included in the testing process if the customer is interested in it.
- Pay attention to the interaction of the system with third-party browser extensions or antivirus, as they can block some of the content or functionality.
Definition of a functional defect
From this list, a functional defect is a defect associated with a malfunction of a software product. It can be associated with the logic of the application itself, an individual function, or the system as a whole. Depending on the purpose, functional testing can be carried out:- based on the functional requirements of the specification. Test cases are created for complete coverage of all the functionality by tests. In this case, the priority of functions must be taken into account. This approach allows checking the operation of the system under positive and negative scenarios: the introduction of valid and invalid data, various combinations of actions, etc.
- based on the business processes for which the application is intended. It is important that the functionality of the system ensures the correctness of operations from the point of view of scenarios of using the system (use cases).
- What is to be tested? You need to understand what kind of system it is: to clearly know the requirements for its operation and its intended purpose.
- Who is the end user? The answer provides insight and planning for typical system use cases.
- How is the system usually used? It is better to divide the main tasks into smaller subtasks to compose positive test checks.
- How to hack a product? It is also decomposition of the main tasks, but for the purpose of negative testing.
- Subject a system with a complex structure and work logic to functional decomposition. Divide it into simple subtasks that are easier to remember so that you can easily keep in mind all the information about the test object.
- Be aware of inaccuracies as you design your testing strategy. The accumulated questions need to be clarified and put to the person who can give the answer.
- First, carry out positive checks on the most important functional modules. Gradually increasing the complexity of checks, move on to negative cases.
- Applying the techniques of equivalence classes and boundary values will help avoid duplicate tests.
- Combining positive tests is allowed, but combining negative test cases is almost always prohibited.
- validation of all required fields;
- inadmissibility of the introduction of special characters into the fields;
- entering letters into numeric fields - in this case, the corresponding error message should be displayed;
- validation of leap years (do not cause errors in calculations);
- display of a pop-up message: «This field is limited to 60 characters» if the entered data exceeds the number of 60 characters in the "Login" field»;
- reflection of the required currency of the value of the subscription price;
- the function of downloading the file of the terms of the agreement;
- the function of opening the loaded document;
- deleting cookies while on the site;
- deleting cookies after visiting the site;
- redirecting the user to a special error page.
Tags
bug
bug-report
game testing
glossary
homework assessment
Lecture #1 of software testing courses
Lecture #2 of software testing courses
Lecture #3 of software testing courses
Lecture #4 of software testing courses
Lecture #5 of software testing courses
Lecture #6. Software Testing: Basics and Practice
Lecture #7. Software Testing: Basics and Practice
lecture materials
mobile testing
QA terms
qa tips for beginner
self-training
test case
test design
training organizational questions