Bug, Defect, Error, Fault in Software Quality Engineering .pptx

Jamiluddin39 21 views 36 slides Dec 19, 2024
Slide 1
Slide 1 of 36
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36

About This Presentation

resolving bugs, defects, errors, and faults in software quality engineering


Slide Content

Software Quality Engineering Software Quality Engineering City University Department of CS

Agenda Bug, Defect, Error, Fault & Failure Testing and Debugging Front End vs Back End Testing

What is a bug? In  software testing , a  bug  is the informal name of defects, which means that software or application is not working as per the requirement. When we have some coding error, it leads a program to its breakdown, which is known as  a bug . The  test engineers  use the terminology  Bug . If a  QA (Quality Analyst)  detect a bug, they can reproduce the bug and record it with the help of the  bug report template

Functional Bug During the testing phase of the online banking application, users report encountering an issue where transferring funds between accounts results in transactions not being processed successfully. Further investigation reveals that the "Confirm" button is unresponsive after entering transaction details, preventing users from completing transactions. This unresponsive behavior is identified as a bug in the application. Description : The "Confirm" button in the fund transfer feature is unresponsive, preventing users from completing transactions. Impact : Users cannot complete fund transfer transactions, leading to frustration and potential loss of trust in the application.

What is a Defect? When the application is not working as per the requirement is knows as  defects . It is specified as the aberration from the  actual and expected result  of the application or software. In other words, we can say that the bug announced by the  programmer  and inside the code is called a  Defect .

Validation Defect After deploying the online banking application to a limited group of users, testers identify a defect in the password reset functionality. Users attempting to reset their passwords receive an error message stating, "Invalid security question answer," even when entering correct answers. This discrepancy is logged as a defect in the defect tracking system for resolution by the development team. Description : The password reset functionality incorrectly rejects valid security question answers, preventing users from resetting their passwords. Impact : Users cannot reset their passwords, potentially locking them out of their accounts and causing inconvenience.

What is Error? The Problem in code leads to errors, which means that a mistake can occur due to the developer's coding error as the developer misunderstood the requirement or the requirement was not defined correctly. The  developers  use the term  error .

Implementation Error During the implementation of the account balance retrieval feature, a programmer inadvertently introduces an error in the code that retrieves account balances from the database. As a result, the application displays incorrect account balances for some users, leading to discrepancies in financial data presented to customers. This programming error is identified as an error in the software code. Description : Incorrect coding implementation leads to inaccurate retrieval of account balances, causing discrepancies in financial data displayed to users. Impact : Users may receive incorrect account balance information, leading to confusion and potential financial errors.

What is Fault? The fault may occur in software because it has not added the code for fault tolerance, making an application act up. A fault may happen in a program because of the following reasons: Lack of resources An invalid step Inappropriate data definition

Performance Fault A fault is discovered in the online banking application's transaction processing module, causing intermittent failures in transaction processing during peak usage hours. Upon investigation, it is found that the fault originates from a memory leak in the transaction processing algorithm, leading to system instability and transaction failures under heavy load conditions. Description : Intermittent failures occur in transaction processing due to a memory leak in the transaction processing algorithm. Impact : System instability during peak usage hours leads to transaction failures, affecting user transactions and system reliability.

What is Failure? Many defects lead to the  software's failure , which means that a loss specifies a fatal issue in software/ application or in its module, which makes the system unresponsive or broken. In other words, we can say that if an end-user detects an issue in the product, then that particular issue is called a  failure . Possibilities are there one defect that might lead to one failure or several failures. For example , in a bank application if the  Amount Transfer  module is not working for end-users when the end-user tries to  transfer money , submit button is not working. Hence, this is a  failure . The flow of the above terminologies are shown in the following image:

Availability Failure A failure occurs in the online banking application when customers attempting to access their accounts experience frequent timeouts and connection errors. This failure, attributed to a server overload caused by unexpectedly high user traffic, disrupts access to banking services and compromises user experience and satisfaction. Description : Server overload during high user traffic causes frequent timeouts and connection errors, disrupting access to banking services. Impact : Users experience difficulty accessing their accounts and conducting transactions, leading to dissatisfaction and potential loss of business.

Continue.. The flow of the above terminologies are shown in the following image:

Bug Vs. Defect Vs. Error Vs. Fault Vs. Failure Listed are some of the vital differences between  bug, defect, error, fault, and failure

