Anda di halaman 1dari 8

(Shivank Mishra) Objective of Software Testing:-

Software testing is a crucial element in the software development


life cycle (SDLC), which can help software engineers save time & money
of organizations by finding errors and defects during the early stages of
software development.

1. Verification: A prominent objective of testing is verification,


which allows testers to confirm that the software meets the various
business and technical requirements stated by the client before the
inception of the whole project. These requirements and
specifications guide the design and development of the software,
hence are required to be followed rigorously. Moreover,
compliance with these requirements and specifications is
important for the success of the project as well as to satisfy the
client.

2. Validation: Confirms that the software performs as expected and


as per the requirements of the clients. Validation involves
checking the comparing the final output with the expected output
and then making necessary changes if their is a difference between
the two.

3. Defects: The most important purpose of testing is to


find different defects in the software to prevent its failure or
crash during implementation or go live of the project. Defects if left
undetected or unattended can harm the functioning of the software
and can lead to loss of resources, money, and reputation of the
client. Therefore, software testing is executed regularly during
each stage of software development to find defects of various
kinds. The ultimate source of these defects can be traced back to a
fault introduced during the specification, design, development, or
programming phases of the software.

4. Providing Information: With the assistance of reports


generated during the process of software testing, testers can
accumulate a variety of information related to the software and the
steps taken to prevent its failure. These, then can be shared with all
the stakeholders of the project for better understanding of the
project as well as to establish transparency between members.

5. Preventing Defects: During the process of testing the aim of


testes to identify defects and prevent them from occurring
aging in the future. To accomplish this goal, software is tested
rigorously by a independent testers, who are not responsible for
software development.

6. Quality Analysis: Testing helps improve the quality of the


software by constantly measuring and verifying its design and
coding. Additionally, various types of testing techniques are used
by testers, which help them achieve the desired software quality.

7. Compatibility: It helps validate application’s compatibility with


the implementation environment, various devices, Operating
Systems, user requirements, among other things.

8. For Optimum User Experience: Easy software and application


accessibility and optimum user experience are two important
requirements that need to be accomplished for the success of any
project as well as to increase the revenue of the client. Therefore, to
ensure this software is tested again and again by the testers with
the assistance of stress testing, load testing, spike testing, etc.

(Harsh Mishra) Principles of Software Testing:-


There are seven principles in software testing:

1. Testing shows presence of defects


2. Exhaustive testing is not possible
3. Early testing
4. Defect clustering
5. Pesticide paradox
6. Testing is context dependent
7. Absence of errors fallacy

 Testing shows presence of defects: The goal of software testing


is to make the software fail. Software testing reduces the presence
of defects. Software testing talks about the presence of defects and
doesn’t talk about the absence of defects. Software testing can
ensure that defects are present but it can not prove that software is
defects free. Even multiple testing can never ensure that software is
100% bug-free. Testing can reduce the number of defects but not
removes all defects.

 Exhaustive testing is not possible: It is the process of testing the


functionality of a software in all possible inputs (valid or invalid) and
pre-conditions is known as exhaustive testing. Exhaustive testing is
impossible means the software can never test at every test cases. It
can test only some test cases and assume that software is correct
and it will produce the correct output in every test cases. If the
software will test every test cases then it will take more cost, effort,
etc. and which is impractical.

 Early Testing: To find the defect in the software, early test activity
shall be started. The defect detected in early phases of SDLC will
very less expensive. For better performance of software, software
testing will start at initial phase i.e. testing will perform at the
requirement analysis phase.
 Defect clustering: In a project, a small number of the module can
contain most of the defects. Pareto Principle to software testing
state that 80% of software defect comes from 20% of modules.

 Pesticide paradox: Repeating the same test cases again and again
will not find new bugs. So it is necessary to review the test cases
and add or update test cases to find new bugs.

 Testing is context dependent: Testing approach depends on


context of software developed. Different types of software need to
perform different types of testing. For example, The testing of the e-
commerce site is different from the testing of the Android
application.

 Absence of errors fallacy: If a built software is 99% bug-free but it


does not follow the user requirement then it is unusable. It is not
only necessary that software is 99% bug-free but it also mandatory
to fulfill all the customer requirements.

