Software Testing Techniques & Strategies
Software Testing Techniques & Strategies
Abstract— Software testing is a process used to identify the organization. In simple terms in order to make sure that the
correctness, completeness and quality of developed software. It release software is safe and it's functioning as expected. The
includes set of activities conducted with the intent of finding concept of software testing was introduced. It is important
errors in software so that it could be corrected before the because software bugs, errors and defects can potentially
product is released to end user. It gives measures for finding
efficiency and accuracy of the software. It mainly focuses on
leads to expenses and dangerous consequences. Software
how to improve the functionality of the software and also on testing is exceptionally imaginative intellectual task for
how to improve performance of the software. To test software testers to perform. There are principles that every testers
fully, we need to do its validation and verification before should aware of while performing software testing. Different
handling it to the customer. So for this purpose, software issues are involved in software testing like scalability,
techniques and software testing strategies are developed. usability, security etc.
Software testing techniques deal with how a specific part of the
software would be tested, while Software testing strategies 2. LITREATURE SURVEY
provides, well planned series of steps that result in successful In 2019, Authors Azeem Uddin and Abhineet Anand, from
testing. This paper describes about software testing and its
aspects like software testing techniques and software testing
Galgotias University,Greater Noida, Uttar Pradesh, India
strategies. Moreover it describes basic life cycles which are presented paper titled "Importance of Software Testing in the
required for performing quality testing. Process of Software Development". This paper is published
in International Journal for Scientific Research Development|
Keywords— Software Testing Life Cycle; Software Testing Vol. 6, Issue 12, 2019. Comparative study of present scenario
strategies; Software Testing Techniques of software testing with regard to testing in early days is
done. Described about the objectives of software testing and
1. INTRODUCTION also about different levels of software testing. Moreover, this
Software testing is process carried out to find whether the paper focuses on Why to test. This paper presented a
actual results meets the expected results. It is the evaluation comprehensive account of all the terminologies that are
of the software. To find errors in the developed software and related to software testing. [1].
those errors should get resolved from software development In 2017, Authors Monika Thakur and Sanjay from Himachal
team to improve the quality of the product. Quality engineers Pradesh Technical University, Hamirpur, India presented
should create tasks according to the severity of error. paper titled "Reviewon Structural Software Testing Coverage
Software testing is just not only for finding error or bugs in Approaches". This paper is published in International Journal
the software but also for improving the quality of the of Advance research, Ideas and Innovations in Technology,
software. To all worries it provides cost effective solution. It Volume3, Issue 3, 2017. In this paper different software
provides enhanced product to customer in terms of testing approaches are reviewed. Testing techniques used are
functionality, accuracy, data security etc. It is an iterative White-box testing and black box testing. Focuses on how to
process. It continues after the product is completed. The main enable the business to acknowledge and comprehend the
objective of software testing is to verify and validate the dangers of software usage the software testing can likewise
completeness of product. The product should meet the give a target, the free perspective of the software. [2].
technical requirement of the product. Technical bugs should In 2017, Authors Ms Ankita sethi from IPEM Group of
get report properly by tester and also tester should ensure that Institutions presented paper titled "A review paper on levels
software is glitch-free, before it releases to market. Testers on levels, types and techniques in software testing". This
have to generate high-quality test cases and issue correct paper is published in International Journal of Advanced
problem report Research in Computer Science, Volume 8, No. 7, July –
Software testing saves lot of effort, money and time of August 2017. In this paper different types of testing are
the organization that are developing and selling the product. discussed. Different software testing techniques have
Software testing offers business optimization. It confirms that mentioned. [3].
an application or product is able to operate well and fine in all In 2016, Author Rajendra Kumar presented paper titled
required conditions and on all different kinds of operating "Software testing technique and Strategies". This paper is
systems and on web browsers properly and correctly. Well published in International Journal of Engineering Applied
this enhances user experience and customer satisfaction. All Sciences and Technology, 2016 Vol. 2, Issue 2. This paper on
these above facts contributes to money so they bring profit Software testing describes in detail about software testing,
3.1.5 Testing
In this phase quality assurance team and testing team tests the
functionality of the product. Once product is developed.
Developers deploy it for testing purpose. QA and testing team Fig 2: Software Testing Life Cycle
test the product and verify that whether present results match
with expected result as mentioned in requirement document. Different phases of testing life cycle are shown in Fig 2.
If the QA and testing team finds bug in product they can Each phase of Software Development Testing Life Cycle is
explained below.
report bug. Testers will assignee bug to developers.
Developers will fix the bug and assignee back for retesting
bug. QA and testing team will retest the bug. If the bug is 3.2.1 Requirement Analysis
fixed QA and testing team will closed the bug. If the bug is In this phase testing team and Quality Assurance team study
not fixed QA and testing team will reopen that bug. This and analyse the requirement document properly. Testing team
cycle will get continued until the product will becomes bug- and QA team tries to understand requirement document
thoroughly. If testing team and QA team unable to understand
free. Also, that product should meets with all conditions
added in requirement document. any point from requirement document then they can interact
with stakeholders to solve there queries related requirement
3.1.6 Installation/Deployment document in detail. Once testers and QA team understands
In this phase once all bugs are marked as closed by QA and requirement properly, it gives them clear idea about which
type of testing will be required to test the product. Testing
testing team that is when product reaches to the stage where
priorities can be set from this. Testers can set Environment
there is no error in the system and when all actual result
meets with expected results also depending on feedback of for testing.
project manager decision of deployment of software will be
taken. Manager releases the software for deployment. 3.2.2 Test Planning
In this phase test plan and test strategies are determined.
Testing manager calculates efforts and time required for
3.1.7 Maintenance
testing. Also he finds outs the cost estimation required for
Once the product is deployed successfully, then this product
enters into maintenance phase. After product is deployed, testing. Testing team decides that which environment will
customer starts using it. Customer gives reviews to the require for testing and which types of testing will be done.
products from which team will gets idea which feature should Determines roles and responsibilities.
we add. Testing of the products continues after deployment.
3.2.3 Test Case Development
There may be some scenarios which are not tested at all. Bug
fixing is done at every stage. After fixing bugs, up-gradation
and different scenarios written within software product or Step 8: Reporting bugs
application. Writing good test cases is very important as they Step 9: Maintenance of scripts
are can help in executing each and every test case very
smoothly and ensure good test coverage. 3.4 Software testing strategies
Step 3: Once you are done by writing test cases. Next step is Software testing strategies are very important in order to
conducting the tests. Once test cases are written and test construct software successfully. Software testing strategies
environment are properly prepared it's time to begin testing. combines test cases design methods. This will leads to
You can follow test cases and mark each test as pass or fail or planned systematic steps for carrying out successful testing of
skipped. While doing manual testing it is important to keep a software. Software testing strategies are developed by
notes. That's really important you can't ignore the fact just software tester and project manager.
because your test fails. Four types of testing strategies are there. Explaination of each
Steps 4: Next step is to log good bug report. In addition to strategies is given below.
actual testing as a tester you will be responsible for logging
bugs as well. So as you find any bug, you need to inform log 3.4.1 Unit testing
information for the development team about the defect. Smallest testable part of software is called as unit. This
Writing good bug report will help you and your team later. testing type is performed by development team. As this
You will save yourself time answering this questions about testing type is performed by developer, respective developer
the bugs later. So basically you have a document you refer to. needs to have proper knowledge about code designing. Unit
A good bug report should have title, steps how to overcome testing is the simplest testing type. Quality assurance team
bugs, expected and actual results and any relevant member can also perform this type of testing. It is cost
attachments that will help development team to understand effective testing type and also it is not time consuming
the bug like screenshot, recordings etc. activity. Several other testing techniques get performed under
Step 5: You need to create detail test report. After running unit testing effectively like functional testing, structural
tests it is good to know the tests at very high level like how testing etc. Unit testing is not depended on whole system.
many tests got run successfully, how many tests got failed, Individual testing of small unit is carried out in this. Multiple
how many tests got passed and how many test got skipped engineers can perform this testing type at a time. This testing
like that. This step is very straight forward. can also be performed while fixing issues in parallel. Unit
testing comes under white box testing. This testing type is
3.3.2 Automation testing (Dynamic testing) performed at lowest level.
In automation testing, automated tools are used. Test
suits are run on automation tool. Whereas in manual testing 3.4.2 Integration testing
testers needs to sit and run test suits one by one. Testers On combining two or more tested units an integrated
needs to write test scripts. Automation testing is faster than structure or group is formed. The main aim of integration
manual testing. In automation testing random test are not testing is to combine these small units and test them together
allowed. Automation testing are done by using tools. Highly that is, to test them in form of group. Every time tester needs
skilled testers are required in this field who is having full to perform each test after adding new unit in existing group.
knowledge of that domain. Automation testing is known as On performing this testing type continuously, less error may
validation testing. For modification purpose testers needs to occurs at time of regression testing. If immediate bugs are
modify the scripts. Testing can be performed on different reported while performing integration testing then may be
operating platform which will help in reducing the time. For less effort will require for regression testing. If new module
performing automation testing, testers should have proper gets added in structure then testers needs to verify each test
knowledge of programming language. In automation testing case repeatedly from start to end. Integration testing is an
other testing types are also get suited. Those are regression upper level testing.
testing, load testing, performance testing. As this testing is
done by tools this testing type is more accurate. Automation 3.4.3 System testing
testing is cost effective. Automation testing is more reliable Validation of whole architecture is main aim of system
than manual testing. More investment are required for tools testing. All unit are combined in this testing type. In this end-
and for automation engineers. Automation testing require less to-end testing is performed. It tests that whether system meets
complex testing setup or less complex environment setup to specified requirement. Quality of software can be ensured by
test scripts. performing system testing. From specified requirement, all
functional condition should get validate by system testing.
[Link] Steps of Automation testing This testing is performed on production environment. Some
Step 1: Testers needs to find automation tools experts. other types of testing are also performed while doing system
Step 2: Need to choose the correct tool for testing. testing those are security, recovery, user interface,
Step 3: Analysing various application and from that need to compatibility etc. System testing falls under black box
decide that which tool is best suited for automation. testing.
Step 4: Training the other team mates.
Step 5: Creating framework for the automation. 3.4.4 Acceptance testing
Step 6: Executing developed planned.
Step 7: Write scripts
Acceptance testing is called as final stage testing. It is very testing requires less complex testing setup than manual
important type of testing. It is performed before delivering testing.
the system finally to end user. It tests that whether product REFERENCES
which is developed by organisation meets all specified [1] Pavithra L and Sandhya S "Survey on Software Testing". Journal
of Network Communications and Emerging Technologies
criteria and meets with specified requirements given by
(JNCET) Volume 9, Issue 3 March 2019.
customer or client. Acceptance testing is known as Quality [2] Arti Rana, Arvind Singh Rawat and Anchit Bijalwan “Process of
assurance testing, final testing, verification testing and finding defects in software testing” Proceedings of the Second
validation testing. This testing type is performed at user International Conference on Research in Intelligent and
Computing in Engineering, ACSIS ISSN 2300-5963, 2017.
location. The main aim of doing this testing is to check
[3] Himanshi Babbar “SOFTWARE TESTING: TECHNIQUES
whether system functions properly as per specified AND TEST CASES” International journal of research in
requirement and no bugs should occur at this stage. computer applications and robotics (ijrcar), ISSN 2320-7345,
Vol.5 Issue 3, 2017.
[4] Shalini Gautam, and Bharti Nagpal “Descriptive Study of
4. RESULTS AND DISCUSSION
Software Testing & Testing Tools” International Journal of
Software testing helps us to identify bugs/defects in the Innovative Research in Computer and Communication
software. It's become easy to develop good software if bugs Engineering (IJIRCCE) Vol. 4, Issue 6, June 2016.
are detected in early stages. Software testing aims to make [5] Tanuj Wala and Aman Kumar Sharma “Improvised Software
Testing Tool ” International Journal of Computer Science and
software stable. High quality product, can be produce by
Mobile Computing (IJCSMC) , Vol. 3, Issue. 9, September 2014.
performing software testing. It focuses always on the [6] [Link] , [Link] and [Link] “A
expected result. Customer requirements must be high priority Research Study on Software Quality Attributes” International
of testers. For performing a quality testing, tester should Journal of Scientific and Research Publications, Volume 4, Issue
1, January 2014.
know testing strategies. Also method of reporting bugs is
[7] Maneela Tuteja and Gaurav Dubey “A Research Study on
very important in software testing. Each and every scenario importance of Testing and Quality Assurance in Software
of software should get tested. By doing this practice, Development Life Cycle (SDLC) Models” International Journal
improvisation of software will happen at every stage. It is of Soft Computing and Engineering (IJSCE) Volume-2, Issue-3,
July 2012.
also very important to choose correct testing techniques.
Tester should have the knowledge of what testing techniques
should be used at different stages while building software.
5. CONCLUSION
Software testing strategies and software testing
techniques are discussed in this paper. Moreover, it provides
information on each phase of Software Development Life
Cycle, Software Testing Life Cycle and Bug Life Cycle.
These life cycles helps in improving the quality of software
and in overall development process of software. By using
these standard testing techniques and testing strategies a
stable and robust product can get delivered to end user.
For testing software testers requires technology at each
stack level to ensure that every part of system as well as
entire software works properly without breaking down. Every
testing level of software testing strategies has its own
significance. Unit testing is performed for testing small
modules or part of software, integration testing is performed
to test integrated modules of software, system testing is
performed to evaluate complete system or software and
acceptance testing is performed to evaluate system's
compliance requirement. Software testing techniques helps to
develop test cases and test scripts for performing manual and
automation testing respectively. These techniques provides
the procedure for testing a specific part of the system and also
for testing whole system. In manual testing test cases are
executed by human tester whereas in automation testing
automation tools are used to execute test cases. Automation
testing is significantly faster than manual testing. Automation