Conclusion After seeing all the significant differences between  bug, defect, error, fault, and failure , we can say that the several issues and inconsistencies found throughout software are linked and dependent on each other. All the above terminology affects and change different parts of the software and differ from one another massively. However, all these differences between  bug, defect, errors, faults, and failures  slow down the software's excellence and performance.

Testing and Debugging

Into At the time of development and after the outcome of any application or the software product established in any programming language, both  Testing and Debugging  play a vital role in finding and removing mistakes. Both Testing and Debugging are two words that seem to share a similar meaning but intensively different from one another.

E valuation of  testing and debugging

Testing vs Debugging Software testing  is a process of identifying defects in the software product. It is performed to validate the behavior of the software or the application compared to requirements. Debugging is the action where the development team or a developer implements after receiving the test report related to the bugs in the software from the testing team. In the software development process, debugging includes detecting and modifying code errors in a software program.

Debugging Process In debugging process, the developer needs to identify the reason behind the particular  bug  or defect, which is carried out by analyzing the coding rigorously. The developer changes the code and then rechecks whether the defect has been deleted whenever the bug or error is found. Once the debugging is successfully finished, the application is again sent back to the test engineers, who remain in the process of testing. The debugging process allows us an earlier finding of an error and makes software development stress-free and easy. Now, based on features and technique of practice, we can distinguish between  Testing and Debugging .

Example Testing: You're testing a new mobile banking app to make sure it works correctly before it's released. You try different features like logging in and transferring money to check if everything works as it should. Debugging: While testing, you find a problem: users can't complete transactions. As a developer, you dig into the app's code to find and fix the issue. You tweak the code to solve the problem and then test again to make sure it's fixed. In simple terms, testing is checking if everything works, while debugging is fixing things when they don't.

Conclusion both terminologies are dependent on each other, which means that one cannot be implemented without the other one. The outcome of implementing the debugging process is that the issue was fixed and available for re-testing. The test engineer does not fix the defects; relatively, they verify those bugs, which is resolved by the developers. Finally, we can conclude that the developers execute the debugging, and they fix the issues reported by the test engineers in the debugging phase. The testing and the debugging process are performed to make the particular software product better and improved way. And it doesn't depend on which team (testing and debugging team) we belong to.

Front End vs Back End Testing

Intro A web-based application is  three-tier architecture  application. The  first layer  is the  presentation layer  known as  Front-end , and  the third layer  is the  database layer  known as  backend .

What is Frontend Testing? It is a type of  software testing  used to evaluate the  presentation layer  of a  three-tier architecture  in a web application. In a web application, frontend testing will include the analysis of multiple components such as: Menus Graphs Forms Reports and related JavaScript. The word  Frontend testing  is used to covers a diversity of testing approaches. To execute the  frontend testing , a test engineer required a good knowledge of business necessities. It can be executed either manually or with the help of some automation tools.

What is Backend Testing? Backend Testing used to test the  application and Database layer  of a  3-Tier Architecture  in a web application. Essentially, in order to perform the back-end testing, we do not require any  GUI (Graphical User Interface ) as it is achieved on the  AUI (Application User Interface)  and database. That's why we can pass the data directly with browsers' help and the parameters needed for the specific function. And to retrieve the response in a nearly predefined format, such as  XML  or  JSON . We can also connect to the database directly and validate the data with the help of  SQL  commands.

Example Front End Testing: As a front end tester, your responsibility lies in ensuring the user-facing part of the website functions seamlessly. You'll be checking buttons, forms, and navigation, ensuring they work as expected. This testing focuses on the graphical interface that users interact with directly. For instance, you'll confirm that clicking a "Submit" button successfully sends data and that links navigate users to the correct pages. The architecture typically involves technologies like HTML, CSS, and JavaScript. Back End Testing: In contrast, back end testing deals with the server-side functionality that users don't directly interact with. As a back end tester, you'll verify that data is stored and retrieved accurately from databases, and that the server handles requests efficiently. You'll check aspects like database queries, data integrity, and API responses. This testing ensures the smooth operation of the application's logic and data management. The architecture typically involves technologies like databases (e.g., MySQL, MongoDB) and server-side frameworks (e.g., Node.js, Django).

Difference between Frontend Testing and Backend Testing

Conclusion The frontend testing contains  HTML ,  JS ,  CSS , and images, whereas the backend testing contains the business logic testing and database testing. Frontend and backend testing has different activities implemented by the developers that work on both ends of the line. Finally, we can say that the frontend means the  browser  and the  backend , the server, or, more recently, the cloud.

Next topic Software Reliability Models and Engineering
Tags