(Dibbendu Koley) Defects :-

Defect can be categorized into the following:


Wrong: When requirements are implemented not in the right way. This
defect is a variance from the given specification. It is Wrong!

Missing: A requirement of the customer that was not fulfilled. This is a


variance from the specifications, an indication that a specification was
not implemented, or a requirement of the customer was not noted
correctly.

Extra: A requirement incorporated into the product that was not given by
the end customer. This is always a variance from the specification, but
may be an attribute desired by the user of the product. However, it is
considered a defect because it’s a variance from the existing
requirements.

ERROR: An error is a mistake, misconception, or misunderstanding on


the part of a software developer. In the category of developer we include
software engineers, programmers, analysts, and testers. For example, a
developer may misunderstand a de-sign notation, or a programmer
might type a variable name incorrectly – leads to an Error. It is the one
which is generated because of wrong login, loop or due to syntax. Error
normally arises in software; it leads to change the functionality of the
program.

BUG: A bug is the result of a coding error. An Error found in the


development environment before the product is shipped to the customer.
A programming error that causes a program to work poorly, produce
incorrect results or crash. An error in software or hardware that causes a
program to malfunction. Bug is terminology of Tester.

FAILURE: A failure is the inability of a software system or component to


perform its required functions within specified performance
requirements. When a defect reaches the end customer it is called a
Failure. During development Failures are usually observed by testers.

FAULT: An incorrect step, process or data definition in a computer


program which causes the program to perform in an unintended or
unanticipated manner. A fault is introduced into the software as the
result of an error. It is an anomaly in the software that may cause it to
behave incorrectly, and not according to its specification. It is the result
of the error.
The software industry can still not agree on the definitions for all the
above. In essence, if you use the term to mean one specific thing, it may
not be understood to be that thing by your audience.

(Abhishek Kushwaha) Errors:-


Common Categories of Software Errors:
#1) Functionality Errors:
Functionality is a way the software is intended to behave. Software
has a functionality error if something that you expect it to do is hard,
awkward, confusing, or impossible.

#2) Communication Errors:


These errors occur in communication from software to end-
user. Anything that the end user needs to know in order to use
the software should be made available on screen.

#3) Missing command errors:


This happens to occur when an expected command is missing.
This window allows the user to create a new project. However, there is
no option for the user to exit from this window without creating the
project. Since ‘Cancel’ option/button is not provided to the user, this is a
missing command error.

#4) Syntactic Error:


Syntactic errors are misspelled words or grammatically
incorrect sentences and are very evident while testing software
GUI. Please note that we are NOT referring to syntax errors in code. The
compiler will warn the developer about any syntax errors that occur in
the code

#5) Error handling errors:


Any errors that occur while the user is interacting with the
software needs to be handled in a clear and meaningful manner. If
not, it is called as an Error Handling Error.

#6) Calculation Errors:


These errors occur due to any of the following reasons:

 Bad logic
 Incorrect formulae
 Data type mismatch
 Coding errors
 Function call issues , etc.

#7) Control flow errors:


The control flow of a software describes what it will do next and on what
condition.

For example, consider a system where user has to fill in a form and the
options available to user are: Save, Save and Close, and Cancel. If a
user clicks on ‘Save and Close’ button, the user information in the form
should be saved and the form should close. If clicking on the button
does not close the form, then it is a control flow error.

(Vikash Gupta) Advantages:-


Advantages of Testing:

The benefits and advantages offered by software testing are


innumerable. It helps software developers and programmers in verifying
and validating various components of the software as well as
in detecting bugs and defects. Moreover, it helps them deliver a
software product that has remarkable quality and innovative features.
Other advantages of software testing are:

 Can be performed manually as well as with the assistance of testing


tool.

 Helps identify and prevent bugs.

 Enables team to build a bug free software and application with


exceptional quality and features.

 Saves time and money by testing the software during the early
stages of development.

 Identifies areas where developers and programmers require


training.

 Offers better user experience and customer services by building a


effective and efficient software.

 Helps reduce and avoid development downtime.

 Monitors and assess various activities during the process of


software development.

 Helps identify various human errors, which if executed can lead to


system failure.
THE END

Anda mungkin juga menyukai