CoursePack-Software Testing Quality Assurance
CoursePack-Software Testing Quality Assurance
SCHEME
The scheme is an overview of work-integrated learning opportunities and gets students out into the real
world.This will give what a course entails.
Tutorial 0 0
Instruction
Self-study
Practical 0 0
Practical
Tutorial
Theory
delivery Self-
SEE
0 6
CIE
study
Total 3 9 45 0 090 50% 50%
Course Course Dr. Azath Mohamed
Dr. Pardeep Singh Hussain
Lead Coordinator
Theory Practical
Ruchi Sharma
Pardeep Singh
Swati Sharma
Azath Mohamed Hussain
Names
Course Manikant Panthi
Instructors Gautam Kumar
Garima Pandey
Shwet Ketu
R. Sathiya Priya
Radha Rani
Ravinder Beniwal
Indervati
K. Suresh
Nidhi Agarwal
Nidhi Sharma
Pravesh
Soumalya Ghosh
John A.
R. Radhika COURSEPACK |
Yashwant Soni
Dhirendra Kumar Shukla
Suman Devi
Kirti
COURSEPACK |
COURSE OVERVIEW
“Software Testing and Quality Assurance” course is designed to prepare students for careers in the field of software
development, where they play a crucial role in ensuring the quality and reliability of software products.
PREREQUISITE COURSE
Prerequisite course Yes(√) No
required
COURSE OBJECTIVE
To teach fundamental concepts, importance, and principles of software testing in the
software development life cycle.
Familiarize students with debugging techniques, integrated development environments (IDEs), and essential
software development practices for efficient coding and debugging.
COURSE OUTCOMES(COs)
After the completion of the course, the student will be able to:
Course Upon successful completion of this course, the student will be able to:
Outcomes
Design and execute test cases for software applications.
E2UC502T.1.
Apply verification and validation techniques to test cases for ensuring full coverage of
E2UC502T.2. paths.
E2UC502T.3. Apply debugging tools, techniques and guidelines to identify and resolve bugs.
Utilize Junit and Selenium tools for automated testing of software codes to enhance
E2UC502T.5. coverage of test cases.
COURSEPACK |
BLOOM’S LEVEL OF THE COURSE OUTCOMES
Bloom's taxonomy is a set of hierarchical models used for the classification of educational learning
objectives into levels of complexity and specificity. The learning domains are cognitive, affective, and
psychomotor.
COMPREHENSIVE
E2UC102C.1 √ √
E2UC102C.2 √ √
E2UC102C.3 √
E2UC102C.4 √
E2UC102C.5 √ √
COURSEPACK |
Individual and team work: Function effectively as an individual, and as a
PO9
member or leader in diverse teams, and in multidisciplinary settings.
Communication: Communicate effectively on complex engineering
activities with the IT analyst community and with society at large, such as,
PO10 being able to comprehend and write effective reports and design
documentation, make effective presentations, and give and receive clear
instructions.
Project management and finance: Demonstrate knowledge and
understanding of the computing science and management principles and
PO11
apply these to one’s own work, as a member and leader in a team, to
manage projects and in multidisciplinary environments.
Life-long learning: Recognize the need for, and have the preparation and
PO12 ability to engage in independent and life-long learning in the broadest
context of technological change.
Have the ability to work with emerging technologies in computing requisite to Industry
PSO1
4.0.
Demonstrate Engineering Practice learned through industry internship and research project
PSO2
to solve live problems in various domains.
COURSE ARTICULATIONMATRIX
The Course articulation matrix indicates the correlation between Course Outcomes and Program Outcomes and their
expected strength of mapping in three levels (low,medium,and high).
COURSEPACK |
COURSE ASSESSMENT
The course assessment patterns are the assessment tools used both in formative and summative examinations.
CIE
Type of Course Total Marks Grand Weightage
(T) Total (CIE-SEE)
IA1 MTE CIE SEE Marks
IA2
PPP (Preliminary Project Plan): The preliminary project plan (PPP) provides an initial, overview of the
project and all of its known parameters. It outlines the project's objectives, relevance to the program, merit,
and conformity to current industry/government policy, proposed methodology, and expected outcomes. It should
also include any known constraints related to the time frame (Gantt Chart), budget, and, etc.
COURSEPACK |
COURSE CONTENT
THEORY
THEORY:
Introduction
Software program and its objective, Software development techniques, software Matrices, top-down
verses bottom-up approach, modular and structures programming. A brief introduction about object
oriented approach.
Importance of Software Testing
Software testing and its importance, software development life cycle verses software testing life cycle,
Deliverables, version and error control, Verification and Validation
Testing Techniques and Strategy
Unit testing, Integration testing, System testing, Acceptance testing
White-Box testing: Flow Graph notation, Cyclomatic Complexity, Graph matrices, control structure.
and loop testing.
Black-Box testing: Equivalence partitioning, Boundary Value Analysis
Building Test Cases and Plans
Format of test cases, Du, dc and other data paths, Test data selection, branch coverage, statement
coverage, pre-condition and post-condition, Test schedule and check pointing, suitable exercises for
creating test cases for each type of Testing techniques.
Quality Assurance and Standards
Basic software quality parameters and its metrics, Software Configuration Change and types of errors,
Quality management models: ISO, CMM
Debugging Technique and Tools
Integrated development environment, debugging, tracing, data inspection, exception errors, code
and data redundancy, Junit and Selenium tool.
COURSEPACK |
LESSON PLAN FOR INTEGRATED COURSES of 3 CREDITS
FOR THEORY 15 weeks * 3 Hours = 45 Classes) (1credit = 1Lecture Hour)
L.No. Topics for Delivery Theory/ Skills Competency
Tutorial
1 Software program and its objective Theory
2 Software development techniques Theory
3 Software Metrices Theory Apply various
approaches of Software
4 Top-down verses bottom-up approach Theory Building
5 Modular and structures programming Theory CO1
6 Object Oriented Approach Theory
11 Theory
Verification and Validation techniques
Use verification
12 Unit Testing and Integration Testing, Theory
validation techniques
Theory for test cases
13 System and Acceptance Testing
14 White-Box testing: : Flow Graph notation Theory
COURSEPACK |
each type of testing
Theory
df CO4
30 Types of errors Update Software
Theory Versions to ensure
31 Quality management models: ISO quality parameters
32 Quality management models: CMM Theory
COURSEPACK |
` BIBLIOGRAPHY
Text Book
1. Desikan S, Ramesh G, “Software Testing”, Pearson Education, 2008.
2. Yogesh Singh,” Software Testing”, Cambridge University Press, 2011.
3. Dustin E, “Effective Software Testing”, Pearson Education, 2007.
4. Mathur A.P, “Fundamentals of Software Testing”, Pearson Education, 2008.
Reference Books
1. R. Pressman, “Software Engineering”, 6th Edition, Tata McGraw-Hill.
2. Brian Marick, “The Craft of Software Testing”, Pearson Education, 2008.
3. Rajani & Oak, “Software Testing : Methodology, Tools and Processes” TataMcGraw-Hill, 2007.
4. Robert Charles Metzger, “Debugging by Thinking: A Multidisciplinary Approach”, HP Technologies,2003.
Webliography:
1. https://www.geeksforgeeks.org/software-testing-tutorial/
2. https://www.guru99.com/software-testing.html
3. https://www.guru99.com/junit-tutorial.html
SWAYAM/NPTEL/MOOCs Certification:
1. Course Name : Software Testing By Prof. Meenakshi D'souza, IIIT Bangalore
https://onlinecourses.nptel.ac.in/noc22_cs61/preview
2. Course Name : Foundations of Software Testing and Validation
https://www.coursera.org/learn/foundations-of-software-testing-and-validation
3. Course Name : Software Testing and Automation Specialization
https://www.coursera.org/specializations/software-testing-automation
COURSEPACK |
PRACTICE PROBLEMS
S.No Problem
1. A program reads three integer values, representing the lengths of the sides if the triangle. The
program prints whether the triangle is scalene, isosceles or equilateral. Develop a set of test
cases that would test the program adequately.
2. Derive a flow graph for the above program and apply basis path testing to develop test cases that
will guarantee the execution of all the statements. Execute the cases and show the results.
3. Write a program in any programming language, to accept 10 numbers & sort them in the order
accepted at run time and design test cases for the condition testing. Also mention the expected
results.
4. Write programs for binary and linear search and de f i n e t h e t e s t c a s e s f o r e a c h
program to find numbers in an array.
5. Write a program to find the sum of the matrices. Write all the test cases so as to verify the
correctness of the logic.
6. Write a program to create fibonacci series and write the test cases for it.
z = 1.0;
while(pow != 0)
{
z = z * x;
pow = pow – 1;
}
if (y < 0)
z = 1.0/z; printf(z);
10. Create the graph matrix and compute the cyclomatic complexity for a program to find factorial of
a number.
11. Write a program to create fibonacci series and create du and dc graph for the same.
12. Find the Cyclomatic Complexity for the below mentioned code:
i = 0;
n=4; //N-Number of nodes present in the graph
while (i<n-1) do
j = i + 1;
while (j<n) do
if A[i]<A[j] then
swap(A[i], A[j]);
end do;
j=j+1;
end do;
13. Calculate cyclomatic complexity for the given code:
IF A = 354
THEN IF B > C
THEN A = B
ELSE A = C
END IF
END IF
PRINT A
14. Calculate cyclomatic complexity for the given code:
{ int i, j, k;
for (i=0 ; i<=N ; i++)
p[i] = 1;
for (i=2 ; i<=N ; i++)
{
k = p[i]; j=1;
while (a[p[j-1]] > a[k] {
p[j] = p[j-1];
j--;
}
p[j]=k;
}
15. Prepare a comprehensive checklist to test a WEB Site
COURSEPACK |
16. A university’s web site allows students to enroll online bio-data. The form contains following
fields:
i. Name of the student
ii. Father’s name
iii. Address
iv. City
v. State
vi. Pin code
vii. Sex
viii. Date of Birth
ix. Academic Qualifications
a. Exam Passed
b. University/Board
c. Marks obtained
d. Division
e. Max Marks
17. Consider an application that accepts a numeric number as input with a value between 10 to 100
and finds its square. Now, using equivalence class testing, what can be its equivalence classes?
18. Design, develop, code and run the program in any suitable language to solve the commission
problem. Analyze it from the perspective of boundary value, derive test cases, execute these test
cases and discuss the test results. Assumption price for lock=45.0, stock=30.0 and barrels=25.0
production limit could sell in a month 70 locks,80 stocks and 90 barrels commission on sales = 10
% <= 1000 and 15 % on 1000 to 1800 and 20 % on above 1800.
19. Design, develop, code and run the program in any suitable language to implement the binary search
algorithm. Determine the basis paths and using them derive different test cases execute these test
cases and discuss the test results.
20. Design, develop, code and run the program in any suitable language to implement the quicksort
algorithm. Determine the basis paths and using them derive different test cases, execute these test
cases and discuss the test results.
21. Design, develop, code and run the program in any suitable language to implement an absolute letter
grading procedure, making suitable assumptions. Determine the basis paths and using them derive
different test cases, execute these test cases and discuss the test results
22. Design, develop, code and run the program in any suitable language to implement the NextDate
function. Analyze it from the perspective boundary value testing and equivalence class analysis.
Derive different test cases, execute these test cases and discuss the test results.
23. Write a Java Program to implement the methods next() and hasNext() in the class StringToWords
(found in ps1.warmup). Its constructor takes a String as argument, and next() should return the
sequence of space-separated words in the string. Assume that behavior is undefined for more than
one space characters between words, and non-space whitespace characters (like tab or newline) are
not considered spaces. Eclipse comes with a debugger which allows you to execute your code one
statement at a time, see the values of variables, and stop the execution of the program at any point.
COURSEPACK |
24. Create Junit program to create test cases to check a test string for “Anagram”, “Isogram” and
“Panagram”.
25. Write a Java program using Junit that verifies if the string variable and string passed in the
condition are both equal.
26. Write a JUnit test assuming you have two StringBuffer references named sbOne and sbTwo and
you only want it to pass if the two refernces point to the same StringBuffer object.
27. Write a JUnit test assuming you have an array of int valus and you only want the JUnit test to fail
if any of the values are less than 20.
28. Write a Junit program that returns true in case the triangle is a valid triangle, i.e. with the provided
sides a, b and c a triangle can be constructed. Two sides combined need to be smaller or equal to
the third, and each side needs to be longer than 0.
31. Write and test a program to provide total number of objects present/ available on the page.
32. Write and test a program to get the number of list items in a list / combo box.
33. Write and test a program to count number of check boxes on the page checked and unchecked
count.
34. Write a Script in Selenium to ensure the following conditions in a Web Form:
a. Name field can’t be blank
b. Subject field must be between 5 and 100 characters
c. Form can’t be submitted with invalid entries.
COURSEPACK |