0% found this document useful (0 votes)
76 views

9-Introduction To Software Testing - Failure, Error, Fault, Defect, Bug-09-08-2023

This document provides information on software testing terminologies and concepts. It defines key terms like error, fault, defect, bug, and failure. It explains the difference between these terms and how they are related. It also covers causes of errors, skills required for software testers including technical and non-technical skills. The document discusses manual testing process and limitations of manual testing. It highlights the need for automated testing tools to overcome the limitations of manual testing and lists advantages of test automation. Finally, it discusses important features that a test automation tool must have.

Uploaded by

ramanentertains
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
76 views

9-Introduction To Software Testing - Failure, Error, Fault, Defect, Bug-09-08-2023

This document provides information on software testing terminologies and concepts. It defines key terms like error, fault, defect, bug, and failure. It explains the difference between these terms and how they are related. It also covers causes of errors, skills required for software testers including technical and non-technical skills. The document discusses manual testing process and limitations of manual testing. It highlights the need for automated testing tools to overcome the limitations of manual testing and lists advantages of test automation. Finally, it discusses important features that a test automation tool must have.

Uploaded by

ramanentertains
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 26

MODULE II

Introduction to Software Testing


Lecture III
Software Testing Terminologies
1. Error
2. Fault
3. Defect
4. Bug
5. Failure
Software Testing Terminologies
• Testing of a product is designed to check if the product behaves as desired.
• Software testing is a mechanism for finding defects in an application, product or system.
• Software Testing is a process of verifying a computer system/program to decide whether it meets
the specified requirements and produces the desired results.

1. Error
• The Problem or mistake in code leads to errors
• A programming error that causes a program to work poorly, produce incorrect results or crash.
• Reasons: developer may misunderstood the requirement or the requirement was not defined
correctly.
• For example: a developer may misinterpret a design flow, or he might use an incompatible data
type which results in an Error.
• The developers use the term error.
Software Testing Terminologies
2. Bug
• Insoftware testing, a bug is the informal name of defects, which means that software
or application is not working as per the requirement.
• A bug occurs because of some coding error and leads a program to malfunction.
• It
may also lead to a functional issue in the product. These are fatal errors that could
block a functionality, results in a crash, or cause performance bottlenecks. Such
errors got treated as Bugs in manual testing.
• If
a QA (Quality Analyst) detect a bug, they can reproduce the bug and record it with
the help of the bug report template.
• The test engineers use the terminology Bug.
Software Testing Terminologies
3. Defect
• When the application is not working as per the requirement is knows as defects. It is
the deviation of the customer requirement.
• A Defect is a difference between expected and actual results in the context of testing.
• The defect occurs when any mistake is made by a developer during the designing or
building of an application and when this flaw is found by a tester, it is termed as a
defect.
• It is the responsibility of a tester to do thorough testing of an application to find as
many defects as possible to ensure that a quality product will reach the customer.
• Defect can be categorized into the following: Wrong, Missing and Extra
• Defect can be categorized according to its severity: Critical, Major, Minor, Trivial
Software Testing Terminologies
4. Fault
• It
is an anomaly in the software that may cause it to behave incorrectly, and not
according to its specification.
• A fault is introduced into the software as the result of an error.
• A fault is the manifestation of one or more errors.
• Theproblems like an invalid step, lack of resources or inappropriate data definition
could cause a fault in a program.
• Itmay happen in software because the developer has not added the code for fault
tolerance.
• A fault in the program is also commonly referred to as a bug or a defect
Software Testing Terminologies
5. Failure
• A failureoccurs when a faulty piece of code is executed leading to an incorrect state
that propagates to the program’s output.
• The programmer might misinterpret the requirements and consequently write
incorrect code.
• Upon execution, the program might display behavior that does not match with the
expected behavior implying thereby that a failure has occurred.
• Ifan end-user detects an issue in the product, then that particular issue is called a
failure.
• Forexample, 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.
Software Testing Terminologies

Figure: Errors, faults, and failures in the process of programming


In general., we use the terms “error” and ”fault” as synonyms.
Faults are sometimes referred to as defects.
Software Testing Terminologies
Prevention methodologies:

Following are the way to stop the errors:


• Enhance the software quality with system review and programming.
• Detect the issues and prepare a suitable mitigation plan.
• Validate the fixes and verify their quality and precision.
Software Testing Terminologies
Prevention methodologies:

Following are the way to stop the bugs/defects/fault:


