Bug, Defect, Error, Fault in Software Quality Engineering .pptx
Jamiluddin39
21 views
36 slides
Dec 19, 2024
Slide 1 of 36
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
About This Presentation
resolving bugs, defects, errors, and faults in software quality engineering
Size: 1.05 MB
Language: en
Added: Dec 19, 2024
Slides: 36 pages
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