Software
testing can be termed as the system of performing a program or application
with the purpose of ascertaining the software bugs. It can also be described as
the method of authenticating and determining that a software program or
application or product achieves the business and technical benchmarks that that
brought about the design and development of the software works as expected.
Software testing can be broken down into the following:
1.) Process: Software
testing is a process and not just a single activity.
2.) All Life Cycle Activities:
Testing is a procedure that happens throughout the Software Development Life
Cycle (SDLC). The procedure of blueprinting tests ahead of time in the life
cycle can aid to thwart bugs from getting initiated in the code. This is also
referred to as, “verifying the test basis via the test design”. The test basis consists
of documents like requirements and design specifications.
3.) Static Testing: This can test
and find out the defects without running the code. Static Testing is run during
the process of verification, which includes analyzing of the documents, which
includes the source code), and static analysis. This is a very useful and also cost
effective manner of testing. Examples of static testing are reviewing,
walkthrough, inspection, etc.
4.) Dynamic Testing: In this, the software code is run to present
the outcome of running tests. Dynamic testing is run at the time of the validation
process. Examples of dynamic testing are unit testing, integration testing,
system testing, etc.
5.) Planning:
Proper planning has to be done as to what is to be accomplished. In
this, the test activities are controlled, testing progress reported, and
software status under testing environment.
6.) Preparation:
Proper preparation has to be made as to what testing will be done by choosing
the right test conditions and designing test cases.
7.) Evaluation:
During the evaluation, the results need to be checked the software evaluated
under the testing and the completion criteria, which assists in deciding as to whether
the testing has been completed and if the software product has cleared all the tests.
8.) Software and related work products: Along with the code testing, requirement testing
and design stipulations and related documents like operation, user, training
material, etc., is important equally.
Why is software testing necessary?
Software testing is genuinely
needed to bring out the defects and errors that were committed at the time of
the development phase. This is needed as it makes sure of customer’s authenticity
and satisfaction with the application that is developed. It is very critical to
make assure the product’s quality. Delivering
the customers a quality product will definitely help in winning their assurance.
Testing
is an important requirement so as to be able to furnish the facilities to
customers like handing over a software application of a high quality product which
would need less maintenance cost and therefore result in a more correct, uniform,
and dependable results. Testing is needed for an efficient functioning of the software
application or product. It is important to make sure that the application does not
lead into any breakdown as it can be very costly in the future and in the
following stages of development.
When do defects in software testing arise?
Some of the reasons due to which software
defects arise are:
1.) The personnel who use the software
application may not have the much needed knowledge of the product.
2.) The possibility of the wrong
way of using the software that would lead to the defect and the failure.
3.) Incorrect code put in by the
software developers and also due to the errors present in the design.
4.) Wrong arrangement of the environment
that is needed for the testing.
What are the principles of testing?
Principles of Testing:
1.) Testing
brings out the defects if there are any: Testing can only depict the presence
of defects, but it cannot prove if there are any defects or not. Even after thoroughly
testing the software application and product, it would be hard to say that the is
100% defect free. In many ways, testing can only bring down the number of
defects that are not discovered in the software. Absence of errors is not the proof or the correctness
of the software and the product.
2.) In-depth testing is not possible:
Testing all the things that include all the combinations of the inputs and the preconditions
is not at all possible. Therefore, rather than working on in-depth testing the risks
and priorities can be used to center on the testing efforts.
3.) Early testing of the Product:
In the software development growth, the process of testing must being as soon
as possible and must be concentrated on fixed objectives.
4.) Defect clustering: It is
during pre-release testing that there are a number of modules that contain most
of the defects that are detected and also this is when most operational
failures are shown.
5.) Pesticide paradox: Repeating
the same test time and again will eventually lead to the same chain of the test
cases and there will no longer be any new bugs to be found. In order to get
back this “Pesticide Paradox”, it is extremely significant to assess the test
cases at regular intervals; therefore, new and out of the ordinary tests would
have to be written in order to discharge the different portions of the software
or system to possibly discover more defects.
6.) Testing is dependent on the
context: Testing is mainly based on the. Different tests are conducted on
different sites. For instance, safety–critical software is tried out in a
different way than that of an e-commerce site.
7) The fallacy of absence – of –
errors: If the system that has bene developed has become unusable and is not
able to meet he needs of the user and their expectation, then locating and
correcting the defects would not help.
Ikya Global are the leaders in providing
quality training
in software testing.
I liked your post, you have beautifully explained the entire software testing concept. Very good for the beginners or learners. i work at software testing company, wherein i will share this post with the trainees of testing.
ReplyDelete