STQA - Mini Project
STQA - Mini Project
SUBMITTED BY
1|Page
SAVITRIBAI PHULE PUNE UNIVERSITY
AY 2023 -2024
CERTIFICATE
Submitted by
is a bonafied student of this institute and the work has been carried out by them under the supervision of M/r
Amol Dhakne and it is approved for the partial fulfillment of the requirement of Savitribai Phule Pune
University, for the award of the Fourth-year degree of Computer Engineering.
Guide Head
Department of Computer Engineering Department of Computer Engineering
Place: Pune
Date:
2|Page
ABSTRACT
Unit Testing of software applications is done during the development (coding) of an application. The objective of
Unit Testing is to isolate a section of code and verify its correctness. In procedural programming a unit may be an
individual function or procedure. The goal of Unit Testing is to isolate each part of the program and show that the
individual parts are correct. Unit Testing is usually performed by the developer.
Bug taxonomies help in providing fast and effective feedback so that they can easily identify possible reasons for
failure of the software. Using bug taxonomy, a large number of potential bugs can be grouped into few categories.
Whenever a new bug is reported, using bug taxonomy, a tester can easily analyze and put that bug into any of these
categories. At the end of testing, Testers can understand the type of categories of bugs that frequently occurred and
thereby in successive rounds of testing he can focus on writing more test cases that would help to detect such bugs.
In addition, test leaders can guide their testers to focus on such frequently occurring bugs.
In integration Testing, individual software modules are integrated logically and tested as a group. A typical software
project consists of multiple software modules, coded by different programmers. integration Testing focuses on
checking data communication amongst these modules.
Keyword: Unit Testing, Integration Testing, Bug, Test Cases, Test Suite, Junit
3|Page
ACKNOWLEDGEMENT
First and foremost, I would like to thank my guide for this Mini Project, M/r. Amol Dhakne for the valuable
guidance and advice. She inspired us greatly to work in this seminar. Her willingness to motivate us contributed
tremendously to our work. I also would like to thank her for showing me some examples that related to the topic of
my Mini Project.
Apart from our efforts, the success of any seminar depends largely on the encouragement and guidelines of many
others. So, we take this opportunity to express my gratitude to M/s. P. P. Shevatekar, Head of the Department of
Computer Engineering, Dr. D Y Patil Institute of Engineering, Management and Research, Akurdi has been
instrumental in the successful completion of this seminar work.
The guidance and support received from all the members who contributed and who are contributing to this seminar
work were vital for the success of the seminar. I am grateful for their constant support and help.
Pranav Sonar
Student Name
4|Page
TABLE OF CONTENT
1 Introduction 6
1.1. Introduction 6
1.3. Objectives 7
2 Methodology 8
3 Implementation 9-22
4 Conclusion 23
5|Page
CHAPTER 1: INTRODUCTION
1.1. INTRODUCTION
Sorting is a fundamental operation in computer science and plays a crucial role in numerous applications,
from data processing to information retrieval and beyond. Two commonly used sorting algorithms, Merge Sort and
Multithreaded Merge Sort, have garnered attention due to their efficiency and adaptability to varying data sizes. In
this context, this study aims to investigate and compare the performance of these two sorting algorithms while
considering best-case and worst-case scenarios.
Merge Sort is celebrated for its time complexity of O(n log n) and its reliability in achieving this efficiency
across a wide range of input data. It follows a divide-and-conquer approach, breaking down the sorting task into
smaller, more manageable subproblems and then merging the results to create a fully sorted list. This algorithm's
consistent performance has made it a preferred choice for sorting large datasets.
Multithreaded Merge Sort, on the other hand, builds upon the foundation of Merge Sort by harnessing the
power of multithreading. In a multi-core processor environment, this algorithm parallelizes the sorting process,
potentially leading to speed enhancements. However, the performance of Multithreaded Merge Sort can be influenced
by the context in which it is applied, particularly in scenarios where thread synchronization overhead becomes a
factor.
To gain a comprehensive understanding of the relative strengths and weaknesses of these sorting algorithms,
we conduct experiments that encompass both best-case and worst-case scenarios. In the best-case scenario, we
examine the performance when the input data is already sorted, while the worst-case scenario investigates the
challenges associated with sorting input data in reverse order. The outcomes of these experiments provide insights
into the practical applicability of these sorting methods under various conditions.
The findings from this study can help guide decisions when selecting sorting algorithms for specific use cases,
taking into account the trade-offs between algorithmic efficiency and performance optimization. Sorting is a critical
operation in many real-world applications, and understanding the nuances of these sorting algorithms in different
scenarios is essential for making informed choices in algorithm selection and implementation.
6|Page
1.2. PROBLEM STATEMENT
Create a small application by selecting relevant system environment/ platform and programming languages.
Narrate concise Test Plan consisting features to be tested and bug taxonomy. Prepare Test Cases inclusive of Test
Procedures for identified Test Scenarios. Perform selective Black-box and White-box testing covering Unit and
Integration test by using suitable Testing tools. Prepare
1.3. OBJECTIVE
We are going to learn how to Prepare Test Cases inclusive of Test Procedures for identified Test Scenarios. Perform
selective Black-box and White-box testing covering Unit and Integration test by using suitable Testing tools. also
Prepare Test Reports based on Test Pass/Fail Criteria
7|Page
CHAPTER 3: METHODOLOGY
The methodology for this mini-project involves several key steps. First, we select a relevant system environment and
programming language, in this case, opting for Android as the platform and Java as the programming language. We
then define a test plan outlining objectives and testing phases.
Next, we develop a small application, such as a to-do list, and identify various test scenarios, creating detailed test
cases with test procedures for each scenario. Black-box testing is conducted to ensure the application functions
correctly from a user's perspective, while white-box testing explores the internal logic and code paths. Unit testing is
employed to verify individual components, and integration testing is carried out to examine interactions between
different parts of the application. Test reports are generated based on predefined pass/fail criteria for each test case.
Finally, the acceptance of the application is judged against these criteria, with further iterations of testing and
development being performed until all critical bugs are resolved and acceptance criteria are met, ensuring a robust
and reliable application.
8|Page
CHAPTER 3: IMPLEMANTATION
1. Download JDK 1.8 and Eclipse latest version here we are using eclipse-java-photon-R-win32.
2. Open Eclipse IDE
9|Page
4. Give Junit Test Project name to the project and check use project folder as root for source and class files
10 | P a g e
6. Next Screen Shown JunitTestProject Folder in Project Explorer
11 | P a g e
8. Name package as programming hub-> Click on Finish
9. See the Programming hub package see in project Explorer Screen of Eclipse
12 | P a g e
10. Right Click on Programminghub Package->New->Class give the name JunitClass->Click Finish.
13 | P a g e
12 Write a small program with only two functions Add and Multiplication
14. Name test suite as Add Test and choose New Junit4 test
14 | P a g e
15. Click on add Checkbox
15 | P a g e
18. Write a code for Test case addition of two number inside AddTest
19. Let us run AddTest test case. Right click AddTest-> Debug As->JUnit Test
16 | P a g e
20. Result of test case is as follows. It shows 0 error and 0 failure and green color test bar which means that
test case has run successfully( Green Color Bar Indicate)
21. Let us purposely give wrong input in assertEquals method or unexpected result here we write 501 instead of
500 indicate wrong addition result
17 | P a g e
22. Now test case should fail.(Brown Color Bar Indicate) So again run Add Test as follow
23. Similarly you can Create Test case for Multiplication Function
Click on Project Explorer Screen-> Right Click on JunitClass->New->JUnit Test Case-> Give name MulTest
18 | P a g e
24. Click on Next ->Select Mul Check Box -> Click Finish
19 | P a g e
27. Right Click on MulTest->Debug->JUnit Test
20 | P a g e
29. Click on Package name->New->Other->JUnit->JUnit Test Suite->Next
21 | P a g e
31. Next Screen Appear that automatically create Test Suite for Add and Mul
32. Execute Test Suite Right Click on All Test ->Debug->JUnit Test
33. Test Suite Executed successfully Test suite fails even if a single test case among all fails.
22 | P a g e
CHAPTER 4: CONLUSION
In this mini-project, we selected the Android platform, developed a small to-do list application using Java, and
conducted both black-box and white-box testing. Test cases were executed, and test reports were generated based on
pass/fail criteria.The acceptance of the application can be determined by comparing the test results against predefined
acceptance criteria. If all criteria are met, the application can be considered accepted.It's crucial to iterate through
testing and development until the acceptance criteria are met, and all critical bugs are fixed.
23 | P a g e
24 | P a g e
25 | P a g e
26 | P a g e
27 | P a g e
DYPIEMR, Department of Computer Engineering 2023-24