1. Incorrect dimension of matrices. Matrix multiplication is only defined if the number of columns of the first matrix is equal to the number of rows of the second matrix.
2. Off-by-one errors in loops. Loop indices may not be correctly iterating over all elements of the matrices.
3. Input/output errors. Matrices may not be input or output correctly, leading to invalid data.
4. Logical errors. The algorithm to multiply matrices cell-by-cell may contain flaws in how it calculates the results.
This document discusses software testing principles and concepts. It defines key terms like validation, verification, defects, failures, and metrics. It outlines 11 testing principles like testing being a creative task and test results needing meticulous inspection. The roles of testers are discussed in collaborating with other teams. Defect classes are defined at different stages and types of defects are provided. Quality factors, process maturity models, and defect prevention strategies are also summarized.
The document discusses staffing level estimation over the course of a software development project. It describes how the number of personnel needed varies at different stages: a small group is needed for planning and analysis, a larger group for architectural design, and the largest number for implementation and system testing. It also references models like the Rayleigh curve and Putnam's interpretation that estimate personnel levels over time. Tables show estimates for the distribution of effort, schedule, and personnel across activities for different project sizes. The key idea is that staffing requirements fluctuate throughout the software life cycle, with peaks during implementation and testing phases.
The document discusses several key challenges in software engineering (SE). It notes that SE approaches must address issues of scale, productivity, and quality. Regarding scale, it states that SE methods must be scalable for problems of different sizes, from small to very large, requiring both engineering and project management techniques to be formalized for large problems. Productivity is important to control costs and schedule, and SE aims to deliver high productivity. Quality is also a major goal, involving attributes like functionality, reliability, usability, efficiency and maintainability. Reliability is often seen as the main quality criterion and is approximated by measuring defects. Addressing these challenges of scale, productivity and quality drives the selection of SE approaches.
This document discusses software project management and cost estimation. It outlines five basic factors that influence software project costs: size, process, personnel, environment, and required quality. An equation is provided that estimates effort based on these five factors. The document also discusses the importance of cost estimation for feasibility analysis and return on investment calculations. It describes different techniques for software cost estimation including algorithmic modeling, expert judgment, top-down, bottom-up, and estimation by analogy.
This is the most important topic of OOAD named as Object Oriented Testing. It is used to prepare a good software which has no bug in it and it performs very fast. <a href="https://harisjamil.pro">Haris Jamil</a>
Software requirement engineering bridges the gap between system engineering and software design. It involves gathering requirements through elicitation techniques like interviews and facilitated application specification technique (FAST), analyzing requirements, modeling them, specifying them in documents like use cases, and reviewing the requirements specification. Quality function deployment translates customer needs into technical requirements. Rapid prototyping helps validate requirements by constructing a partial system implementation using tools like 4GLs, reusable components, or formal specification languages. The software requirements specification document is produced at the end of analysis and acts as a contract between developers and customers.
The document discusses key concepts and principles of software engineering practice. It covers the software development lifecycle including requirements analysis, planning, modeling, construction, testing, and deployment. It provides guidance on best practices for communication, modeling, design, coding, testing, and project management. The overall aim of software engineering is to develop reliable, maintainable and usable software that meets customer requirements.
Function point analysis is a method of estimating the size of a software or system by counting the number of inputs, outputs, inquiries, internal logical files and external interface files. It was introduced in 1979 as an alternative to simply counting lines of code. Function point analysis measures the software based on end user requirements rather than implementation details. It provides a consistent way to measure software across different projects, organizations and programming languages. The document provides an overview of function point analysis including its history, why it is needed, how it works and how it is used to estimate sizes of major software applications.
Learn about Agile Methodology of Software Engineering and study concepts like What is Agile, Why Agile is there, Agile Principles, Agile Manifesto with Pros & Cons of it.
Presentation also include Agile Testing Methodology like Scrum, Crystal Methodologies, DSDM, Feature Driven Development, Lean Software Development & Extreme Programming.
If you watch this one please rate it and do share this presentation to others so then can easily learn more about the Agile Methodology.
This document provides an introduction to a unit on software testing and quality assurance. It outlines the core objectives and outcomes of the unit, which are to introduce concepts of software testing, understand different testing techniques, learn about automation testing and tools, and understand the importance of software quality assurance. It also discusses definitions of software testing and quality, the importance of software testing, testing objectives, stages of system testing including test strategy, plan, case design, and procedures. Finally, it covers topics related to quality management including definitions of quality, quality views, total quality management, quality control through statistical process control, and cultural changes for quality management.
This document discusses metrics that can be used to measure software processes and projects. It begins by defining software metrics and explaining that they provide quantitative measures that offer insight for improving processes and projects. It then distinguishes between metrics for the software process domain and project domain. Process metrics are collected across multiple projects for strategic decisions, while project metrics enable tactical project management. The document outlines various metric types, including size-based metrics using lines of code or function points, quality metrics, and metrics for defect removal efficiency. It emphasizes integrating metrics into the software process through establishing a baseline, collecting data, and providing feedback to facilitate continuous process improvement.
Software project management Improving Team EffectivenessREHMAT ULLAH
This document discusses improving team effectiveness for software project management. It emphasizes that managing the team is key and a well-managed team can overcome other shortcomings. Some recommendations include using top talent and fewer people, properly matching skills and motivations to jobs, allowing career progression, balancing the team's skills and personalities, and phasing out underperforming team members. Overall, the most important factors for an effective team are teamwork, balance, strong leadership that keeps the team together and recognizes both individual and group needs.
OPERATING SYSTEMSDESIGN AND IMPLEMENTATIONsathish sak
This document provides an overview of operating systems design and implementation. It discusses the basic functions of an operating system as an extended virtual machine and a resource manager. It describes the evolution of operating systems through four generations from the earliest batch systems using vacuum tubes and plugboards to today's personal computers. The document outlines key components of operating systems including processes, file systems, system calls, and virtual machines. It provides examples of early batch processing systems, multiprogramming, and the structure of system calls. Finally, it discusses different approaches to operating system structure such as layered systems, virtual machines, and the client-server model.
Risk management involves identifying potential problems, assessing their likelihood and impacts, and developing strategies to address them. There are two main risk strategies - reactive, which addresses risks after issues arise, and proactive, which plans ahead. Key steps in proactive risk management include identifying risks through checklists, estimating their probability and impacts, developing mitigation plans, monitoring risks and mitigation effectiveness, and adjusting plans as needed. Common risk categories include project risks, technical risks, and business risks.
A compiler is a program that translates a program written in a source language into an equivalent program in a target language. It has two major phases: analysis and synthesis. The analysis phase creates an intermediate representation using tools like a lexical analyzer, syntax analyzer, and semantic analyzer. The synthesis phase creates the target program from this representation using tools like an intermediate code generator, code optimizer, and code generator. Techniques used in compiler design like lexical analysis, parsing, and code generation have applications in other areas like text editors, databases, and natural language processing.
This document provides an overview of object-oriented analysis and design. It defines key terms and concepts in object-oriented modeling like use cases, class diagrams, states, sequences. It describes developing requirements models using use cases and class diagrams. It also explains modeling object behavior through state and sequence diagrams and transitioning analysis models to design.
White-box testing is a software testing technique that uses knowledge of the internal workings of a system to design test cases. It involves testing internal structures or workings of a program, such as code coverage. The document discusses different white-box testing techniques like statement coverage, decision coverage, condition coverage, and multiple condition coverage. It aims to execute every statement, decision path, condition, and combination of conditions in the code. White-box testing is more effective at finding defects earlier in the SDLC but also more expensive and difficult to implement than black-box testing.
This document discusses various software engineering concepts related to software design. It begins by outlining basic design principles and the software design process, which involves three levels: interface design, architectural design, and detailed design. It then covers topics like modularization, coupling and cohesion, function-oriented design using tools like data flow diagrams and structure charts, software measurement and metrics including function point analysis and cyclomatic complexity, and concludes with Halstead's software science for measuring program length and volume.
The document presents information on the Software Development Life Cycle (SDLC), including:
1) It describes the seven main phases of the SDLC - planning, analysis, design, development, testing, implementation, and maintenance.
2) It discusses several SDLC models like waterfall, iterative, prototyping, spiral and V-model and compares their strengths and weaknesses.
3) It emphasizes the important role of testing in the SDLC and describes different testing types done during the phases.
Decomposition technique In Software Engineering Bilal Hassan
The document discusses different techniques for estimating software project costs and effort, including decomposition, sizing, and function point analysis. It provides an example of estimating the lines of code and function points for a mechanical CAD software project. Estimates are developed by decomposing the problem into smaller elements and tasks, and estimating the effort required for each. The accuracy of estimates depends on properly sizing the software and having reliable past project metrics.
The document discusses various aspects of software project management including project planning activities like estimation, scheduling, staffing, and risk handling. It describes different project organization structures like functional organization and project organization. It also discusses different team structures like chief programmer teams, democratic teams, and mixed teams. The document emphasizes the importance of careful project planning and producing a software project management plan document. It also discusses considerations for staffing a project team and attributes of a good software engineer.
Software testing is the process of evaluating a software application to ensure it functions correctly and meets requirements. There are different types of testing including manual testing, where a tester uses the software without automation, and automation testing, where scripts are used to repeatedly test the software. Testing occurs at various levels such as unit testing of individual code components and system testing of the full application. Effective testing requires clear requirements, collaboration between teams, and addressing challenges like time constraints.
OOAD Part A Question with answer and Part B & C questions.
References :
1) Previous University Questions.
2) Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development by Craig Larman.
3) Google search engine for text and images.
The document discusses checkpoints in the software project management process. It describes three types of joint management reviews: major milestones, minor milestones, and status assessments. Major milestones provide visibility on system-wide issues and verify phase aims. Minor milestones review iteration content and authorize continued work. Status assessments provide frequent management insight. Different stakeholders have different concerns at checkpoints.
This document summarizes the n-queen problem, which involves placing N queens on an N x N chessboard so that no queen can attack any other. It describes the problem's inputs and tasks, provides examples of solutions for different board sizes, and outlines the backtracking algorithm commonly used to solve this problem. The backtracking approach guarantees a solution but can be slow, with complexity rising exponentially with problem size. It is a good benchmark for testing parallel computing systems due to its iterative nature.
CMIS 102 Hands-On Lab
// Week 4
Overview:
This hands-on lab allows you to follow and experiment with the critical steps of developing a program including the program description, analysis, test plan, design (using both flow chart and pseudocode visualization), and implementation with C code. The example provided uses sequential, selection and repetition statements.
Program Description:
This program will calculate the sum of 10 integers. The program will ask the user to 10 integers. If the sum of the numbers is greater than 1000, a message is printed stating the sum is over 1000. The design step will include both pseudocode and flow chart visualization.
Analysis:
I will use sequential, selection and repetition programming statements.
I will define three integer numbers: count, value, sum. Count will store how many times values are entered to make sure we don’t exceed 10 values. Value will store the input integer and sum will store the running sum.
The sum will be calculated by this formula:
sum = sum + value
For example, if the first value entered was 4 and second was 10:
sum = sum + value = 0 + 4
sum = 4 + 10 = 14
Values and sum can be input and calculated within a repetition loop:
while count <10
Input value
sum = sum + value
End while
The additional selection statement will be of this form:
If sum > 1000 then
print "Sum is over 1000"
End If
Test Plan:
To verify this program is working properly the input values could be used for testing:
Test Case
Input
Expected Output
1
value=1
value=1
value=1
value=0
value=1
value=2
value=0
value=1
value=3
value=2
Sum = 12
2
value=100
value=100
value=100
value=100
value=100
value=200
value=200
value=200
value=200
value=200
Sum = 1200
Sum is over 1000.
3
value=-100
value=-100
value=-200
value=0
value=200
value=100
value=0
value=200
value=-300
value=-200
Sum = -400
Pseudocode:
// This program will calculate the sum of 10 integers.
// Declare variables
Declare count, value, sum as Integer
//Initialize Counter, Sum to 0
Set count=0
Set sum = 0
// Loop through 10 integers
While count < 10
Print “Enter an Integer”
Input value
sum = sum + value
count=count+1
End While
// Print results and messages
Print “Sum is “ + sum
If (sum > 1000)
Printf “Sum is over 1000”
End if
Flow Chart:
C Code
The following is the C Code that will compile in execute in the online compilers.
// C code
// This program will calculate the sum of 10 integers.
// Developer: Faculty CMIS102
// Date: Jan 31, 2014
#include <stdio.h>
int main ()
{
/* variable definition: */
int count, value, sum;
/* Initialize count and sum */
count = 0;
sum = 0;
// Loop through to input values
while (count < 10)
{
printf("Enter an Integer\n");
scanf("%d", &value);
sum = sum + value;
count = count + 1;
}
printf("Sum is %d\n " , sum );
if (sum >1000)
printf("Sum is over 1000\n");
return 0;
}
Setting up the code and the input parameters in ideone.com:
Note the input integer.
This document provides an overview of key concepts in C programming including algorithms, flowcharts, operations and variables, conditional statements like if-else, switch case, loops like for, while, do-while. It includes examples to demonstrate printf, scanf, arithmetic operators, boolean operators, if-else statements, nested if, multiple condition testing, switch case, for loop, while loop, do-while loop, and use of break and continue. The document is intended as a reference for understanding basic programming structures in C.
Learn about Agile Methodology of Software Engineering and study concepts like What is Agile, Why Agile is there, Agile Principles, Agile Manifesto with Pros & Cons of it.
Presentation also include Agile Testing Methodology like Scrum, Crystal Methodologies, DSDM, Feature Driven Development, Lean Software Development & Extreme Programming.
If you watch this one please rate it and do share this presentation to others so then can easily learn more about the Agile Methodology.
This document provides an introduction to a unit on software testing and quality assurance. It outlines the core objectives and outcomes of the unit, which are to introduce concepts of software testing, understand different testing techniques, learn about automation testing and tools, and understand the importance of software quality assurance. It also discusses definitions of software testing and quality, the importance of software testing, testing objectives, stages of system testing including test strategy, plan, case design, and procedures. Finally, it covers topics related to quality management including definitions of quality, quality views, total quality management, quality control through statistical process control, and cultural changes for quality management.
This document discusses metrics that can be used to measure software processes and projects. It begins by defining software metrics and explaining that they provide quantitative measures that offer insight for improving processes and projects. It then distinguishes between metrics for the software process domain and project domain. Process metrics are collected across multiple projects for strategic decisions, while project metrics enable tactical project management. The document outlines various metric types, including size-based metrics using lines of code or function points, quality metrics, and metrics for defect removal efficiency. It emphasizes integrating metrics into the software process through establishing a baseline, collecting data, and providing feedback to facilitate continuous process improvement.
Software project management Improving Team EffectivenessREHMAT ULLAH
This document discusses improving team effectiveness for software project management. It emphasizes that managing the team is key and a well-managed team can overcome other shortcomings. Some recommendations include using top talent and fewer people, properly matching skills and motivations to jobs, allowing career progression, balancing the team's skills and personalities, and phasing out underperforming team members. Overall, the most important factors for an effective team are teamwork, balance, strong leadership that keeps the team together and recognizes both individual and group needs.
OPERATING SYSTEMSDESIGN AND IMPLEMENTATIONsathish sak
This document provides an overview of operating systems design and implementation. It discusses the basic functions of an operating system as an extended virtual machine and a resource manager. It describes the evolution of operating systems through four generations from the earliest batch systems using vacuum tubes and plugboards to today's personal computers. The document outlines key components of operating systems including processes, file systems, system calls, and virtual machines. It provides examples of early batch processing systems, multiprogramming, and the structure of system calls. Finally, it discusses different approaches to operating system structure such as layered systems, virtual machines, and the client-server model.
Risk management involves identifying potential problems, assessing their likelihood and impacts, and developing strategies to address them. There are two main risk strategies - reactive, which addresses risks after issues arise, and proactive, which plans ahead. Key steps in proactive risk management include identifying risks through checklists, estimating their probability and impacts, developing mitigation plans, monitoring risks and mitigation effectiveness, and adjusting plans as needed. Common risk categories include project risks, technical risks, and business risks.
A compiler is a program that translates a program written in a source language into an equivalent program in a target language. It has two major phases: analysis and synthesis. The analysis phase creates an intermediate representation using tools like a lexical analyzer, syntax analyzer, and semantic analyzer. The synthesis phase creates the target program from this representation using tools like an intermediate code generator, code optimizer, and code generator. Techniques used in compiler design like lexical analysis, parsing, and code generation have applications in other areas like text editors, databases, and natural language processing.
This document provides an overview of object-oriented analysis and design. It defines key terms and concepts in object-oriented modeling like use cases, class diagrams, states, sequences. It describes developing requirements models using use cases and class diagrams. It also explains modeling object behavior through state and sequence diagrams and transitioning analysis models to design.
White-box testing is a software testing technique that uses knowledge of the internal workings of a system to design test cases. It involves testing internal structures or workings of a program, such as code coverage. The document discusses different white-box testing techniques like statement coverage, decision coverage, condition coverage, and multiple condition coverage. It aims to execute every statement, decision path, condition, and combination of conditions in the code. White-box testing is more effective at finding defects earlier in the SDLC but also more expensive and difficult to implement than black-box testing.
This document discusses various software engineering concepts related to software design. It begins by outlining basic design principles and the software design process, which involves three levels: interface design, architectural design, and detailed design. It then covers topics like modularization, coupling and cohesion, function-oriented design using tools like data flow diagrams and structure charts, software measurement and metrics including function point analysis and cyclomatic complexity, and concludes with Halstead's software science for measuring program length and volume.
The document presents information on the Software Development Life Cycle (SDLC), including:
1) It describes the seven main phases of the SDLC - planning, analysis, design, development, testing, implementation, and maintenance.
2) It discusses several SDLC models like waterfall, iterative, prototyping, spiral and V-model and compares their strengths and weaknesses.
3) It emphasizes the important role of testing in the SDLC and describes different testing types done during the phases.
Decomposition technique In Software Engineering Bilal Hassan
The document discusses different techniques for estimating software project costs and effort, including decomposition, sizing, and function point analysis. It provides an example of estimating the lines of code and function points for a mechanical CAD software project. Estimates are developed by decomposing the problem into smaller elements and tasks, and estimating the effort required for each. The accuracy of estimates depends on properly sizing the software and having reliable past project metrics.
The document discusses various aspects of software project management including project planning activities like estimation, scheduling, staffing, and risk handling. It describes different project organization structures like functional organization and project organization. It also discusses different team structures like chief programmer teams, democratic teams, and mixed teams. The document emphasizes the importance of careful project planning and producing a software project management plan document. It also discusses considerations for staffing a project team and attributes of a good software engineer.
Software testing is the process of evaluating a software application to ensure it functions correctly and meets requirements. There are different types of testing including manual testing, where a tester uses the software without automation, and automation testing, where scripts are used to repeatedly test the software. Testing occurs at various levels such as unit testing of individual code components and system testing of the full application. Effective testing requires clear requirements, collaboration between teams, and addressing challenges like time constraints.
OOAD Part A Question with answer and Part B & C questions.
References :
1) Previous University Questions.
2) Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development by Craig Larman.
3) Google search engine for text and images.
The document discusses checkpoints in the software project management process. It describes three types of joint management reviews: major milestones, minor milestones, and status assessments. Major milestones provide visibility on system-wide issues and verify phase aims. Minor milestones review iteration content and authorize continued work. Status assessments provide frequent management insight. Different stakeholders have different concerns at checkpoints.
This document summarizes the n-queen problem, which involves placing N queens on an N x N chessboard so that no queen can attack any other. It describes the problem's inputs and tasks, provides examples of solutions for different board sizes, and outlines the backtracking algorithm commonly used to solve this problem. The backtracking approach guarantees a solution but can be slow, with complexity rising exponentially with problem size. It is a good benchmark for testing parallel computing systems due to its iterative nature.
CMIS 102 Hands-On Lab
// Week 4
Overview:
This hands-on lab allows you to follow and experiment with the critical steps of developing a program including the program description, analysis, test plan, design (using both flow chart and pseudocode visualization), and implementation with C code. The example provided uses sequential, selection and repetition statements.
Program Description:
This program will calculate the sum of 10 integers. The program will ask the user to 10 integers. If the sum of the numbers is greater than 1000, a message is printed stating the sum is over 1000. The design step will include both pseudocode and flow chart visualization.
Analysis:
I will use sequential, selection and repetition programming statements.
I will define three integer numbers: count, value, sum. Count will store how many times values are entered to make sure we don’t exceed 10 values. Value will store the input integer and sum will store the running sum.
The sum will be calculated by this formula:
sum = sum + value
For example, if the first value entered was 4 and second was 10:
sum = sum + value = 0 + 4
sum = 4 + 10 = 14
Values and sum can be input and calculated within a repetition loop:
while count <10
Input value
sum = sum + value
End while
The additional selection statement will be of this form:
If sum > 1000 then
print "Sum is over 1000"
End If
Test Plan:
To verify this program is working properly the input values could be used for testing:
Test Case
Input
Expected Output
1
value=1
value=1
value=1
value=0
value=1
value=2
value=0
value=1
value=3
value=2
Sum = 12
2
value=100
value=100
value=100
value=100
value=100
value=200
value=200
value=200
value=200
value=200
Sum = 1200
Sum is over 1000.
3
value=-100
value=-100
value=-200
value=0
value=200
value=100
value=0
value=200
value=-300
value=-200
Sum = -400
Pseudocode:
// This program will calculate the sum of 10 integers.
// Declare variables
Declare count, value, sum as Integer
//Initialize Counter, Sum to 0
Set count=0
Set sum = 0
// Loop through 10 integers
While count < 10
Print “Enter an Integer”
Input value
sum = sum + value
count=count+1
End While
// Print results and messages
Print “Sum is “ + sum
If (sum > 1000)
Printf “Sum is over 1000”
End if
Flow Chart:
C Code
The following is the C Code that will compile in execute in the online compilers.
// C code
// This program will calculate the sum of 10 integers.
// Developer: Faculty CMIS102
// Date: Jan 31, 2014
#include <stdio.h>
int main ()
{
/* variable definition: */
int count, value, sum;
/* Initialize count and sum */
count = 0;
sum = 0;
// Loop through to input values
while (count < 10)
{
printf("Enter an Integer\n");
scanf("%d", &value);
sum = sum + value;
count = count + 1;
}
printf("Sum is %d\n " , sum );
if (sum >1000)
printf("Sum is over 1000\n");
return 0;
}
Setting up the code and the input parameters in ideone.com:
Note the input integer.
This document provides an overview of key concepts in C programming including algorithms, flowcharts, operations and variables, conditional statements like if-else, switch case, loops like for, while, do-while. It includes examples to demonstrate printf, scanf, arithmetic operators, boolean operators, if-else statements, nested if, multiple condition testing, switch case, for loop, while loop, do-while loop, and use of break and continue. The document is intended as a reference for understanding basic programming structures in C.
This document is a lab practical file submitted by Amit Kumar Gandhi for an Introduction to Programming lab. It contains 21 programs with the code and output for each program. The programs cover basic concepts in C programming like input/output, arithmetic operations, conditional statements, loops, functions etc. Examples include programs to print hello world, calculate sum of two numbers, find largest of three numbers, check leap year, calculate factorial, print Fibonacci series, check prime numbers etc.
This document discusses various C programming concepts including variables, data types, operators, blocks and compound statements, control flow, conditional statements, loops, functions, and variable scope. It provides definitions and examples for each concept. Key points covered include using blocks to combine multiple statements, the syntax of if, else if, else statements and switch statements, how while, for, and do-while loops work, and how to break programs into modular functions to solve problems using techniques like recursion.
This document provides an introduction to C++ programming concepts including basic syntax, variables, data types, operators, conditionals, and loops. It begins with an overview of basic printing, variables, comments, input/output, and the modulus operator. Examples are given for declaring integer, float, and char variables and performing arithmetic operations. Concepts covered for conditionals include if/else, else if ladders, ternary operators, and switch statements. Examples are provided for taking input and printing output based on conditions. The document concludes with an introduction to loops, focusing on the for loop syntax and using loops to print patterns and tables. Homework questions are provided throughout for additional practice.
E1 – FundamentalsPlease refer to announcements for details about.docxjacksnathalie
E1 – Fundamentals
Please refer to announcements for details about this exam. Make sure you fill the information below to avoid not being graded properly;
Last Name
Thalheimer
First Name
Kristoffer
Student ID #
Thalheimer
Here is the grading matrix where the TA will leave feedback. If you scored 100%, you will most likely not see any feedback (
Question
# points
Feedback
Max
Scored
1
Tracing
3
2
Testing
2
3
Refactoring
2
4
Debugging
3
Question #1 – Tracing Programs
We are going to trace the following program, i.e. simulate in your head how it would execute on a computer. To help you, a trace table is provided for you to fill.
For each “execution step” of the program, write down in the table the line being executed along with the value of each variable which was modified.
Please note that we omitted the usual main function definition and other #include statements. We assume the following fragment to be inside a main function.
Program to Trace
1
int something = 5;
2
int data = 42;
3
int n = 0;
4
5
for( n = 0 ; data > 0 ; n++){
6
data -= something;
7
}
8
9
if( data < 0) n--;
Trace Table to Fill
Feel free to add / remove rows if necessary
Step #
Line #
Variables Values
Remarks
something
data
n
1
2
3
…
Question #2 – Testing Programs
You are going to write tests for the following program fragment which we assume to be inside a main function. Its requirements are to
· Prompt the user for two int numbers X and Y
· If Y is zero the program should display “Error #1” then exit.
· Otherwise, if any of the two input value is less or equal to zero, it should display “Error #2” then exit.
· Otherwise, it should display how many times Y goes into X.
This is the equivalent of the integer division of X by Y.
Your objective is to write tests which will guarantee
· The program conforms to the requirements
· All possible execution paths have been tested
· Your program does not feature any errors
Program to Test
1
int div = 0;
2
int data = 0;
3
int n = 0;
4
printf("Enter positive int to divide: ");
5
scanf("%d", &data);
6
7
printf("Enter positive int to divide it by: ");
8
scanf("%d", &div);
9
10
if(div == 0){
11
printf("Error #1\n");
12
exit(EXIT_FAILURE);
13
}
14
15
if((data <= 0) || (div <= 0)){
16
printf("Error #2\n");
17
exit(EXIT_FAILURE);
18
}
19
20
for( n = 0 ; data > 0 ; n++){
21
data -= div;
22
}
23
24
if( data < 0) n--;
25
26
printf("Ouput value is %d\n", n);
Tests Table to Fill
Feel free to add / remove rows if necessary
Test #
Inputs’ Values
Expected Results
Explanations;
What did you use this test for?
Why is it not redundant with others?
div
data
n
Error
1
2
3
…
Question #3 – Refactoring Programs
Refactor the following code to improve it in terms of readability, documentation, redundancy. Regarding redundancy, we really don’t like having twice the same printf/scanf but we don’t want a solution where the ...
E2 – Fundamentals, Functions & ArraysPlease refer to announcemen.docxjacksnathalie
E2 – Fundamentals, Functions & Arrays
Please refer to announcements for details about this exam. Make sure you fill the information below to avoid not being graded properly;
Last Name
First Name
Student ID #
Here is the grading matrix where the TA will leave feedback. If you scored 100%, you will most likely not see any feedback (
Question
# points
Feedback
Max
Scored
1
Tracing
3
2
Testing
2
3
Refactoring
2
4
Debugging
3
Interlude – How to Trace Recursive Programs
To help you fill the trace table in question #1, we start with an example of a small recursive program & provide you with the trace table we expect you to draw.
Example Program to Trace
This program implements a power function recursively. We do not have local variables in either function, thus making the information in each activation record a bit shorter.
1 #include <stdio.h>
2 #include <stdlib.h>
3 int pwr(int x, int y){
4
if( y == 0 )
return 1;
5
if( y == 1 )
return x;
6
return x * pwr(x, y-1);
7 }
8 int main(){
9
printf("%d to power %d is %d\n", 5, 3, pwr(5,3));
10
return EXIT_SUCCESS;
11 }
Example Trace Table
Please note the following about the table below;
· We only write down the contents of the stack when it is changed, i.e. when we enter a function or assign a new value to a variable in the current activation record.
· When we write the contents of the stack, we write the contents of the whole stack, including previous activation records.
· Each activation record is identified by a bold line specifying the name of the function & the parameters passed to it when it was invoked.
· It is followed by a bullet list with one item per parameter or local variable.
· New activation records are added at the end of the contents of the previous stack
Line #
What happens?
Stack is
10
Entering main function
main’s activation record
· No local vars / parameters
11
Invoking function pwr as part of executing the printf
Stack is the same, no need to repeat it
4
Entering pwr function with arguments 5 & 3
main’s activation record
· No local vars / parameters
pwr(5,3) activation record
· x is 5
· y is 3
5
Testing if y is 0 ( false
6
Testing if y is 1 ( false
7
Invoking pwr(5,2) as part of return statement
4
Entering pwr function with arguments 5 & 2
main’s activation record
· No local vars / parameters
pwr(5,3) activation record
· x is 5
· y is 3
pwr(5,2) activation record
· x is 5
· y is 2
5
Testing if y is 0 ( false
6
Testing if y is 1 ( false
7
Invoking pwr(5,1)
4
Entering pwr function with arguments 5 & 1
main’s activation record
· No local vars / parameters
pwr(5,3) activation record
· x is 5
· y is 3
pwr(5,2) activation record
· x is 5
· y is 2
pwr(5,1) activation record
· x is 5
· y is 1
5
Testing if y is 0 ( false
6
Testing if y is 1 ( true
6
Return value x which is 5
7
Back from invocation of pwr(5,1) with result 5.
main’s activation record
· No local vars / parameters
pwr(5,3) activation r ...
C++ How to Program 10th Edition Deitel Solutions Manualjovaerili
C++ How to Program 10th Edition Deitel Solutions Manual
C++ How to Program 10th Edition Deitel Solutions Manual
C++ How to Program 10th Edition Deitel Solutions Manual
C++ Loops General Discussion of Loops A loop is a.docxhumphrieskalyn
C++ Loops
General Discussion of Loops
A loop is a programming construct that allows a group of statements, called the loop body, to be
executed zero or more times. For example, a loop might cause a group of statements to be executed
12 times.
A loop is controlled in part by the loop continuation condition. As long as the loop continuation
condition remains true, the loop will continue to execute. In order for a loop to stop, it must have a
terminating action, i.e. statement(s) in the loop body which when executed insure that the
continuation condition will eventually become false.
A loop control variable is a variable whose change may cause the continuation condition to
become false. A common error is to not initialize the control variable. To help ensure that the loop
does not become an infinite loop, always make sure to do the following three things with the LCV
(loop control variable):
1) Initialize the LCV, almost always done before the loop.
2) Test the LCV, this is done inside the continuation condition.
3) Update or change the LCV, inside the loop body.
There are three kinds of loops that are commonly available in programming languages.
1) The while loop executes an indefinite and possibly zero number of repetitions.
2) The do-while loop executes an indefinite number of times, but always at least once.
3) The for loop is convenient when the number of repetitions is known in advance.
C++ Loops
The above three loop types are available in C and C++, but the while loop is the most often used;
lets see some examples.
Example 1: A while loop that determines the number of digits in a positive integer, N. Assume that
N has previously been declared and given a value.
int Copy = N; // don’t want to destroy N!
DigitCount = 1; // all numbers have at least 1 digit
while ( Copy >= 10) // count the rest of the digits
{
++DigitCount; // found one more digit
Copy /= 10; // get rid of rightmost digit
}
When the loop finishes, DigitCount holds the number of digits in the integer N.
Example 2: A do-while loop that determines the number of digits in integer, N, same as above.
int Copy = N; // don’t destroy original N
DigitCount = 0; // do-while loop will increment this at least once
do
{
++DigitCount; // found one more digit
Copy /= 10; // get rid of rightmost digit
}
while ( Copy != 0); // count the rest of the digits. Note the ‘;’
A for loop could also be used to count digits, but let’s instead look at an example more suited to the
strong points of the for loop.
Example 3: A loop to print all of the upper case letters.
char Ch;
for ( Ch = ‘A’; Ch <= ‘Z’; ++Ch )
cout << Ch;
This loop is equivalent to the following while loop:
char Ch;
Ch = ‘A’;
while ( Ch <= ‘Z’ )
{
cout << Ch;
++Ch;
}
The following rules are used by C++ when executing ...
C++ How to Program 10th Edition Deitel Solutions Manualkerpelgoulis
C++ How to Program 10th Edition Deitel Solutions Manual
C++ How to Program 10th Edition Deitel Solutions Manual
C++ How to Program 10th Edition Deitel Solutions Manual
The document provides an outline of topics for a C/C++ tutorial, including a "Hello World" program, data types, variables, operators, conditionals, loops, arrays, strings, functions, pointers, command-line arguments, data structures, and memory allocation. It gives examples and explanations of key concepts in C/C++ programming.
x = 2 and z = 4. y is calculated using various operations on x and z:
1) y = x++ + ++x evaluates to 6 as x is incremented twice.
2) y = ++x + ++x evaluates to 8 as both x values are pre-incremented.
3) y = ++x + ++x + ++x evaluates to 13 as x is incremented three times.
4) y = x > z evaluates to 0 as the relation x > z is false.
5) y = x > z ? x : z evaluates to 4 as z is chosen by the conditional operator.
6) y = x & z evaluates to 0 as the bitwise
The document discusses various types of white box or structural testing techniques including statement coverage, branch coverage, basic condition coverage, and modified condition/decision coverage. It provides examples of how to evaluate test suites based on these coverage criteria by considering the control flow and conditions in a sample program. The goal of white box testing is to systematically cover the structure of the source code to increase the likelihood of revealing faults.
The document provides an introduction to the C programming language. It discusses C's history, origins in the development of UNIX, data types, variables, constants, operators, input/output functions, conditional statements, and loops. It also provides 10 examples of C programs covering topics like calculating sums, finding prime and palindrome numbers, temperature conversion, and linear/binary search.
This document provides an example of how to test a simple program for adding two numbers. It outlines the steps an experienced tester would take:
1) Start with an obvious and simple test, such as entering the numbers 2 and 3. This helps familiarize yourself with the program and check for basic errors.
2) Note other areas that need testing, such as different valid and invalid number combinations. Create test cases that check boundary conditions like single and double digit numbers.
3) Run the valid test cases from step 2, such as different digit combinations, to check for errors in expected behavior. Invalid and unusual test cases should also be designed to search for bugs.
This document describes a lab assignment on operators and expressions in C++. It includes theories on various operators like arithmetic, assignment, increment/decrement, relational, logical operators and precedence of operators. It then lists several activities for students to write programs demonstrating the use of these operators and expressions. These include calculating average, postfix/prefix increment, arithmetic operations on variables, modulus operator, and relational/logical operators. The document ends with exercises to write expressions and programs to calculate values based on given conditions.
The document discusses the architecture of the 8051 microcontroller. It contains a CPU, RAM, ROM, timers, serial port, and I/O ports. It has 5 interrupt sources - 2 external and 2 priority levels. It describes the pin layout of the 8051 with functions of each pin like Vcc, GND, crystal pins, ports, interrupts etc. The block diagram shows the different components and their interconnections on the 8051 chip.
E2 – Fundamentals, Functions & ArraysPlease refer to announcements.docxshandicollingwood
E2 – Fundamentals, Functions & Arrays
Please refer to announcements for details about this exam. Make sure you fill the information below to avoid not being graded properly;
Last Name
Hanrahan
First Name
Kane
Student ID #
U84918862
Here is the grading matrix where the TA will leave feedback. If you scored 100%, you will most likely not see any feedback
Question
# points
Feedback
Max
Scored
1
Tracing
3
2
Testing
2
3
Refactoring
2
4
Debugging
3
Interlude – How to Trace Recursive Programs
To help you fill the trace table in question #1, we start with an example of a small recursive program & provide you with the trace table we expect you to draw.
Example Program to Trace
This program implements a power function recursively. We do not have local variables in either function, thus making the information in each activation record a bit shorter.
#include
#include
int pwr(int x, int y){
if( y == 0 ) return 1;
if( y == 1 ) return x;
return x * pwr(x, y-1);
}
int main(){
printf("%d to power %d is %d\n", 5, 3, pwr(5,3));
return EXIT_SUCCESS;
}
Example Trace Table
Please note the following about the table below;
We only write down the contents of the stack when it is changed, i.e. when we enter a function or assign a new value to a variable in the current activation record.
When we write the contents of the stack, we write the contents of the whole stack, including previous activation records.
Each activation record is identified by a bold line specifying the name of the function & the parameters passed to it when it was invoked.
It is followed by a bullet list with one item per parameter or local variable.
New activation records are added at the end of the contents of the previous stack
Line #
What happens?
Stack is
10
Entering main function
main’s activation record
No local vars / parameters
11
Invoking function pwr as part of executing the printf
Stack is the same, no need to repeat it
4
Entering pwr function with arguments 5 & 3
main’s activation record
No local vars / parameters
pwr(5,3) activation record
x is 5
y is 3
5
Testing if y is 0
false
6
Testing if y is 1
false
7
Invoking pwr(5,2) as part of return statement
4
Entering pwr function with arguments 5 & 2
main’s activation record
No local vars / parameters
pwr(5,3) activation record
x is 5
y is 3
pwr(5,2) activation record
x is 5
y is 2
5
Testing if y is 0
false
6
Testing if y is 1
false
7
Invoking pwr(5,1)
4
Entering pwr function with arguments 5 & 1
main’s activation record
No local vars / parameters
pwr(5,3) activation record
x is 5
y is 3
pwr(5,2) activation record
x is 5
y is 2
pwr(5,1) activation record
x is 5
y is 1
5
Testing if y is 0
false
6
Testing if y is 1
true
6
Return value x which is 5
7
Back from invocation of pwr(5,1) with result 5.
main’s activation record
No local vars / parameters
pwr(5,3) activation record
x is 5
y is 3
pwr(5,2) activation record
x is 5
y is 2
7
Return the result * x
= 5 * 5
= .
APM Event hosted by the South Wales and West of England Network on 20 May 2025
Speaker: Professor Nira Chamberlain OBE
At the heart of Project Management lies its people. Project success is driven by effective decision-making drawing on the diverse strengths of the whole team. “Ensuring project management continues to work on improving its levels of diversity and inclusion is key to ensuring that it reflects wider society, bringing in new talent from all backgrounds to develop a stronger profession with a broad range of voices.” APM Salary and Market Trends Survey 2023 Chapter 3.
In this talk, held on 20 May 2025, Professor Nira Chamberlain showed the insight gained from treating Equality, Diversity & Inclusion as a pure scientific problem and its relevance to project management.
What is Diversity? What is Inclusion? What is Equality? What are the differences between these three terms? Do we measure Equality, Diversity & Inclusion (EDI) the same or should we measure them differently? What impact and relevance will this on the project management community?
In 2021, an All-Party Parliamentary Group (APPG) investigating Diversity in STEM concluded that the way we measure EDI does not reflect the lived experience of underrepresented groups. In 2024 the APPG started a formal investigation into the issue. This may impact the way APM and other organisations measure EDI moving forward.
https://www.apm.org.uk/news/project-management-teams-the-science-of-equality-diversity-and-inclusion/
Combustion in Compression Ignition Engine (CIE)NileshKumbhar21
Stages of combustion, Delay period, Factors affecting delay period, Abnormal
combustion- Diesel knock, Influence of engine design and operating variables
on diesel knock, Comparison of abnormal combustion in S.I. and C.I. Engines,
Cetane number, Additives. Requirements of combustion chambers for C.I.
Engines and its types
TechSoup - Microsoft Discontinuation of Selected Cloud Donated Offers 2025.05...TechSoup
Thousands of nonprofits rely on donated Microsoft 365 Business Premium and Office 365 E1 subscriptions. In this webinar, TechSoup discuss Microsoft's May 14 announcement that the donated versions of these licenses would no longer be available to nonprofits after July 1, 2025, and which options are best for nonprofits moving forward as they transition off these licenses.
The philosophical basis of curriculum refers to the foundational beliefs and values that shape the goals, content, structure, and methods of education. Major educational philosophies—idealism, realism, pragmatism, and existentialism—guide how knowledge is selected, organized, and delivered to learners. In the digital age, understanding these philosophies helps educators and content creators design curriculum materials that are purposeful, learner-centred, and adaptable for online environments. By aligning educational content with philosophical principles and presenting it through interactive and multimedia formats.
Basic principles involved in the traditional systems of medicine, Chapter 7,...ARUN KUMAR
Basic principles involved in the traditional systems of medicine include:
Ayurveda, Siddha, Unani, and Homeopathy
Method of preparation of Ayurvedic formulations like:
Arista, Asava, Gutika, Taila, Churna, Lehya and Bhasma
TechSoup Introduction to Generative AI and Copilot - 2025.05.22.pdfTechSoup
In this engaging and insightful two-part webinar series, where we will dive into the essentials of generative AI, address key AI concerns, and demonstrate how nonprofits can benefit from using Microsoft’s AI assistant, Copilot, to achieve their goals.
This event series to help nonprofits obtain Copilot skills is made possible by generous support from Microsoft.
How to create and manage blogs in odoo 18Celine George
A blog serves as a space for sharing articles and information.
In Odoo 18, users can easily create and publish blogs through
the blog menu. This guide offers step-by-step instructions on
setting up and managing a blog on an Odoo 18 website.
How to Configure Subcontracting in Odoo 18 ManufacturingCeline George
Subcontracting in manufacturing involves outsourcing specific production tasks to external vendors or subcontractors. These tasks may include manufacturing certain components, handling assembly processes, or even producing entire product lines.
The Reproductive System of Insects: An Overview.pptxArshad Shaikh
Male and Female Reproductive Systems in Insects
The male reproductive system produces and delivers sperm, while the female reproductive system produces eggs and stores sperm. The male system includes testes, vas deferens, and an aedeagus for sperm transfer. The female system consists of ovaries, oviducts, and a spermatheca for sperm storage. These systems work together to facilitate mating, fertilization, and reproduction in insects.
CURRENT CASE COUNT: 880
• Texas: 729 (+5) (56% of cases are in Gaines County)
• New Mexico: 78 (+4) (83% of cases are from Lea County)
• Oklahoma: 17
• Kansas: 56 (38.89% of the cases are from Gray County)
HOSPITALIZATIONS: 103
• Texas: 94 - This accounts for 13% of all cases in the State.
• New Mexico: 7 – This accounts for 9.47% of all cases in New Mexico.
• Kansas: 2 - This accounts for 3.7% of all cases in Kansas.
DEATHS: 3
• Texas: 2 – This is 0.28% of all cases
• New Mexico: 1 – This is 1.35% of all cases
US NATIONAL CASE COUNT: 1,076 (confirmed and suspected)
INTERNATIONAL SPREAD
• Mexico: 1,753 (+198) 4 fatalities
‒ Chihuahua, Mexico: 1,657 (+167) cases, 3 fatalities, 9 hospitalizations
• Canada: 2518 (+239) (Includes Ontario’s outbreak, which began November 2024)
‒ Ontario, Canada: 1,795 (+173) 129 (+10) hospitalizations
‒ Alberta, Canada: 560 (+55)
Things to keep an eye on:
Mexico: Three children have died this month (all linked to the Chihuahua outbreak):
An 11-month-old and a 7-year-old with underlying conditions
A 1-year-old in Sonora whose family is from Chihuahua
Canada:
Ontario now reports more cases than the entire U.S.
Alberta’s case count continues to climb rapidly and is quickly closing in on 600 cases.
Emerging transmission chains in Manitoba and Saskatchewan underscore the need for vigilant monitoring of under-immunized communities and potential cross-provincial spread.
United States:
North Dakota: Grand Forks County has confirmed its first cases (2), linked to international travel. The state total is 21 since May 2 (including 4 in Cass County and 2 in Williams County), with one hospitalization reported.
OUTLOOK: With the spring–summer travel season peaking between Memorial Day and Labor Day, both domestic and international travel may fuel additional importations and spread. Although measles transmission is not strictly seasonal, crowded travel settings increase the risk for under-immunized individuals.
Odoo 18 Point of Sale PWA - Odoo SlidesCeline George
Progressive Web Apps (PWA) are web applications that deliver an app-like experience using modern web technologies, offering features like offline functionality, installability, and responsiveness across devices.
This article explores the miraculous event of the Splitting of the Moon (Shaqq al-Qamar) as recorded in Islamic scripture and tradition. Drawing from the Qur'an, authentic hadith collections, and classical tafsir, the article affirms the event as a literal miracle performed by Prophet Muhammad ﷺ in response to the Quraysh’s demand for a sign. It also investigates external historical accounts, particularly the legend of Cheraman Perumal, a South Indian king who allegedly witnessed the miracle and embraced Islam. The article critically examines the authenticity and impact of such regional traditions, while also discussing the lack of parallel astronomical records and how scholars have interpreted this event across centuries. Concluding with the theological significance of the miracle, the article offers a well-rounded view of one of Islam’s most discussed supernatural events.
How to Configure Credit Card in Odoo 18 AccountingCeline George
Odoo 18 allows businesses to manage credit card payments efficiently within the Accounting module. Here’s how you can configure a credit card as a payment method.
How to Manage Allow Ship Later for Sold Product in odoo Point of SaleCeline George
The "Allow Ship Later for Sold Product" feature in Odoo Point of Sale (POS) allows businesses to sell products without requiring immediate delivery. This option gives customers the flexibility to purchase an item and have it shipped at a later date.
How to Manage Allow Ship Later for Sold Product in odoo Point of SaleCeline George
Software testing lab manual
1. SWETHA INSTITUTE OF TECHNOLOGY&
SCIENCE
(Approved by AICTE and Affiliated to JNTU-ANATAUR)
C.Ramauram (V), Ramachandrauram(M), Chittoor Dist-517 561
(2013-2014)
Department of Computer Science & Engineering
LAB MANUAL FOR
SOFTWARE TESTING LAB
IV B.Tech I SEM
2. CASE TOOLS & SOFTWARE TESTING LAB MANUAL
N99A49G70E68S51H Page 2
SOFTWARE TESTING
OBJECTIVES OF THE LAB
1. Testing is a process of executing a program with the intent of finding an error.
2. A good test case is one that has a high probability of finding an as yet undiscovered error.
3. A successful test is one that uncovers an as yet undiscovered error.
REQUIREMENTS
Server System configuration : 8 GB RAM , 500 MB of free disk space, Win 2K3 server, IIS
6.0, MSAccess/Oracle 7.x,8.x,9/MS SQL
ServerClient System configuration : 2 GB RAM , 10 MB of free disk space, Win XP, IE 6.0
LAB SYLLABUS PROGRAMS (JNTU)
Testing Lab List of Experiments
1. Write programs in „C‟ Language to demonstrate the working of the following
a. constructs: i) do...while ii) while….do iii) if…else iv) switch v) for
2. ―A program written in „C‟ language for Matrix Multiplication fails‖ Introspect the
causes for its failure and write down the possible reasons for its failure.
3. Take any system (e.g. ATM system) and study its system specifications and report
the various bugs.
4. Write the test cases for any known application (e.g. Banking application)
5. Create a test plan document for any application (e.g. Library Management System)
6. Study of any testing tool (e.g. Win runner)
7. Study of any web testing tool (e.g. Selenium)
8. Study of any bug tracking tool (e.g. Bugzilla, bugbit)
9. Study of any test management tool (e.g. Test Director)
10. Study of any open source-testing tool (e.g. Test Link)
3. CASE TOOLS & SOFTWARE TESTING LAB MANUAL
N99A49G70E68S51H Page 3
1. Write a „c‟ program to demonstrate the working of the fallowing constructs:
i) do…while ii) while…do iii) if …else iv) switch v) for Loops in C language
//A. AIM: To demonstrate the working of do..while construct
Objective
To understand the working of do while with different range of values and test cases
#include <stdio.h>
void main (){
int i, n=5,j=0;
clrscr();
printf(―enter a no‖);
scanf(―%d‖,&i);
do{
if(i%2==0) {
printf("%d", i);
printf("is a even no.");
i++;
j++;
}
else {
printf("%d", i);
printf("is a odd no.n");
i++;
j++;
}
}while(i>0&&j<n);
getch();
}
Input Actual output
2 2 is even number
3 is odd number
4 is even number
5 is odd number
6 is even number
4. CASE TOOLS & SOFTWARE TESTING LAB MANUAL
N99A49G70E68S51H Page 4
Test cases:
Test case no: 1
Test case name: Positive values within range
Input =2 Expected output Actual output Remarks
2 is even number 2 is even number
3 is odd number 3 is odd number success
4 is even number 4 is even number
5 is odd number 5 is odd number
6 is even number 6 is even number
Test case no:2
Test case name: Negative values within a range
Input = -2 Expected output Actual output Remarks
-2 is even number -2 is an even number
-3 is odd number fail
-4 is even number
-5 is odd number
-6 is even number
Test case no: 3
Test case name: Out of range values testing
Input Expected output Actual output Remarks
1234567891222222222222 123456789122222222213 234567891222222215 fail
//B. Aim:To demonstrate the working of while construct
Objective
To understand the working of while with different range of values and test cases
#include<stdio.h>
#include <conio.h>
void main (){
int i, n=5,j=1;
clrscr();
printf(―enter a no‖);
scanf(―%d‖,&i);
while (i>0 && j<n){
if(i%2==0){
printf(―%d‖,i);
printf(―is a even number‖;
i++;
j++;
}
5. CASE TOOLS & SOFTWARE TESTING LAB MANUAL
N99A49G70E68S51H Page 5
else{
printf(―%d‖,i);
printf(―is a odd number‖);
i++;
j++;
}
}
getch();
}
Input Actual output
2 2 is even number
3 is odd number
4 is even number
5 is odd number
6 is even number
Test cases:
Test case no: 1
Test case name: Positive values within range
Input =2 Expected output Actual output Remarks
2 is even number 2 is even number
3 is odd number 3 is odd number success
4 is even number 4 is even number
5 is odd number 5 is odd number
6 is even number 6 is even number
Test case no:2
Test case name: Negative values within a range
Input = -2 Expected output Actual output Remarks
-2 is even number -2 is an even number
-3 is odd number fail
-4 is even number
-5 is odd number
-6 is even number
Test case no: 3
Test case name: Out of range values testing
Input Expected output Actual output Remarks
1234567891222222222222 123456789122222222213 234567891222222215 fail
6. CASE TOOLS & SOFTWARE TESTING LAB MANUAL
N99A49G70E68S51H Page 6
//C. Aim: To demonstrate the working of if else construct
Objective
To understand the working of if else with different range of values and test cases
#include<stdio.h>
#include <conio.h>
void main (){
int i;
clrscr();
printf(―enter a number ‖);
scanf(―%d‖,&i);
if(i%2==0){
printf(―%d‖,i);
printf(―is a even number‖);
}
else{
printf(―%d‖,i);
printf(―is a odd number‖);
}
getch();
}
Input Actual output
2 2 is even number
3 is odd number
4 is even number
5 is odd number
6 is even number
Test cases:
Test case no: 1
Test case name: Positive values within range
Input =2 Expected output Actual output Remarks
2 is even number 2 is even number
3 is odd number 3 is odd number success
4 is even number 4 is even number
5 is odd number 5 is odd number
6 is even number 6 is even number
7. CASE TOOLS & SOFTWARE TESTING LAB MANUAL
N99A49G70E68S51H Page 7
Test case no:2
Test case name: Negative values within a range
Input = -2 Expected output Actual output Remarks
-2 is even number -2 is an even number
-3 is odd number fail
-4 is even number
-5 is odd number
-6 is even number
Test case no: 3
Test case name: Out of range values testing
Input Expected output Actual output Remarks
1234567891222222222222 123456789122222222213 234567891222222215 fail
// D. To demonstrate the working of switch construct
Objective
To understand the working of switch with different range of values and test cases
void main() {
int a,b,c;
clrscr();
printf(―1.Add/n 2.Sub /n 3.Mul /n 4.Div /n Enter Your choice‖);
scanf(―%d‖ , &i);
printf(―Enter a,b values‖);
scanf(―%d%d‖,&a,&b);
switch(i){
case 1: c=a+b;
printf(― The sum of a & b is: %d‖ ,c);
break;
case 2: c=a-b;
printf(― The Diff of a & b is: %d‖ ,c);
break;
case 3: c=a*b;
printf(― The Mul of a & b is: %d‖ ,c);
break;
case 4: c=a/b;
printf(― The Div of a & b is: %d‖ ,c);
break;
default:
printf(― Enter your choice‖);
break;
}
getch();
}
8. CASE TOOLS & SOFTWARE TESTING LAB MANUAL
N99A49G70E68S51H Page 8
Output:
Input Output
Enter Ur choice: 1
Enter a, b Values: 3, 2 The sum of a & b is:5
Enter Ur choice: 2
Enter a, b Values: 3, 2 The diff of a & b is: 1
Enter Ur choice: 3
Enter a, b Values: 3, 2 The Mul of a & b is: 6
Enter Ur choice: 4
Enter a, b Values: 3, 2 The Div of a & b is: 1
Test cases:
Test case no: 1
Test case name: Positive values within range
Input Expected output Actual output Remarks
Enter Ur choice: 1
Enter a, b Values: 3, 2 The sum of a & b is:5 5
Enter Ur choice: 2
Enter a, b Values: 3, 2 The diff of a & b is: 1 1 Success
Enter Ur choice: 3
Enter a, b Values: 3, 2 The Mul of a & b is: 6 6
Enter Ur choice: 4
Enter a, b Values: 3, 2 The Div of a & b is: 1 1
Test case no:2
Test case name: Out of range values testing
Input Expected output Actual output Remarks
Option: 1
a= 22222222222222
b=22222222222222 44444444444444 -2 fail
9. CASE TOOLS & SOFTWARE TESTING LAB MANUAL
N99A49G70E68S51H Page 9
Test case no: 3
Test case name: Divide by zero
Input Expected output Actual output Remarks
Option: 4
a= 10 & b=0 error fail
// E. Aim: To demonstrate working of for construct
Objective
To understand the working of for with different range of values and test cases
#include <stdio.h>
#include <conio.h>
void main (){
int i;
clrscr();
printf(―enter a no‖);
scanf(―%d‖,&i);
for(i=1;i<=5;i++){
if(i%2==0){
printf(―%d‖, i);
printf(― is a even no‖);
i++;
}
else{
printf(―%d‖, i);
printf(― is a odd no‖);
i++;
}
}
getch();
}
Output:
Enter a no: 5
0 is a even no
1 is a odd no
2 is a even no
3 is a odd no
4 is a even no
5 is a odd no
10. CASE TOOLS & SOFTWARE TESTING LAB MANUAL
N99A49G70E68S51H Page
10
Test cases:
Test case no: 1
Test case name: Positive values within range
Input =2 Expected output Actual output Remarks
0 is even number 0 is even number
1 is odd number 1 is odd number success
2 is even number 2 is even number
Test case no:2
Test case name: Negative values within a range
Input = -2 Expected output Actual output Remarks
0 is even number 0 is an even number
-1 is odd number -1 is even no fail
-2 is even number -2 is odd no
Test case no: 3
Test case name: Out of range values testing
Input Expected output Actual output Remarks
1234567891222222222222 123456789122222222213 234567891222222215 fail
2. Aim: A program written in c language for matrix multiplication fails “Introspect the
causes for its failure and write down the possible reasons for its failure”.
Objective: Understand the failures of matrix multiplication
#include<stdio.h>
#include<conio.h>
void main()
{
int a[3][3],b[3][3],c[3][3],i,j,k,m,n,p,q;
clrscr();
printf(― Enter 1st
matrix no.of rows & cols‖)
scanf(―%d%d‖,&m,&n);
printf(― Enter 2nd
matrix no.of rows & cols‖)
scanf(―%d%d‖,&p,&q);
printf("n enter the matrix elements");
for(i=0;i<m;i++);
{
for(j=0;j<n;j++);
{
scanf("%d",&a[i][j]);
}
}
12. CASE TOOLS & SOFTWARE TESTING LAB MANUAL
N99A49G70E68S51H Page
12
getch();
}
Output:
Enter Matrix1: 1 1 1
1 1 1
1 1 1
Enter Matrix2: 1 1 1
1 1 1
1 1 1
Actual Output : 3 3 3
3 3 3
3 3 3
Test cases:
Test case no: 1
Test case name: Equal no.of rows & cols
Input Expected output Actual output Remarks
Matrix1 rows & cols= 3 3
Matrix2 rows & cols= 3 3
Matrix1: 1 1 1
1 1 1 3 3 3 3 3 3
1 1 1 3 3 3 3 3 3 Success
3 3 3 3 3 3
Matrix2: 1 1 1
1 1 1
1 1 1
Test case no:2
Test case name: Cols of 1st
matrix not equal to rows of 2nd
matrix
Input Expected output Actual output Remarks
Matrix1 rows & cols= 2 2 Operation Can‘t be fail
Performed
Matrix2 rows & cols= 3 2
Test case no: 3
Test case name: Out of range values testing
13. CASE TOOLS & SOFTWARE TESTING LAB MANUAL
N99A49G70E68S51H Page
13
Input Expected output Actual output Remarks
Matrix1 rows & cols= 2 2
Matrix2 rows & cols= 2 2
1234567891 2222222222 fail
2234567891 2222222221
234567891 22222221533
213242424 56456475457
3. Aim: Take any system (e.g. ATM system) and study its system specifications and report
the various bugs.
1. Machine is accepting ATM card.
2. Machine is rejecting expired card.
3. Successful entry of PIN number.
4. Unsuccessful operation due to enter wrong PIN number 3 times.
5. Successful selection of language.
6. Successful selection of account type.
7. Unsuccessful operation due to invalid account type.
8. Successful selection of amount to be withdrawn.
9. Successful withdrawal.
10. Expected message due to amount is greater than day limit.
11. Unsuccessful withdraw operation due to lack of money in ATM.
12. Expected message due to amount to withdraw is greater than possible balance.
13. Unsuccessful withdraw operation due to click cancel after insert card.
4. Write the test cases for any known application (e.g. Banking application)
1. Checking mandatory input parameters
2. Checking optional input parameters
3. Check whether able to create account entity.
4. Check whether you are able to deposit an amount in the newly created account (and thus up
dating the balance)
5.Check whether you are able to withdraw an amount in the newly created account (after depo
sit) (and thus updating the balance)
6.Check whether company name and its pan number and other details are provided in case of
salary account
7.Check whether primary account number is provided in case of secondary account
8.Check whether company details are provided in cases of company's current account
9.Check whether proofs for joint account is provided in case of joint account
10.Check whether you are able deposit an account in the name of either of the person in an joint
account.
11. Check whether you are able withdraw an account in the name of either of the person in an
joint account.
12. Check whether you are able to maintain zero balance in salary account
13.Check whether you are not able to maintain zero balance (or mini balance) in non-salary
account.
14. CASE TOOLS & SOFTWARE TESTING LAB MANUAL
N99A49G70E68S51H Page
14
5. Create a test plan document for any application (e.g. Library Management System)
The Library Management System is an online application for assisting a librarian imanaging
book library in a University. The system would provide basic set of features to add/update
clients, add/update books, search for books, and manage check-in / checkout processes. Our
test group tested the system based on the requirement specification.
This test report is the result for testing in the LMS. It mainly focuses on two problems
1. what we will test
2. how we will test.
1. GUI test
Pass criteria: librarians could use this GUI to interface with the backend library database
without any difficulties
2. Database test
Pass criteria: Results of all basic and advanced operations are normal (refer to section 4)
3. Basic function test
Add a student
Each customer/student should have following attributes: Student ID/SSN (unique), Name,
Address and Phone number.
The retrieved customer information by viewing customer detail should contain the four
attributes.
4. Update/delete student
The record would be selected using the student ID
Updates can be made on full. Items only: Name, Address, Phone number The record can be
deleted if there are no books issued by user. The updated values would be reflected if the same
customer's ID/SSN is called for.
5. Check-in book
Librarians can check in a book using its call number
The check-in can be initiated from a previous search operation where user has selected a set
of books.
15. CASE TOOLS & SOFTWARE TESTING LAB MANUAL
N99A49G70E68S51H Page
15
The return date would automatically reflect the current system date.
Any late fees would be computed as difference between due date and return date at rate of 10
cents a day.
Experiment 6
Aim: Study of Any Testing Tool( WinRunner)
WinRunner is a program that is responsible for the automated testing of software.
WinRunner is a Mercury Interactive‘s enterprise functional testing tool for Microsoft windows
applications.
Importance of Automated Testing:
1. Reduced testing time
2. Consistent test procedures – ensure process repeatability and resource independence.
Eliminates errors of manual testing
3. Reduces QA cost – Upfront cost of automated testing is easily recovered over the
lifetime of the product
4. Improved testing productivity – test suites can be run earlier and more often
5. Proof of adequate testing
6. For doing Tedious work – test team members can focus on quality areas.
WinRunner Uses:
1. With WinRunner sophisticated automated tests can be created and run on an application.
2. A series of wizards will be provided to the user, and these wizards can create tests in an
automated manner.
3. Another impressive aspect of WinRunner is the ability to record various interactions, and
transform them into scripts. WinRunner is designed for testing graphical user interfaces.
4. When the user make an interaction with the GUI, this interaction can be recorded.
Recording the interactions allows to determine various bugs that need to be fixed.
5. When the test is completed, WinRunner will provide with detailed information
regarding the results. It will show the errors that were found, and it will also give
important information about them. The good news about these tests is that they can be
reused many times.
6. WinRunner will test the computer program in a way that is very similar to normal user
interactions. This is important, because it ensures a high level of accuracy and realism.
Even if an engineer is not physically present, the Recover manager will troubleshoot any
problems that may occur, and this will allow the tests to be completed without errors.
7. The Recover Manager is a powerful tool that can assist users with various scenarios. This
is important, especially when important data needs to be recovered.
The goal of WinRunner is to make sure business processes are properly carried out. WinRunner
uses TSL, or Test Script Language.
WinRunner Testing Modes
16. CASE TOOLS & SOFTWARE TESTING LAB MANUAL
N99A49G70E68S51H Page
16
Context Sensitive
Context Sensitive mode records your actions on the application being tested in terms of
the GUI objects you select (such as windows, lists, and buttons), while ignoring the physical
location of the object on the screen. Every time you perform an operation on the application
being tested, a TSL statement describing the object selected and the action performed is
generated in the test script. As you record, WinRunner writes a unique description of each
selected object to a GUI map.
The GUI map consists of files maintained separately from your test scripts. If the user
interface of your application changes, you have to update only the GUI map, instead of hundreds
of tests. This allows you to easily reuse your Context Sensitive test scripts on future versions of
your application.
To run a test, you simply play back the test script. WinRunner emulates a user by
moving the mouse pointer over your application, selecting objects, and entering keyboard input.
WinRunner reads the object descriptions in the GUI map and then searches in the application
being tested for objects matching these descriptions. It can locate objects in a window even if
their placement has changed.
Analog
Analog mode records mouse clicks, keyboard input, and the exact x- and y-coordinates
traveled by the mouse. When the test is run, WinRunner retraces the mouse tracks. Use Analog
mode when exact mouse coordinates are important to your test, such as when testing a drawing
application.
The WinRunner Testing Process
Testing with WinRunner involves six main stages:
1. Create the GUI Map
The first stage is to create the GUI map so WinRunner can recognize the GUI objects in
the application being tested. Use the RapidTest Script wizard to review the user interface of your
application and systematically add descriptions of every GUI object to the GUI map.
Alternatively, you can add descriptions of individual objects to the GUI map by clicking objects
while recording a test.
2. Create Tests
Next is creation of test scripts by recording, programming, or a combination of both.
While recording tests, insert checkpoints where we want to check the response of the application
being tested. We can insert checkpoints that check GUI objects, bitmaps, and databases. During
this process, WinRunner captures data and saves it as expected results—the expected response
of the application being tested.
3. Debug Tests
17. CASE TOOLS & SOFTWARE TESTING LAB MANUAL
N99A49G70E68S51H Page
17
Run tests in Debug mode to make sure they run smoothly. One can set breakpoints,
monitor variables, and control how tests are run to identify and isolate defects. Test results are
saved in the debug folder, which can be discarded once debugging is finished. When
WinRunner runs a test, it checks each script line for basic syntax errors, like incorrect syntax or
missing elements in If, While, Switch, and For statements. We can use the Syntax Check
options (Tools >Syntax Check) to check for these types of syntax errors before running your
test.
4. Run Tests
Tests can be run in Verify mode to test the application. Each time WinRunner encounters
a checkpoint in the test script, it compares the current data of the application being tested to the
expected data captured earlier. If any mismatches are found, WinRunner captures them as actual
results.
5. View Results
Following each test run, WinRunner displays the results in a report. The report details all
the major events that occurred during the run, such as checkpoints, error messages, system
messages, or user messages. If mismatches are detected at checkpoints during the test run, we
can view the expected results nd the actual results from the Test Results window. In cases of
bitmap mismatches, one can also view a bitmap that displays only the difference between the
expected and actual results.
We can view results in the standard WinRunner report view or in the Unified report
view. The WinRunner report view displays the test results in a Windows-style viewer. The
Unified report view displays the results in an HTML-style viewer (identical to the style used for
QuickTest Professional test results).
6. Report Defects
If a test run fails due to a defect in the application being tested, one can report
information about the defect directly from the Test Results window.
This information is sent via e-mail to the quality assurance manager, who tracks the
defect until it is fixed.
Using Winrunner Window
Before you begin creating tests, you should familiarize yourself with the WinRunner
main window.
1.4.1. To start WinRunner:
Choose Programs > WinRunner > WinRunner on the Start menu.
The first time you start WinRunner, the Welcome to WinRunner window and the
―What‘s New in WinRunner‖ help open. From the Welcome window you can create a new test,
open an existing test, or view an overview of WinRunner in your default browser.
18. CASE TOOLS & SOFTWARE TESTING LAB MANUAL
N99A49G70E68S51H Page
18
If you do not want this window to appear the next time you start WinRunner, clear the
Show on Startup check box. To show the Welcome to WinRunner window upon startup from
within WinRunner, choose Settings > General Options, click the Environment tab, and select
the Show Welcome screen check box.
1.4.2. The Main WinRunner Window
The main WinRunner window contains the following key elements:
WinRunner title bar
Menu bar, with drop-down menus of WinRunner commands
Standard toolbar, with buttons of commands commonly used when running a test
User toolbar, with commands commonly used while creating a test
Status bar, with information on the current command, the line number of the insertion
point and the name of the current results folder
The Standard toolbar provides easy access to frequently performed tasks, such as opening,
executing, and saving tests, and viewing test results.
Standard Toolbar
The User toolbar displays the tools you frequently use to create test scripts. By default,
the User toolbar is hidden. To display the User toolbar, choose Window > User Toolbar. When
you create tests, you can minimize the WinRunner window and work exclusively from the
toolbar. The User toolbar is customizable. You choose to add or remove buttons using the
Settings > Customize User Toolbar menu option. When you re-open WinRunner, the User
toolbar appears as it was when you last closed it. The commands on the Standard toolbar and the
User toolbar are described in detail in subsequent lessons.
Note that you can also execute many commands using softkeys. Softkeys are keyboard
shortcuts for carrying out menu commands. You can configure the softkey combinations for
your keyboard using the Softkey Configuration utility in your WinRunner program group. For
more information, see the ―WinRunner at a Glance‖ chapter in your WinRunner User’s Guide.
Now that you are familiar with the main WinRunner window, take a few minutes to
explore these window components before proceeding to the next lesson.
The Test Window
You create and run WinRunner tests in the test window. It contains the following key elements:
Test window title bar, with the name of the open test
Test script, with statements generated by recording and/or programming in TSL,
Mercury Interactive‘s Test Script Language
Execution arrow, which indicates the line of the test script being executed during a test
run, or the line that will next run if you select the Run from arrow option
Insertion point, which indicates where you can insert or edit text
Experiment 7:
Study of any web testing tool (e.g. Selenium)
19. CASE TOOLS & SOFTWARE TESTING LAB MANUAL
N99A49G70E68S51H Page
19
Selenium is a robust set of tools that supports rapid development of test automation for
web-based applications. Selenium provides a rich set of testing functions specifically
geared to the needs of testing of a web application. These operations are highly flexible,
allowing many options for locating UI elements and comparing expected test results
against actual application behavior.
One of Selenium‘s key features is the support for executing one‘s tests on multiple
browser platforms.
Selenium Components
Selenium is composed of three major tools. Each one has a specific role in aiding the
development of web application test automation.
Selenium-RC provides an API (Application Programming Interface) and library for each
of its supported languages: HTML, Java, C#, Perl, PHP, Python, and Ruby. This ability
to use Selenium-RC with a high-level programming language to develop test cases also
allows the automated testing to be integrated with a project‘s automated build
environment.
Selenium-Grid
Selenium-Grid allows the Selenium-RC solution to scale for large test suites or test suites
that must be run in multiple environments. With Selenium-Grid, multiple instances of
Selenium-RC are running on various operating system and browser configurations; Each
of these when launching register with a hub. When tests are sent to the hub they are then
redirected to an available Selenium-RC, which will launch the browser and run the test.
This allows for running tests in parallel, with the entire test suite theoretically taking only
as long to run as the longest individual test.
* Tests developed on Firefox via Selenium-IDE can be executed on any other supported
browser via a simple Selenium-RC command line.
** Selenium-RC server can start any executable, but depending on browser security
settings there may be technical limitations that would limit certain features.
Flexibility and Extensibility
Selenium is highly flexible. There are multiple ways in which one can add functionality
to Selenium‘s framework to customize test automation for one‘s specific testing needs.
This is, perhaps, Selenium‘s strongest characteristic when compared with proprietary test
automation tools and other open source solutions. Selenium-RC support for multiple
programming and scripting languages allows the test writer to build any logic they need
into their automated testing and to use a preferred programming or scripting language of
one‘s choice.
Selenium-IDE allows for the addition of user-defined ―user-extensions‖ for creating
additional commands customized to the user‘s needs. Also, it is possible to re-configure
how the Selenium-IDE generates its Selenium-RC code. This allows users to customize
the generated code to fit in with their own test frameworks. Finally, Selenium is an Open
Source project where code can be modified and enhancements can be submitted for
contribution.
.Test Suites
A test suite is a collection of tests. Often one will run all the tests in a test suite as one
continuous batch-job.
When using Selenium-IDE, test suites also can be defined using a simple HTML file.
The syntax again is simple. An HTML table defines a list of tests where each row defines
the filesystem path to each test. An example tells it all.
20. CASE TOOLS & SOFTWARE TESTING LAB MANUAL
N99A49G70E68S51H Page
20
<html>
<head>
<title>Test Suite Function Tests – Priority 1</title> </head>
<body>
<table>
<tr><td><b>Suite Of Tests</b></td></tr>
<tr><td><a href=‖./Login.html‖>Login</a></td></tr>
<tr><td><a href=‖./SearchValues.html‖>Test Searching for Values</a></td></tr>
<tr><td><a href=‖./SaveValues.html‖>Test Save</a></td></tr>
</table> </body>
</html>
A file similar to this would allow running the tests all at once, one after another, from the
Selenium-IDE.
Test suites can also be maintained when using Selenium-RC. This is done via
programming and can be done a number of ways. Commonly Junit is used to maintain a
test suite if one is using Selenium-RC with Java. Additionally, if C# is the chosen
language, Nunit could be employed. If using an interpreted language like Python with
Selenium-RC than some simple programming would be involved in setting up a test
suite. Since the whole reason for using Sel-RC is to make use of programming logic for
your testing this usually isn‘t a problem.
Few typical Selenium commands.
open – opens a page using a URL.
click/clickAndWait – performs a click operation, and optionally waits for a new page to
load.
verifyTitle/assertTitle – verifies an expected page title.
verifyTextPresent – verifies expected text is somewhere on the page.
verifyElementPresent – verifies an expected UI element, as defined by its HTML tag, is
present on the page.
verifyText – verifies expected text and it‘s corresponding HTML tag are present on the
page.
verifyTable – verifies a table‘s expected contents.
waitForPageToLoad – pauses execution until an expected new page loads. Called
automatically when clickAndWait is used.
waitForElementPresent – pauses execution until an expected UI element, as defined by
its HTML tag, is present on the page.
Experiment 8
Aim: Study of Any Bug Tracking Tool (Bugzilla)
Bugzilla is a ―Bug Tracking System‖ that can efficiently keep track of outstanding bugs
in a product. Multiple users can access this database and query, add and manage these bugs.
Bugzilla essentially comes to the rescue of a group of people working together on a product as it
enables them to view current bugs and make contributions to resolve issues. Its basic repository
nature works out better than the mailing list concept and an organized database is always easier
to work with.
21. CASE TOOLS & SOFTWARE TESTING LAB MANUAL
N99A49G70E68S51H Page
21
Advantage of Using Bugzilla:
1. Bugzilla is very adaptable to various situations. Known uses currently include IT support
queues, Systems Administration deployment management, chip design and development
problem tracking (both pre-and-post fabrication), and software and hardware bug tracking for
luminaries such as Redhat, NASA, Linux-Mandrake, and VA Systems. Combined with systems
such as CVS, Bugzilla provides a powerful, easy-to-use solution to configuration management
and replication problems.
2. Bugzilla can dramatically increase the productivity and accountability of individual
employees by providing a documented workflow and positive feedback for good performance.
Ultimately, Bugzilla puts the power in user‘s hands to improve value to business while
providing a usable framework for natural attention to detail and knowledge store to flourish.
The bugzilla utility basically allows to do the following:
Add a bug into the database
Review existing bug reports
Manage the content
Bugzilla is organised in the form of bug reports that give all the information needed about a
particular bug. A bug report would consist of the following fields.
Product–>Component
Assigned to
Status (New, Assigned, Fixed etc)
Summary
Bug priority
Bug severity (blocker, trivial etc)
Bug reporter
Using Bugzilla:
Bugzilla usage involves the following activities
Setting Parameters and Default Preferences
Creating a New User
Impersonating a User
Adding Products
Adding Product Components
Modifying Default Field Values
Creating a New Bug
Viewing Bug Reports
Setting Parameters and Default Preferences:
When we start using Bugzilla, we‘ll need to set a small number of parameters and
preferences. At a minimum, we should change the following items, to suit our particular need:
22. CASE TOOLS & SOFTWARE TESTING LAB MANUAL
N99A49G70E68S51H Page
22
▪ Set the maintainer
▪ Set the mail_delivery_method
▪ Set bug change policies
▪ Set the display order of bug reports
To set parameters and default preferences:
1. Click Parameters at the bottom of the page.
2. Under Required Settings, add an email address in the maintainer field.
3. Click Save Changes.
4. In the left side Index list, click Email.
5. Select from the list of mail transports to match the transport we‘re using. If evaluating a
click2try application, select Test. If using SMTP, set any of the other SMTP options for
your environment. Click Save Changes.
6. In the left side Index list, click Bug Change Policies.
7. Select On for commentoncreate, which will force anyone who enters a new bug to enter
a comment, to describe the bug. Click Save Changes.
8. Click Default Preferences at the bottom of the page.
9. Select the display order from the drop-down list next to the When viewing a bug, show
comments in this order field. Click Submit Changes.
Creating a New User
Before entering bugs, make sure we add some new users. We can enter users very easily, with a
minimum of information. Bugzilla uses the email address as the user ID, because users are
frequently notified when a bug is entered, either because they entered the bug, because the bug
is assigned to them, or because they‘ve chosen to track bugs in a certain project.
To create a new user:
1. Click Users.
2. Click add a new user.
3. Enter the Login name, in the form of an email address.
4. Enter the Real name, a password, and then click Add.
5. Select the Group access options. we‘ll probably want to enable the following options in
the row titled User is a member of these groups:
canconfirm
editbugs
editcomponents
6. Click Update when done with setting options.
Impersonating a User
23. CASE TOOLS & SOFTWARE TESTING LAB MANUAL
N99A49G70E68S51H Page
23
Impersonating a user is possible, though rare, that we may need to file or manage a bug in an
area that is the responsibility of another user when that user is not available. Perhaps the user is
on vacation, or is temporarily assigned to another project. We can impersonate the user to create
or manage bugs that belong to that user.
Adding Products
We‘ll add a product in Bugzilla for every product we are developing. To start with,
when we first login to Bugzilla, we‘ll find a test product called TestProduct. We should delete
this and create a new product.
To add a product:
1. At the bottom of the page, click Products.
2. In the TestProduct listing, click Delete.
3. Click Yes, Delete.
4. Now click Add a product.
5. Enter a product name, such as ―Widget Design Kit.‖
6. Enter a description.
7. Click Add. A message appears that you‘ll need to add at least one component.
Adding Product Components
Products are comprised of components. Software products, in particular, are typically
made up of many functional components, which in turn are made up of program elements, like
classes and functions. It‘s not unusual in a software development team environment for different
individuals to be responsible for the bugs that are reported against a given component. Even if
there are other programmers working on that component, it‘s not uncommon for one person,
either a project lead or manager, to be the gatekeeper for bugs. Often, they will review the bugs
as they are reported, in order to redirect them to the appropriate developer or even another team,
to review the priority and severity supplied by the reporter, and sometimes to reject bugs as
duplicates or enhancement requests, for example.
To add a component:
1. Click the link add at least one component in the message that appears after creating a
new product.
2. Enter the Component name.
3. Enter a Description.
4. Enter a default assignee. Use one of the users we‘ve created. Remember to enter the
assignee in the form of an email address.
5. Click Add.
6. To add more components, click the name of product in the message that reads edit other
components of product <product name>.
Modifying Default Field Values
24. CASE TOOLS & SOFTWARE TESTING LAB MANUAL
N99A49G70E68S51H Page
24
Once we begin to enter new bugs, we‘ll see a number of drop-down lists containing
default values. Some of these may work just fine for our product. Others may not. We can
modify the values of these fields, adding new values and deleting old ones. Let‘s take a look at
the OS category.
To modify default field values:
1. At the bottom of the page, in the Edit section, click Field Values.
2. Click the link, in this case OS, for the field we want to edit. The OS field contains a list
of operating system names. We are going to add browsers to this list. In reality, we might
create a custom field instead, but for the sake of this example, just add them to the OS
list.
3. Click Add a value. In the Value field, enter ―IE7.‖ Click Add.
4. Click Add a value again.
5. In the Value field, enter ―Firefox 3.‖
6. Click Add.
7. Where it reads Add other values for the op_sys field, click op_sys.
8. This redisplays the table. We should now see the two new entries at the top of the table.
These values will also appear in the OS drop-down list when we create a new bug.
Creating a New Bug
Creating bugs is a big part of what Bugzilla does best.
To create a new bug:
1. In the top menu, click New.
2. If we‘ve defined more than one component, choose the component from the component
list.
3. Select a Severity and a Priority. Severity is self-explanatory, but Priority is generally
assumed to be the lower the number, the higher the priority. So, a P1 is the highest
priority bug, a showstopper.
4. Click the OS drop-down list to see the options, including the new browser names we
entered.
5. Select one of the options.
6. Enter a summary and a description. We can add any other information of choice, but it is
not required by the system, although we may determine that our bug reporting policy
requires certain information.
7. Click Commit. Bugzilla adds our bug report to the database and displays the detail page
for that bug.
Viewing Bug Reports
Eventually, we‘ll end up with thousands of bugs listed in the system. There are several
ways to view the bugs. The easiest is to click the My Bugs link at the bottom of the page.
Because we‘ve only got one bug reported, we‘ll use the standard Search function.
To find a bug:
25. CASE TOOLS & SOFTWARE TESTING LAB MANUAL
N99A49G70E68S51H Page
25
1. Click Reports.
2. Click the Search link on the page, not the one in the top menu. This opens a page titled
―Find a Specific Bug.‖
3. Select the Status.
4. Select the Product.
5. Enter a word that might be in the title of the bug.
6. Click Search. If any bugs meet the criteria that we have entered, Bugzilla displays them
in a list summary.
7. Click the ID number link to view the full bug report.
Modifying Bug Reports
Suppose we want to change the status of the bug. We‘ve reviewed it and have
determined that it belongs to one of the users we have created earlier
To modify a bug report:
1. Scroll down the full bug description and enter a comment in the Additional Comments
field.
2. Select ―Reassign bug to‖ and replace the default user ID with one of the other user IDs
you created. It must be in the format of an email address
Experiment 9
Aim: Study of Any Test Management Tool ( TestDirector)
Test Director is a global test management solution which provides communication,
organization, documentation and structure to the testing project.
Test Director is used for
Mapping Requirements to User acceptance test cases
Test Planning by placing all the test cases and scripts in it.
Manual testing by defining test steps and procedures
Test Execution status
Defect Management
The TestDirector Testing Process
TestDirector offers an organized framework for testing applications before they are
deployed. Since test plans evolve with new or modified application requirements, you need a
central data repository for organizing and managing the testing process. TestDirector guides
through the requirements specification, test planning, test execution, and defect tracking phases
of the testing process.The TestDirector testing process includes four phases:
Specifying Requirements
Requirements are linked to tests and defects to provide complete traceability and aid the
decision-making process
26. CASE TOOLS & SOFTWARE TESTING LAB MANUAL
N99A49G70E68S51H Page
26
See what percent of requirements are covered by tests
Each requirement in the tree is described in detail, and can include any relevant
attachments. The QA tester assigns the requirement a priority level which is taken into
consideration when the test team creates the test plan
Import from Microsoft Word or third party RM tool
Planning Tests
The Test Plan Manager enables to divide application according to functionality.
Application can be divided into units, or subjects, by creating a test plan tree.
Define subjects according to:
o Application functionality-such as editing, file operations, and reporting
o Type of testing-such as functional, user interface, performance, and load
As the tests are also linked to defects, this helps ensure compliance with testing
requirements throughout the testing process
Running Tests
As the application constantly changes, using test lab, run manual and automated tests in
the project in order to locate defects and assess quality.
By creating test sets and choosing which tests to include in each set, test suite can be
created. A test set is a group of tests in a TestDirector project database designed to
achieve specific testing goals.
Tests can be run manually or scheduled to run automatically based on application
dependencies.
Tracking Defects
Locating and repairing application defects efficiently is essential to the testing process.
Defects can be detected and added during all stages of the testing process. In this phase you
perform the following tasks:
This tool features a sophisticated mechanism for tracking software defects, enabling
Testing Team and the project Team to monitor defects closely from initial detection until
resolution
By linking TestDirector to e-mail system, defect tracking information can be shared by
all Development and Management Teams, Testing and Wipro Software Quality
Assurance personnel
System Requirements for TestDirector
27. CASE TOOLS & SOFTWARE TESTING LAB MANUAL
N99A49G70E68S51H Page
27
Server System configuration : 128 MB of RAM , 500 MB of free disk space, Win NT
server, Win 2K server, IIS 5.0, MSAccess/Oracle 7.x,8.x,9/MS SQL Server Client System
configuration : 64 MB of RAM , 10 MB of free disk space, Win 95/98/NT/2K/XP, IE 5 ,
Netscape 4.7
Experiment 10
Aim: Study of any open source testing tool (TestLink)
Testlink is an open source test management tool. It enables creation and organization of
test cases and helps manage into test plan. Allows execution of test cases from test link itself.
One can easily track test results dynamically, generate reports, generate test metrics,prioritize
test cases and assign unfinished tasks. Its a web based tool with GUI, which provides an ease to
develop test cases, organize test cases into test plans, execute these test cases and generate
reports. Test link exposes API, written in PHP, can help generate quality assurance dashboards.
The functions like AddTestCase ToTestPlan, Assign Requirements,Create TestCase etc. helps
create and organize test cases per test plan. Functions like GetTestCasesForTestPlan,
GetLastExecutionResult allows one to create quality assurance dashboard.
TestLink enables easily to create and manage Test cases as well as organize them into
Test plans. These Test plans allow team members to execute Test cases and track test results
dynamically, generate reports, trace software requirements, prioritize and assign tasks. Read
more about implemented features and try demo pages.
Overall structure
There are three cornerstones: Product, Test Plan and User. All other data are relations
or attributes for this base. First, definition of a couple of terms that are used throughout the
documentation.
Products and Test Plans
Product: A Product is something that will exist forever in TestLink. Products will
undergo many different versions throughout their life times. Product includes Test Specification
with Test Cases and should be sorted via Keywords.
28. CASE TOOLS & SOFTWARE TESTING LAB MANUAL
N99A49G70E68S51H Page
28
Test Plan: Test Plans are created when you‘d like to execute test cases. Test plans can be made
up of the test cases of one or many Products. Test Plan includes Builds, Test Case Suite and Test
Results.
User: An User has a Role, that defines available TestLink features.
Test Case Categorization
TestLink breaks down the test case structure into three levels Components, Categories,
and test cases. These levels are persisted throughout the application.
Component: Components are the parents of Categories. Each Component can have many
Categories.
Category: Categories are the parents of test cases. Each Category can have many test cases.
Test Case: Test cases are the fundamental piece of TestLink.
Test Specification: All Components, Categories and test cases within Product.
Test Case Suite: All Components, Categories and test cases within Test Plan.
Test Specification
Creating Test Cases
Tester must follow this structure: Component, Category and test case. At first you create
Component(s) for your Product. Component includes Categories. Category has the similar
meaning but is second level of Test Specification and includes just Test Cases.
User can also copy or move Test Cases.
Test Cases has following parts:
• Title: could include either short description or abbreviation (e.g. TL-USER-LOGIN)
• Summary: should be really short; just for overview.
• Steps: describe test scenario (input actions); can also include precondition and cleanup
information here.
• Expected results: describe checkpoints and expected behaviour a tested Product or
system.
Deleting Test Cases
29. CASE TOOLS & SOFTWARE TESTING LAB MANUAL
N99A49G70E68S51H Page
29
Test cases, Categories, and Components may be deleted from a test plan by users with
lead permissions from the ―delete test cases‖ screen. Deleting data may be useful when first
creating a test plan since there are no results. However, Deleting test cases will cause the loss of
all results associated with them. Therefore, extreme caution is recommended when using this
functionality.
Requirements relation
Test cases could be related with software/system requirements as n to n. The
functionality must be enabled for a Product. User can assign Test Cases and Requirements via
link Assign Requirements in the main screen.
Test Plans
Test plan contains name, description, collection a chosen test cases, builds, test results,
milestones, tester assignment and priority definition.
Creating a new Test Plan
Test Plans may be deleted from the ―Create test plan‖ page (link ―Create Test Plan‖) by
users with lead privileges. Test plans are the basis for test case execution. Test plans are made
up of test cases imported from Products at a specific point of time. Test plans can only be
created by users with lead privileges. Test plans may be created from other test plans. This
allows users to create test plans from test cases that at a desired point in time. This may be
necessary when creating a test plan for a patch. In order for a user to see a test plan they must
have the propper rights. Rights may be assigned (by leads) in the define User/Project Rights
section. This is an important thing to remember when users tell you they can‘t see the project
they are working on.
Test Execution
Test execution is available when:
1. A Test Specification is written.
2. A Test Plan is created.
3. Test Case Suite (for the Test Plan) is defined.
4. A Build is created.
5. The Test plan is assigned to testers (otherwise they cannot navigate to this Test Plan).
Select a required Test Plan in main page and navigate to the ‗Execute tests‘ link. Left pane
30. CASE TOOLS & SOFTWARE TESTING LAB MANUAL
N99A49G70E68S51H Page
30
serves for navigation in Test Case Suite via tree menu, filtering and define a tested build.
Test Status
Execution is the process of assigning a result (pass, fail, blocked) to a test case for a
specific build. ‗Blocked‘ test case is not possible to test for some reason (e.g. a problem in
configuration disallows to run a tested functionality).
Insert Test results
Test Results screen is shown via click on an appropriate Component, Category or test
case in navigation pane. The title shows the current build and owner. The colored bar indicate
status of the test case. Yellow box includes test scenario of the test case.
Updated Test Cases: If users have the proper rights they can go to the ―Update modified test
case‖ page through the link on main page. It is not necessary for users to update test cases if
there has been a change (newer version or deleted).
Advantages:
1. Easy in tracking test cases(search with keyword, test case id, version etc)
2. We can add our custom fields to test cases.
3. Allocating the work either test case creation/execution any kind of documents is easy
4. when a test cases is updated the previous version also can be tracked
5. We can generate results build wise
6. Test plans are created for builds and work allocations can be done.
7. Report, is one of the awesome functionality present in the Test link, it generates reports in
desired format like HTML/ CSV /Excel and we can create graphs too.
8. And the above all is done on the privileges based which is an art of the testlink and i liked this
feature much
Example of TestLink workflow:
1. Administrator create a Product ―Fast Food‖ and a user Adam with rights ―leader‖ and Bela
with rights ―Senior tester‖.
2. Adam imports Software Requirements and for part of these requirements generates empty
Test cases.
3. Bela describe test sneario of these Test cases that are organized according to Components and
Categories.
4. Adam creates Keyword: ―Regression‖ and assignes this keyword to ten of these test cases.
5. Adam creates a Test Plan ―Fish & Chips‖, Build ―Fish 0.1‖ and add Test Cases with
keywords ―Regression‖.
6. Adam and Bela execute and record the testing with result: 5 passed, 1 failed and 4 are
blocked.
31. CASE TOOLS & SOFTWARE TESTING LAB MANUAL
N99A49G70E68S51H Page
31
7. Developers make a new build ―Fish 0.2‖ and Bela tests the failed and blocked test cases only.
Exceptionaly all these five Test cases passed.
8. Manager would like to see results. Administrator explains him that he can create account
himself on the login page. Manager does it. He has ―Guest‖ rights and could see results and Test
cases. He can see that everything passed in overall report and problems in build ―Fish 0.1‖ in a
report for particular Build. But he can change nothing.
INTRODUCTION ABOUT LAB
Testing is a process used to help identify the correctness, completeness and quality of
developed computer software. With that in mind, testing can never completely establish the
correctness of computer software. here are many approaches to software testing, but effective
testing of complex products is essentially a process of investigation, not merely a matter of
creating and following rote procedure. One definition of testing is "the process of questioning a
product in order to evaluate it", where the "questions" are things the tester tries to do with the
product, and the product answers with its behavior in reaction to the probing of the tester.
Although most of the intellectual processes of testing are nearly identical to that of review or
inspection, the word testing is connoted to mean the dynamic analysis of the product—putting
the product through its paces.
Testing helps is verifying and Validating if the Software is working as it is intended to be
working. This involves using Static and Dynamic methodologies to Test the application
REFERENCES
1. Testing Computer Software, 2nd Edition by Cem Kaner, Jack Falk and Hung
2. Effective Software Testing Methodology by Willian E.Perry
3. Software Testing Foundations: A Study Guide for the Certified Tester Exam (Rockynook
Computing) by Andreas Spillner, Tilo Linz and Hans Schaefe.
4. Software Testing: A Craftsman's Approach, Third Edition by Paul Jorgensen