• Peer review
• Test-driven development.
• Adjusting, advanced, and operative development procedures.
• Evaluating the code systematically.
• Implementing several innovative programming methods.
• Use of primary and correct software development techniques.
• Executing consistent code reviews to evaluate its quality and correctness.
• Verify the correctness of software design and programming.
Software Testing Terminologies
Prevention methodologies:

Following are the way to stop the failures:


• Confirm re-testing.
• Review the requirements and revisit the specifications.
• Implement current protective techniques.
• Categorize and evaluate errors and issues.
Software Testing Terminologies
Causes for an Error

1. Time pressure
2. Human fallibility
3. Inexperienced or insufficiently skilled project participants
4. Miscommunication between project participants
5. The complexity of the code, design, architecture, or the technology to be used
6. Interface issues
7. New, unfamiliar technologies
8. Environmental conditions:
Skills for Software Tester
Skills for Software Tester
1. Technical Skills
1. Technically sound and understand Software Engineering Principles i.e.
Understanding SDLC
2. Agile Methodologies
3. Proficiency in Programming Languages
4. Understanding of basic testing, its principles and practices
5. Have ability to plan, design and execute test cases
6. Knowledge in Automation Testing - Selenium, Apache Jmeter, RFT
7. Knowledge of Test Management Tools – TestRail, TestPad, TestLink, QADeputy
8. Knowledge in Defect Tracking tools – QC, Bugzilla, Jira
9. Testers must know about quality issues and standards.
Skills for Software Tester
2. Non-Technical Skills
Skills for Software Tester
3. Personal and Managerial Skills
Testers must be able to
• Contribute in policy-making and planning the testing activities
• Work in teams
• Organize and monitor information, tasks and people
• Interact with other engineering professionals, SQA staff and clients
• Train and mentor new testers
• Creative, imaginative and experiment-oriented

Testers must have written and oral communication skills


Manual Testing
Manual Testing
Manual Testing is a type of software testing in which test cases are executed
manually by a tester without using any automated tools.
The purpose of Manual Testing is to identify the bugs, issues, and defects in the
software application.

Goal: To ensure that the application is error free and it is working in conformance to
the specified functional requirements.

• Any new application must be manually tested before its testing can be automated.
• Manual Testing concepts does not require knowledge of any testing tool.
Manual Testing Stages and Types
How to perform Manual Testing?
1. Analyze requirements from the software requirement specification document
2. Create a clear test plan
3. Write test cases that cover all the requirements defined in the document
4. Get test cases reviewed by the QA lead
5. Execute test cases and detect any bugs
6. Report bugs, if any, and once fixed, run the failed tests again to re-verify the fixes
Limitations of Manual Testing
1. Manual Testing requires more time or more resources, sometimes both Time and
Resources.
2. Less Accuracy
3. Performance testing is impractical through Manual testing.
4. Comparing a large amount of data is impractical.
5. Processing change requests during software maintenance takes more time.
6. Batch Testing is possible, but for each test execution, Human user interaction is
mandatory.
7. GUI Objects Size difference and Color combinations are not easy to find in
Manual Testing
Limitations of Manual Testing
8. Manual Test Case scope is very less, if it is an Automated test then the scope is
more.
9. Executing the same tests, again and again, is time taking process as well as tedious.
10. For every release you must rerun the same set of tests which can be tiresome.
Need for Automated Testing Tools
• Test
Automation software is the best way to increase the effectiveness, efficiency and
coverage of your software testing.
• Manual tests are repeated often during development cycles for source code changes
• Reduces the testers involvement
• Ableto playback pre-recorded and predefined actions, compare the results to the
expected behavior and report the success or failure of these manual tests to a test
engineer.
• Once automated tests are created they can easily be repeated and they can be
extended to perform tasks impossible with manual testing
• It reduces testing efforts, delivering capability faster and more affordably.
• Avoids human mistakes and helps in building better quality software with less effort.
Need for Automated Testing Tools (Advantages)
• Test Automation increases the speed of test execution
• Saves Money and time (70% faster than the manual testing)
• Vastly Increases Your Test Coverage
• Reduces cost of failure
• Improves Accuracy of testing process
• Ensures reliability and concurrency
• Human Intervention is not required while execution
Features of a Test Tool
References
1. Naresh Chauhan, Software Testing – Principles and Practices, Oxford Press, 2013.
2. https://www.softwaretestinghelp.com/software-test-metrics-and-measurements/

You might also like