9-Introduction To Software Testing - Failure, Error, Fault, Defect, Bug-09-08-2023
9-Introduction To Software Testing - Failure, Error, Fault, Defect, Bug-09-08-2023
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
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
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/