Software Testing I Scheme 5th Sem Co
Software Testing I Scheme 5th Sem Co
Year: 2024-25
Prepared By:
Sayyed Abdul Mannan (220447)
Sayyed Sumaiya Waqar (220448)
Shaikh Aliya Ambreen (220449)
Chaudhary Mohd Mujahid (230481)
This is to certify that Mr. Sayyed Abdul Mannan Roll No. 220447 of fifth
semester of Diploma in Computer Engineering of Institute MH Saboo
Siddik Polytechnic (Code: 0002) has completed Microproject satisfactorily
in the subject OSY (22516) for the academic year 2024-25 as prescribed in
the curriculum.
SEAL OF
INSTITUTE
MAHARASHTRA STATE BOARD OF
TECHNICAL EDUCATION
Certificate
This is to certify that Sayyed Sumaiya Waqar Ahmed Roll No. 220448 of
fifth semester of Diploma in Computer Engineering of Institute MH Saboo
Siddik Polytechnic (Code: 0002) has completed Microproject satisfactorily
in the subject OSY (22516) for the academic year 2024-25 as prescribed in
the curriculum.
SEAL OF
INSTITUTE
MAHARASHTRA STATE BOARD OF
TECHNICAL EDUCATION
Certificate
This is to certify that Shaikh Aliya Ambreen Roll No. 220449 of fifth
semester of Diploma in Computer Engineering of Institute MH Saboo
Siddik Polytechnic (Code: 0002) has completed Microproject satisfactorily
in the subject OSY (22516) for the academic year 2024-25 as prescribed in
the curriculum.
SEAL OF
INSTITUTE
MAHARASHTRA STATE BOARD OF
TECHNICAL EDUCATION
Certificate
This is to certify that Chaudhary Mohd Mujahid Roll No. 230481 of fifth
semester of Diploma in Computer Engineering of Institute MH Saboo
Siddik Polytechnic (Code: 0002) has completed Microproject satisfactorily
in the subject OSY (22516) for the academic year 2024-25 as prescribed in
the curriculum.
SEAL OF
INSTITUTE
Acknowledgement
We wish to express our profound gratitude to our guide Mrs ghazala khan Ma’am who
guided us endlessly in the framing and completion of the micro project. She guided us
on all the main points in that micro project. We are indebted to his constant
encouragement, cooperation, and help. It was her enthusiastic support that helped us in
overcoming various obstacles in the micro-project.
We are also thankful to our Principal, HOD, faculty members and classmates of
Computer Engineering department for extending their support and motivation in the
completion of this micro-project.
Microproject Proposal
I. Aims/Benefits of Microproject
The primary objective of this microproject is to develop reliable, bug-free software. Test cases have
been designed for each page, enabling seamless navigation and transition between them. A test case
is a detailed procedure crafted to assess software functionality, where specific inputs are provided,
and steps are documented. The expected results are then compared with actual outcomes to ensure
accuracy.
II. Course Outcomes Addressed
a) Utilize diverse software testing techniques effectively.
b) Design comprehensive test cases for multiple testing types and levels.
c) Develop a structured test plan tailored to the application’s requirements.
d) Detect and document defects through detailed bug reports.
e) Assess software performance metrics using automated testing tools.
3 Preparation of abstract
4 Literature review
V. Resources Required
Name of
Sr. no. Specifications Qty
resources Remarks
1. Internet Google, Reference websites 1
Microsoft word, Visual
2. Desktop 1 for each
Studio 2022, MS access
Approved by:
Sign of Faculty:
Name of Faculty: Prof Ghazala Khan
Annexure II
Microproject Proposal
Title of Microproject: University Management Application
I. Rationale
The purpose of this project is to create a dependable university management system by
applying thorough software testing practices. Through structured test cases and automated
tools, we aim to identify and resolve bugs, ensuring high functionality and accuracy, which are
crucial for efficient university administration and reliable academic operations.
The project was developed using Microsoft Visual Studio, a comprehensive integrated
development environment (IDE) by Microsoft. This IDE is suitable for creating both console and
graphical user interface applications, including Windows form applications and websites. The
database system was designed using Microsoft SQL Server.
Test Cases:
A test case is a defined format used in software testing to verify if a particular application or
software functions correctly. It consists of a set of conditions that need to be checked to
determine whether the actual output meets the expected output. Each test case includes
parameters such as ID, condition, steps, input, expected result, actual result, status, and
remarks.
Parameters of a Test Case:
Test Case Id: A unique identifier assigned to each condition in the test case.
Test Case Description: A description of the condition being tested, e.g., checking if
Numerical validation works for the student age input box.
Test Steps: The steps required to verify the condition.
Prerequisite: Conditions that must be fulfilled before the test begins.
Test Data: The input data used during the test.
Test Expected Result: The expected output after the test is executed.
Actual Result: The actual output displayed upon execution.
Status: The outcome of the test (pass, fail, NA, etc.).
Methods of Testing:
Static Testing:
Involves reviewing the software code and documentation without executing the program.
Performed early in the development lifecycle and serves to verify the software, aiming to
prevent defects.
Advantages:
Disadvantages:
Dynamic Testing:
Involves executing the software with various inputs to verify that the actual output matches the
expected behavior.
Conducted later in the development lifecycle to validate the software and fix defects.
Advantages:
Disadvantages:
Advantages:
Disadvantages:
Black Box Testing: Black box testing is a type of software testing where the tester does not need any
knowledge of the internal workings of the software. This method focuses on testing the functionality of
the software, ensuring that it meets user specifications and requirements. It is also known as functional
testing or behavioral testing and is typically performed by software testers. The emphasis is on
validating the software’s functionality based on the provided specifications without knowing the
underlying code.
Advantages:
If the functional specifications are unclear or incomplete, developing effective test cases can be
challenging.
Testing techniques:
1. Static White box testing: It is a type of testing in which program source code is tested without
executing it. Tester only review and examine software design, architecture or code for bug without
executing it. Methods include: Review, Walkthrough and Inspection
a) Reviews: Reviews are a process designed to ensure software quality by evaluating various
aspects of the software. This formal process involves several key elements: identifying
potential problems, following established rules or guidelines, preparing each participant
involved in the review, and compiling a final report based on the findings. Reviews help catch
errors early and verify that the software meets the required standards.
b) Walkthroughs: A walkthrough is initiated by the author of the code or document. During a
walkthrough, the presenter reads through the code or system, and the reviewers listen,
raising questions or concerns as needed. Since it is an informal process, there is no need for a
moderator, and the emphasis is on verifying the validity and logic of the proposed system. The
presenter then prepares a report based on the feedback received.
c) Inspection: Inspection is a more formal and structured process of reviewing, often involving a
meeting led by a trained moderator. In an inspection, documents or code are thoroughly
reviewed by each participant beforehand. The review process follows a strict methodology,
and participants must be trained to perform the inspection properly. This highly organized
process ensures that every aspect of the software or document is examined in detail, with the
goal of identifying defects early on.
2) Dynamic White box testing: It is a test done by running the code and can also examine the code.
Testers are required to have knowledge of internal implementation. It determines what to test and what
not to test. Methods include: Code functional testing, Code coverage testing, Code complexity testing
A) Code functional testing: This type of testing is done in early phase of testing. It is done before
submitting the code to more extensive phases like coverage testing & complexity testing. Methods of code
functional testing: - Obvious test- Most simplest method. Inputs are known and expected outputs are
covered. - Debug version- In this, we make sure that program is passing through right loops, iterations
right number of times. Entire debugging of code is done using this method. - Debugging tool- They are
tools used to resolve early defects from product/module.
B) Code coverage testing:
Is a measure used to describe the degree to which the source code of a program is tested
• High light aspects of the code which may not be adequately tested and which require additional testing.
- Compiler debugger: it is sufficient for small programs.
- Code coverage analyzer: hook into s/w . Run transparently in the background while testing. ●Each time a
function , line of code , loop is executed , code coverage analyzer record the information
• Code coverage methods:
• Statement Coverage
• Branch Coverage
• Conditional Coverage
• Function Coverage
What is Statement Coverage?
It is one type of white box testing technique that ensures that all the statements of the source code are
executed at least once. It covers all the paths, lines, and statements of a source code. It is used to design
test box cases where it will find out the total number of executed statements out of the total statements
present in the code.
Formula:
Statement coverage = (Number of executed statements / Total number of statements in source code) *
100
Why is statement coverage used?
●To check the quality of the code.
●To determine the flow of different paths of the program.
●Check whether the source code expected to perform is valid or not.
●tests the software’s internal coding and infrastructure
- Branch coverage
Branch Coverage is a white box testing method in which every outcome from a code
module(statement or loop) is tested. The purpose of branch coverage is to ensure that each decision
condition from every branch is executed at least once. It helps to measure fractions of independent
code segments and to find out sections having no branches.
Branch Coverage is a testing metric used to measure how well a program's decision points are
tested. It ensures that all possible branches in the code (such as "if" and "else" conditions) have
been executed during testing. The goal is to verify that every branch condition has been
evaluated both as true and false at least once.
Condition Coverage:
Condition coverage is a form of white-box testing that checks all possible outcomes of conditional
expressions in a program, also known as predicate coverage. The formula for condition coverage is:
Advantages:
Uncovers untested areas: It identifies parts of the program that are not exercised by existing
test cases.
Measures coverage quality: It provides a quantitative measure of code coverage, indirectly
assessing the quality of the application or product.
Function Coverage:
Function coverage is a metric used to assess how many functions in a program have been
executed during testing. The formula for function coverage is:
Advantages:
Granular testing: Allows for testing of individual functions or methods, helping to isolate
and resolve issues.
Early bug detection: Testing individual functions early helps identify bugs before they
spread across the system.
Better code understanding: It helps testers and developers understand the codebase at a more
detailed level, improving both code quality and documentation.
Cyclomatic complexity is a measure of the number of linearly independent paths in a program, which
indicates how complex a piece of code is. It is calculated using a Control Flow Graph (CFG), where:
Example Calculation:
Static black box testing is a technique that examines an application's functionality without
knowledge of its internal workings. It is performed when the system is not running and
focuses on identifying errors in specification, requirement, or design documents.
Key Advantages:
Dynamic black box testing is a technique that involves testing the software without knowledge of its
internal structure. In this approach, the tester runs the application and interacts with it to observe
its behavior. The focus is on validating the software’s response to both expected and unexpected
inputs, testing for:
Dynamic black box testing is generally used to ensure that the software functions according to
the user requirements and can handle real-world scenarios effectively.
b) Boundary Value Analysis (BVA): Boundary value analysis – Boundaries are very good places for
errors to occur. Hence if test cases are designed for boundary values of the input domain then
the efficiency of testing improves and the probability of finding errors also increases. For
example – If the valid range is 10 to 100 then test for 10,100 also apart from valid and invalid
inputs.
c) Equivalence Partitioning is a software testing technique that divides the input data of a software
application into distinct groups, known as equivalence classes. The premise behind this
approach is that if one test case from a particular equivalence class produces the same result,
then all other test cases within that class are expected to yield similar outcomes.
Name of
Sr. no. Specifications Qty
resources Remarks
1. Internet Google, Reference websites 1
2. Desktop Microsoft word 1 for each
MS access, visual basics
3. Software 1 for each
2022
VII. Outputs of the Microproject
This report explores the fundamentals of Linux commands, directory/file manipulation, and the
FIFO page replacement algorithm. Linux is a widely used operating system, and understanding
its basic commands and file management techniques is essential for efficient system
administration.
1. who
2. who am i
3. login
4. passwd
5. su
1. ls
2. rm
3. mv
5. join
6. split
7. cat
8. head
9. tail
10. touch
TAIL
HEAD
Demand page: Page4
Page4 is
Page4 Page2 Page3 inserted at
TAIL Tail
HEAD
OR
HEAD TAIL
FIFO Algorithm:
1. Initialize:
Set up a queue to hold the pages in memory.
Initialize an empty list or array to store the pages currently in memory.
Set a counter for page faults to zero.
2. For each page request:
Check if the page is in memory:
o If the page is already in memory (in the queue), move to the next page
request (no page fault occurs).
If the page is not in memory (Page Fault):
o If memory is not full (i.e., the queue has space for new pages):
Add the requested page to the end of the queue.
Increase the page fault counter by one.
o If memory is full (i.e., the queue is at maximum capacity):
Remove the page at the front of the queue (the oldest page).
Insert the new page at the end of the queue.
Increase the page fault counter by one.
3. End of requests:
Output the number of page faults.
Optionally, display the final state of pages in memory.
PROBLEM 1: Find the number of page faults and page hits for the given reference
string.
7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1 Frame Size: 3
7 7 7 2 2
0 0 0 3
1 1 1
0 0 7 7 7
1 1 1 0 0
3 2 2 2 1
Page Fault: 15
Page Hit: 5 (Page Hit = No of pages – Page faults)
7 7 7 7 3
0 0 0 0
1 1 1
2 2
3 3 3 2 3
Page Fault: 10
Page Hit: 10
#include <stdio.h>
int main() {
int pageFrames, pages, pageFaults = 0, currentIndex = 0;
printf("Total
Page Faults: %d\n",
pageFaults);
printf("Total
Page Hits: %d", pages-
pageFaults);
return 0;
}
ADVANTAGES OF FIFO DISADVANTAGES OF FIFO
Simplicity: FIFO is straightforward to Poor Performance: FIFO often leads to a
implement, making it ideal for initial learning higher page fault rate, especially in cases
and simple applications. where recently accessed pages are more likely
to be accessed again (i.e., the lack of temporal
locality).
Predictability: Since pages are removed in Belady’s Anomaly: FIFO can exhibit
the order they arrive, the algorithm is easy to Belady’s Anomaly, where increasing the
predict and analyse. number of page frames can lead to an
increased number of page faults, contrary to
what is typically expected.
Low Overhead: FIFO requires less Lack of Adaptability: FIFO doesn't adapt
processing power and minimal additional to different workloads, such as programs
resources, so it performs well under simple with high locality of reference, making it
memory management systems. less efficient than other algorithms like
LRU (Least Recently Used).
FIFO is best suited for systems that require minimal processing and can tolerate a
relatively high page fault rate.
Annexure IV
Micro Project Evaluation Sheet
Name of student & Roll No. Sayyed Abdul Mannan - 220447 Enrolment No. 2200020319
Name of programme. Computer Engineering Semester: 5th
Course title: Operating Systems Code: 22516
Title of Micro project: Basic Linux Commands, Directory/File Manipulation and FIFO Page
Replacement Algorithm
Course Outcomes Achieved:
b) Use Operating System tools to perform various functions.
e) Calculate efficiency of different memory management techniques.
f) Apply file management techniques.
Sr Poor Good
Average Excellent Sub
N Characteristics to be accessed (Marks 1- (Marks 6-
(Marks 4-5) (Marks 9-10) total
o 3) 8)
(A) Process and Product Assessment (Convert above total marks out of 6 Marks)
1 Relevance to the course
Literature
2 Review/Information
collection
Completion of the target as
3
per project proposal
6 Report presentation
(B) Individual Presentation/Viva (Convert above total marks out of 4 Marks)
7 Presentation
8 Viva
(A) (B)
Total Marks
Process and Product Assessment Individual Presentations & Viva
10
(6 Marks) (4 Marks)
Name of student & Roll No. Shaikh Tauheed - 220457 Enrolment No. 2200020360
Name of programme. Computer Engineering Semester: 5th
Course title: Operating Systems Code: 22516
Title of Micro project: Basic Linux Commands, Directory/File Manipulation and FIFO Page
Replacement Algorithm
Course Outcomes Achieved:
b) Use Operating System tools to perform various functions.
e) Calculate efficiency of different memory management techniques.
f) Apply file management techniques.
Sr Poor Good
Average Excellent Sub
N Characteristics to be accessed (Marks 1- (Marks 6-
(Marks 4-5) (Marks 9-10) total
o 3) 8)
(A) Process and Product Assessment (Convert above total marks out of 6 Marks)
1 Relevance to the course
Literature
2 Review/Information
collection
Completion of the target as
3
per project proposal
6 Report presentation
(B) Individual Presentation/Viva (Convert above total marks out of 4 Marks)
7 Presentation
8 Viva
(A) (B)
Total Marks
Process and Product Assessment Individual Presentations & Viva
10
(6 Marks) (4 Marks)
Name of student & Roll No. Deepak Yadav - 220463 Enrolment No. 2200020343
Name of programme. Computer Engineering Semester: 5th
Course title: Operating Systems Code: 22516
Title of Micro project: Basic Linux Commands, Directory/File Manipulation and FIFO Page
Replacement Algorithm
Course Outcomes Achieved:
b) Use Operating System tools to perform various functions.
e) Calculate efficiency of different memory management techniques.
f) Apply file management techniques.
Sr Poor Good
Average Excellent Sub
N Characteristics to be accessed (Marks 1- (Marks 6-
(Marks 4-5) (Marks 9-10) total
o 3) 8)
(A) Process and Product Assessment (Convert above total marks out of 6 Marks)
1 Relevance to the course
Literature
2 Review/Information
collection
Completion of the target as
3
per project proposal
6 Report presentation
(B) Individual Presentation/Viva (Convert above total marks out of 4 Marks)
7 Presentation
8 Viva
(A) (B)
Total Marks
Process and Product Assessment Individual Presentations & Viva
10
(6 Marks) (4 Marks)
Name of student & Roll No. Khan Farhan - 230484 Enrolment No. 23150360354
Name of programme. Computer Engineering Semester: 5th
Course title: Operating Systems Code: 22516
Title of Micro project: Basic Linux Commands, Directory/File Manipulation and FIFO Page
Replacement Algorithm
Course Outcomes Achieved:
b) Use Operating System tools to perform various functions.
e) Calculate efficiency of different memory management techniques.
f) Apply file management techniques.
Sr Poor Good
Average Excellent Sub
N Characteristics to be accessed (Marks 1- (Marks 6-
(Marks 4-5) (Marks 9-10) total
o 3) 8)
(A) Process and Product Assessment (Convert above total marks out of 6 Marks)
1 Relevance to the course
Literature
2 Review/Information
collection
Completion of the target as
3
per project proposal
6 Report presentation
(B) Individual Presentation/Viva (Convert above total marks out of 4 Marks)
7 Presentation
8 Viva
(A) (B)
Total Marks
Process and Product Assessment Individual Presentations & Viva
10
(6 Marks) (4 Marks)