尊敬的 微信汇率:1円 ≈ 0.046166 元 支付宝汇率:1円 ≈ 0.046257元 [退出登录]
SlideShare a Scribd company logo
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
1
Practical No. 01
Title: Cyclomatic complexity
Aim: Explain how to determine and calculate cyclomatic complexity for a particular code.
Theory:
Program : Code for GCD computation by Euclid's method
while (x != y) {
if (x > y)
x = x - y;
else
y = y - x;
}
return x;
Determining McCabe's Cyclomatic Complexity
Method #1
N = No. of nodes = 7
E = No. of edges = 8
V(G) = E - N + 2 = 8 - 7 + 2 = 3
Method #2
V(G) = Total no. of non overlapping areas + 1 = 2 + 1 = 3
Method #3 V(G) = Total no. of decision statements and loops + 1 = 1 + 1 + 1 = 3.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
2
Output :
Conclusion: In this way we have studied the code to find cyclomatic complexity successfully.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
3
Practical No. 02
Title: SRS document in detail with Component of SRS Document
Aim: Explain with example SRS document create for Banking System application based on User
Login, Transactions, Fund transfer in an account.
Tool Used:
Theory:
Definitions
This document gives detailed functional and nonfunctional requirements for the bank
management system. This product will support online banking transaction. The purpose of this
document is that the requirements mentioned in it should be utilized by software developer to
implement the system.
1. Purpose
Online banking system is specifically developed for internet banking for Balance Enquiry, Funds
Transfer to another account in the same bank, Request for cheque book/change of address/stop
payment of cheques, Mini statements (Viewing Monthly and annual statements).The Traditional
way of maintaining details of a user in a bank was to enter the details and record them. Every
time the user needs to perform some transactions he has to go to bank and perform the necessary
actions, which may not be so feasible all the time. It may be a hard-hitting task for the users and
the bankers too. The project gives real life understanding of Internet banking and activities
performed by various roles in the supply chain. In this document, automation for banking system
is provided through Internet. Internet banking system project captures activities performed by
different roles in real life banking which provides enhanced techniques for maintaining the
required information up-to-date, which results in efficiency. The project gives real life
understanding of Internet banking and activities performed by various roles in the supply chain.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
4
2. Scope
The bank system will automate of banking transaction process. This Project investigates the
entry threshold for providing a new transaction service channel via the real options
approach, where the entry threshold is established by using an Internet banking system
designed for the use of normal users(individuals), Industrialists, Entrepreneurs, Educational,
Institutions (Financial sections), Organizations and Academicians under transaction rate
uncertainty.
3. System Overview
The system provides easy solution to banks.
Overview: The SRS will include two sections, namely:
Overall Description: This section will describe major components of the system,
interconnections, and external interfaces.
Specific Requirements: This section will describe the functions of actors, their roles in the
system and the constraints faced by sys- tem.
4.General description
Product Perspective:
The client will have client interface in which he can interact with the banking sys- tem. It is a
web based interface which will be the web page of the banking application. Starting a page is
displayed asking the type of customer he is whether ordinary or a corporate customer. Then
the page is redirected to login page where the user can enter the login details. If the login
particulars are valid then the user is taken to a home page where he has the entire transaction list
that he can perform with the bank. All the above activities come under the client interface.
The administrator will have an administrative interface which is a GUI so that he can view
the entire system. He will also have a login page where he can enter the login particulars so
that he can perform all his actions. This administrative interface provides different
environment such that he can maintain data- base & provide backups for the information in the
database. He can register the users by providing them with username, password & by
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
5
creating account in the database. User can view the cheque book request & perform action to
issue the cheque books to the clients.
Software Interface:
Front End Client:
The system is a web based application clients are requiring using modern web browser such
as Mozilla Firefox 1.5, PHP.
* Web Server:
The web application will be hosted on one of the apache server.
* Back End:
backend as MY SQL.
6. Use Cases
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
6
7. Functional requirements
This section provides the functional overview of the product. The project will require the PHP as
a front end and at the back end the database MYSQL will be running. Various functional
modules that can be implemented by the product will be
1. Login
2. Validation
3. Get balance information
4. Withdrawal of money
5. Transfer Money
6. Customer info.
1. Login:
Customer logins by entering customer name & a login pin.
2. Validation:
When a customer enters the ATM card, its validity must be ensured. Then customer is allowed to
enter the valid PIN.
The validation can be for following conditions
------------------ATM PIN
Validation for lost or stolen card
When card is already reported as lost or stolen
then the message “Lost/Stolen card!!!”.
Validation for card’s expiry date
If the card inserted by the customer has crossed the expiry date then the system will prompt
“Expired Card”.
Validation for PIN
After validating the card, the validity of PIN must be ensured. If he/she fails to enter valid code
for three times then the card will not be returned to him. That means the account can be locked.
The counter for number of logins must be maintained
Get balance information:
This system must be networked to the bank’s computer. The updated
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
7
database of every customer is maintained with bank. Hence the balance information of every
account is available in the database and can be displayed to the customer.
3. Payment of Money:
A customer is allowed to enter the amount which he/she wishes to withdraw. If the entered
amount is less than the available balance and if after withdraw if the minimum required balance
is maintained then allow the transaction.
4. Transfer of Money:
The customer can deposit or transfer the desired amount of money.
5. Transaction Report:
The bank statement showing credit and debit information of corresponding account must be
printed by the machine.
8. Non-functional requirements
Non-functional requirements are requirements that are not directly concerned with the specific
functions delivered by the system. They may relate to emergent system properties such as
reliability, response time and store occupancy. They may specify system performance, security,
availability, and other emergent properties.
Safety Requirements
a. Backup, recovery & business continuity Banks should ensure adequate back up of data as may
be required by their operations. Banks should also have, well documented and tested business
continuity plans that address all aspects of the bank’s business
b. Both data and software should be backed up periodically.
c. An off-site back up is necessary for recovery from major failures / disasters to ensure business
continuity.
Conclusion: Thus, we have performed example of SRS document to create for banking system
application (requirement based on user login, transaction, and fund transfer in an account.)
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
8
Practical No. 03
Title: Bank transactions using Star UML.
Aim: Create a State Diagram, Use-case diagram, Activity diagram for bank transactions using
Star UML.
Tool Used: Star UML 5.0
Theory:
State diagram: A state diagram is a diagram used in computer science to describe the behavior
of a system considering all the possible states of an object when an event occurs. This behavior is
represented and analyzed in a series of events that occur in one or more possible states. Each
diagram represents objects and tracks the various states of these objects throughout the system.
There exist different types of state diagrams that have different semantics and are slightly
different. State diagrams graphically represent finite state machines. They are only used to
understand object behavior throughout the whole system. The elements that constitute a state
diagram are rounded boxes representing the states and arrows showing transitions to the next
state. The activity section depicts the activities the object performs while it is in that state. Every
state diagram starts with an initial state, which is the state where the object is created. Right after
the initial state, objects change their states, and the next state is determined by conditions based
on activities. In some cases, state diagrams represent a super state, which is a condition created
when many transitions lead to a particular state. The super state depicts that all states inside this
diagram transition to a redundant state, making the diagram more complex. A transition in a state
diagram is a progression from one state to another and is triggered by an event that is internal or
external to the entity modeled. An action is an operation that is invoked by an entity that is
modeled. A very traditional form of state diagram for a finite machine is a directed graph.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
9
Activity diagram
Activity diagram is another important diagram in UML to describe the dynamic aspects of the
system. Activity diagram is basically a flowchart to represent the flow from one activity to
another activity. The activity can be described as an operation of the system. The control flow is
drawn from one operation to another. This flow can be sequential, branched, or concurrent.
Activity diagrams deal with all type of flow control by using different elements such as fork,
join, etc.
The purpose of an activity diagram can be described as −
 Draw the activity flow of a system.
 Describe the sequence from one activity to another.
 Describe the parallel, branched and concurrent flow of the system.
Use case diagram
A use case diagram at its simplest is a representation of a user's interaction with the system
that shows the relationship between the user and the different use cases in which the user is
involved. A use case diagram can identify the different types of users of a system and the
different use cases and will often be accompanied by other types of diagrams as well. While
a use case itself might drill into a lot of detail about every possibility, a use-case diagram can
help provide a higher-level view of the system. It has been said before that "Use case
diagrams are the blueprints for your system". They provide the simplified and graphical
representation of what the system must actually do. Due to their simplistic nature, use case
diagrams can be a good communication tool for stakeholders. The drawings attempt to mimic
the real world and provide a view for the stakeholder to understand how the system is going
to be designed. Siau and Lee conducted research to determine if there was a valid situation
for use case diagrams at all or if they were unnecessary. What was found was that the use
case diagrams conveyed the intent of the system in a more simplified manner
to stakeholders and that they were interpreted more completely than class diagrams. The
purpose of the use case diagrams is simply to provide the high level view of the system and
convey the requirements in layman's terms for the stakeholders. Additional diagrams and
documentation can be used to provide a complete functional and technical view of the
system.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
10
OUTPUT:
Fig: State diagram of bank transaction
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
11
Fig: Activity diagram of bank transaction
Fig: Use case diagram of bank transaction
Conclusion: Thus, We have performed State Diagram, Use-case diagram, Activity diagram for
bank transactions using Star UML.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
12
Practical No. 04
Title: Basic path testing for ATM transaction module and its complexity.
Aim: Create Basic path testing for ATM transaction module and find its complexity.
Tool Used:
Theory:
Basis path testing:
In the 1970’s, Thomas McCabe came up with the idea of using a vector space to carry out path
testing. A vector space is a set of elements along with certain operations that can be performed
upon these elements. Basis path testing is a white-box technique. Path testing is an approach to
testing where you ensure that every path through a program has been executed at least once. Aim
is to derive a logical complexity measure of a procedural design and use this as a guide for
defining a basic set of execution paths. The basis path testing is same, but it is based on a White
package Testing method, that defines test cases based on the flows or logical path that can be
taken through the program. Basis path testing involves execution of all possible blocks in a
program and achieves maximum path coverage with least number of test cases. It is a hybrid of
branch testing and path testing methods. The objective behind basis path testing is that it defines
the number of independent paths, thus the number of test cases needed can be defined explicitly
(maximizes the coverage of each test case).
Steps for Basis Path testing
The method devised by McCabe to carry out basis path testing has four steps. These are
 Draw a control graph (to determine different program paths)
 Calculate Cyclomatic complexity (metrics to determine the number of independent paths)
 Find a basis set of paths
 Generate test cases to exercise each path
Benefits of basis path testing
 It helps to reduce the redundant tests
 It focuses attention on program logic
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
13
 It helps facilitates analytical versus arbitrary case design
 Test cases which exercise basis set will execute every statement in program at least once
Essential Complexity. When carrying out his work on the basis path testing method, McCabe
developed the notion of what is now known as essential complexity. This is the term given
for using the cyclomatic complexity to produce a condensation graph; the result is a graph
that can be used to assist in both programming and the testing procedure. The concept behind
essential complexity is that the program graph of a piece of software is traversed until a
structured programming construct is discovered; examples of these constructs are shown in
Figure 1.8. Once located, the structured programming construct is collapsed into a single
node and the graph traversal continues. The desired outcome of this procedure is to end up
with a graph of V(G) = 1, that is, a program made up of one node. This will mean that the
entire program is composed of structured programming constructs. If a graph cannot be
reduced to one in which there is a cyclomatic complexity of 1, then it means that the program
must contain an unstructured programming construct. The reason that these are not structured
is because they contain three distinct paths.
• The basic structured-constructs in a flow graph :
Figure 1. Basic path Structured & Unstructured Constructs
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
14
Program:
import java.util.Scanner;
public class ATM_Transaction
{
public static void main(String args[] )
{
int balance = 5000, withdraw, deposit;
Scanner s = new Scanner(System.in);
while(true)
{
System.out.println("Automated Teller Machine");
System.out.println("Choose 1 for Withdraw");
System.out.println("Choose 2 for Deposit");
System.out.println("Choose 3 for Check Balance");
System.out.println("Choose 4 for EXIT");
System.out.print("Choose the operation you want to perform:");
int n = s.nextInt();
switch(n)
{
case 1:
System.out.print("Enter money to be withdrawn:");
withdraw = s.nextInt();
if(balance >= withdraw)
{
balance = balance - withdraw;
System.out.println("Please collect your money");
}
else
{
System.out.println("Insufficient Balance");
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
15
}
System.out.println("");
break;
case 2:
System.out.print("Enter money to be deposited:");
deposit = s.nextInt();
balance = balance + deposit;
System.out.println("Your Money has been successfully depsited");
System.out.println("");
break;
case 3:
System.out.println("Balance : "+balance);
System.out.println("");
break;
case 4:
System.exit(0);
}
}
}
OUTPUT:
$ javac ATM_Transaction.java
$ java ATM_Transaction
Automated Teller Machine
Choose 1 for Withdraw
Choose 2 for Deposit
Choose 3 for Check Balance
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
16
Choose 4 for EXIT
Choose the operation you want to perform:1
Enter money to be withdrawn:2000
Please collect your money
Automated Teller Machine
Choose 1 for Withdraw
Choose 2 for Deposit
Choose 3 for Check Balance
Choose 4 for EXIT
Choose the operation you want to perform: 3
Balance: 3000
Automated Teller Machine
Choose 1 for Withdraw
Choose 2 for Deposit
Choose 3 for Check Balance
Choose 4 for EXIT
Choose the operation you want to perform:4
Conclusion: Thus we have studied how to create basic path testing for ATM transaction module
and about its complexity.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
17
Practical No. 05
Title: Test case design for bank transactions and ATM money/amount transfer.
Aim: Create a Test Case design for Bank transactions such as Withdraw, Update, Delete and test
cases for ATM Money/ Amount transfer.
Tool Used: Star UML 5.0.
Theory: A test case is a set of conditions or variables under which a tester will determine
whether a system under test satisfies requirements or works correctly. The process of developing
test cases can also help find problems in the requirements or design of an application.
Possible test cases for a/c withdraw are:
test case 1 : name of the a/c holder ( max and min character value)
test case 2 : available balance
test case 3 : max no of transactions ( withdrawals )on a particular day
test case 4 : total amount drawn on a a particular against amount withdrawal limit
For Load Test:
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
18
For Stress Test:
Possible test cases for a/c update are:
condition 1: for deposite
test case 1 : name of the a/c holder ( max and min character value)
test case 2 : available balance
test case 3 : deposite money in acc_no ( update )on a particular day
test case 4 : total amount update on a a particular against amount deposite limit
condition 2 : for withdrawls
test case 5 : Successful entry of amount
test case 6: max no of transactions ( withdrawals )on a particular day
test case 7 : total amount update on a a particular against amount withdrawal limit
condition 3: for money transfer
test case 1: Successful insertion of card
test case 2: Successful selection of languages
test case 3 : Successful entry of PIN number
test case 4 : Successful selection of Acct Type
test case 5 : Successful Selection of transfer option
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
19
test case 6 : Successful entry of amount
test case 7 : Successful amount transfer
Conclusion: Thus, We have designed test cases for bank transactions (1.Withdraw , 2. Update,
and 3. Delete) and test cases for ATM money/amount transfer.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
20
Practical No. 06
Title: Test scenario for ATM transactions.
Aim: To create test scenario for ATM transactions.
Tool Used: Star UML5.0
Theory:
A] Test Scenarios:
1. Verify the slot for ATM Card insertion is as per the specification
2. Verify that user is presented with options when card is inserted from proper side
3. Verify that no option to continue and enter credentials is displayed to user when card is
inserted correctly
4. Verify that font of the text displayed in ATM screen is as per the specifications
5. Verify that touch of the ATM screen is smooth and operational
6. Verify that user is presented with option to choose language for further operations
7. Verify that user asked to enter pin number before displaying any card/bank account detail
8. Verify that there are limited number of attempts upto which user is allowed to enter pin
code
9. Verify that if total number of incorrect pin attempts gets surpassed then user is not allowed
to continue further- operations like blocking of card etc gets initiated
10. Verify that pin is encrypted and when entered
11. Verify that user is presented with different account type options like- saving, current etc
12. Verify that user is allowed to get account details like available balance
13. Verify that user same amount of money gets dispatched as entered by user for cash
withdrawal
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
21
14. Verify that user is only allowed to enter amount in multiples of denominations as per the
specifications
15. Verify that user is prompted to enter the amount again in case amount entered is not as per
the specification and proper message should be displayed for the same
16. Verify that user cannot fetch more amount than the total available balance
17. Verify that user is provided the option to print the transaction/enquiry
18. Verify that user user's session timeout is maintained and is as per the specifications
19. Verify that user is not allowed to exceed one transaction limit amount
20. Verify that user is not allowed to exceed one day transaction limit amount
21. Verify that user is allowed to do only one transaction per pin request
22. Verify that user is not allowed to proceed with expired ATM card
23. Verify that in case ATM machine runs out of money, proper message is displayed to user
24. Verify that in case sudden electricity loss in between the operation, the transaction is
marked as null and amount is not withdrawn from user's account.
Test cases For Atm
B] Test cases :
Positive Test Cases
 Machine accepts card and PIN detail.
 Machine successfully takes out the money.
 Machine takes out the balance printout after the withdrawal.
 Machine logs out of the client session immediately after withdrawal successfully.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
22
 Machine prints out balance inquiry standalone as part of menu operation.
 Machine generates invalid money error due to money asked larger than the savings
account balance.
 Machine checks for the idle time in between the client session and wait period while
active in account.
 Machine accepts both Visa and Mastercard credit and debit cards.
Negative Test Cases
 Machine does not accept card and PIN.
 Machine finds wrong PIN.
 Machine finds card insertion in wrong way.
 Machine takes 3 invalid PIN attempt.
Invalid account type selected in the menu.
 Lack of money in the savings account.
 Expired card inserted in the machine.
 Money amount less than 100 entered in the machine.
 Machine does not take out the money.
 Machine can’t take out the balance after withdrawal.
 Machine can’t log out of client session after withdrawal.
 Machine doesn’t print the withdrawal amount.
 Machine does not accept either Visa or mastercard or both debit/credit cards.
C] ATM Testing :
1. Actors:
1.1 Bank Customer
1.2 Bank
2. Preconditions:
There is an active network connection to the Bank.
The ATM has cash available.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
23
3. Basic Flow:
1. The use case begins when Bank Customer inserts their Bank Card.
2. Use Case: Validate User is performed.
3. The ATM displays the different alternatives that are available on this unit. [See Supporting
Requirement SR-xxx for list of alternatives]. In this case the Bank Customer always selects
"Withdraw Cash".
4. The ATM prompts for an account. See Supporting Requirement SR-yyy for account types that
shall be supported.
5. The Bank Customer selects an account.
6. The ATM prompts for an amount.
7. The Bank Customer enters an amount.
8. Card ID, PIN, amount and account is sent to Bank as a transaction. The Bank Consortium
replies with a go/no go reply telling if the transaction is ok.
9. Then money is dispensed.
10. The Bank Card is returned.
11. The receipt is printed.
12. The use case ends successfully.
4. Exception :
4.1 Invalid User :
If in step 2 of the basic flow Bank Customer the use case: Validate User does not complete this
successfully, then
1. The use case ends with a failure condition.
4.2 Wrong account :
If in step 8 of the basic flow the account selected by the Bank Customer is not associated with
this bank card, then
1. The ATM shall display the message "Invalid Account – please try again".
2. The use case resumes at step 4.
4.3 Wrong amount :
If in step 7 in the basic flow, the Bank Customer enters an amount that can't be 'created' with the
kind of in the ATM (See Special Requirement WC-1 for valid amounts), then
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
24
1. The ATM shall display a the message indicating that the amount must be a multiple of the
bills on hand, and ask the Bank Customer to reenter the amount.
2. The use case resumes at step 7.
4.4 Amount Exceeds Withdrawal Limit :
If in step 7 in the basic flow, the Bank Customer enters an amount that exceeds the withdrawal
limit (See Special Requirement WC-2 for maximum amount), then
1. the ATM shall display a warning message, and ask the Bank Customer to reenter the amount
2. The use case resumes at step 7
4.5 Amount Exceeds Daily Withdrawal Limit :
If in step 8 in the basic flow, the Bank response indicates the daily withdrawal limit has been
exceeded (this is determined by the Bank and depends upon the specific account), then
1. The ATM shall display a warning message, and ask the Bank Customer to reenter the amount.
2. The use case resumes at step 7.
4.6 Insufficient Cash :
If in step 7 in the basic flow, the Bank Customer enters an amount that exceeds the amount of
cash available in the ATM, then
1. The ATM will display a warning message, and ask the Bank Customer to reenter the amount.
2. The use case resumes at step 7.
4.7 No Response from Bank :
If in step 8 of the basic there is no response from the Bank within 3 seconds, then
1. The ATM will re-try, up to three times.
2. If there is still no response from the Bank, the ATM shall display the message "Network
unavailable – try again later".
3. The ATM shall return the card.
4. The ATM shall indicate that it is "Closed".
5. The use case ends with a failure condition.
4.8 Money Not Removed :
If in step 9 of the basic flow the money is not removed from the machine within 15 seconds, then
1. the ATM shall issue a warning sound and display the message "Please remove cash".
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
25
2. If there is still no response from the Bank Customer within 15 seconds the ATM will re-tract
the money and note the failure in the log.
3. the use case end with a failure condition.
4.9 Quit:
If at point prior to step 8 in the basic flow the Bank Customer selects Quit, then
1. The ATM shall print a receipt indicating the transaction was cancelled.
2. The ATM shall return the card.
3. The use case ends.
Conclusion: Thus, we have performed the test scenario of ATM machine.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
26
Practical No. 07
Title: Java code and study of Junit with unit testing, types of testing.
Aim: Test a java code and study of Junit with unit testing, types of testing.
Tool Used: Junit
Theory:
Cash Withdrawal function from an ATM which based on user specified amount dispenses bank
notes. Ensure that the following is taken care of:
 Minimum number of bank notes are dispensed
 Availability of various denominations in the ATM is maintained
 Code should be flexible to take care of any bank denominations as long as it is a
multiple of 10
 Code should support parallel withdrawals i.e. two or more customers can
withdraw money simultaneously
 Take care of exceptional situation
Program:
package com.assignment.atm;
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.println("Enter Amount to be withdrawn: ");
int amount = input.nextInt();
if(amount%10!=0){
System.out.println("Please enter the amount in multiples of 10");
}
Else
{
ATM atm = new ATM(amount);
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
27
ATM.calcTotalCorpus();
Thread t1 = new Thread(atm);
t1.start();
/*ATM.calcTotalCorpus();
Thread t1 = new Thread(new ATM(1200));
Thread t2 = new Thread(new ATM(2400));
t1.start();
t2.start();
try{
t2.sleep(2000);
}
catch(Exception e){
}
}
}
}
Output:
Conclusion: Thus, we have studied Junit with unit testing, types of testing.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
28
Practical No. 08
Title: Object Oriented Programming approach in UML using StarUML.
Aim: Explain an Object oriented programming approach in UML using StarUML.
Tool Used: StarUML5.0
Theory:
We will use starUML to design a Pizza program. Perform the following steps to create
the UML diagrams shown below. SU will generate code that reflects the class structure, but not
the specific actions on any objects. For that, after creating the diagram using SU, you'll edit the
resulting stub code to add the rest of the functionality to the code, filling in what each method
should do.
Figure 3.1: UML diagram for Pizza program
Following are the steps to create class diagrams.
1. From the "File" menu, choose "Save", and select a location to save the project. Your
StarUML project should now look something like this:
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
29

Figure :StarUML project
2. Now to begin actually creating the diagram, from the "Toolbox" which starts by default on the
left side of the screen, select the "Class" icon, and left-click somewhere on the diagram window.
This should create a new class with a generic name. Rename the class to Circle by double
clicking on the name.
3. Add an "Attribute" (or field) to Circle by right-clicking the object on the diagram, expanding
the "Add" menu, and pressing the green "Attribute" button. Type in the desire name of the field,
"_radius".
o Specify the data type in the Properties panel (lower right side of window) by
typing double in the "Type" slot.
o Internal data of a class (field/attributes) are always private because they are
strictly for personal use by the class to help it determine its behavior.
o So, in the Properties panel for the _radius field, select PRIVATE for its
Visibility.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
30
4. Repeat the same process to create a class called Rectangle with type double. You may notice
using the "Model Explorer" on the right is faster to add these, but do however note that adding
the classes and interfaces themselves in this toolbox (instead of using the toolbox on the left and
clicking on the palette to create the object) will not create the objects in the diagram. If you
choose to use the "Model Explorer", the area we will be interested in is visible after expanding
the "Design Model”group.
4. Create an interface called I Shape
o From the toolbox, choose "Interface" and click somewhere on the palette. Rename the
generic name to I Shape. Select the interface by left-clicking the item after it is created.
o On the top toolbar, select the dropdown "Stereotype Display" and change the value to
"None". This will change the previous circular shape into a rectangular shape.
o Also on the toolbar, de-select the "Suppress Operations" box. This will allow us to see
what operations the interface has in the diagram view.
Figure: Class diagram look like this in step4
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
31
o Add a get Area method of type double to the I Shape interface.
 This can be accomplished by right clicking the interface, expanding the add
menu, and pressing the red "Operation" button. Enter the name as: get Area.
 To set the return type, expand I Shape in the "Model Explorer", right click
the get Area method you just created, and select "Add Parameter". In the
"Properties" box, change the parameter’s name to nothing, "", change the
"Direction Kind" to "RETURN", and change the "Type" to double.
o On both the I Shape interface itself as well as its get Area method, check the
Abstract box in the Property pane. This will make their titles appear as italics, as
per the UML standard for interfaces and other purely abstract entities.
5. Make Circle and Rectangle implement I Shape by selecting the "Realization" arrow from the
toolbox, clicking on Circle and dragging the line to I Shape. Repeat the same process
for Rectangle. This is adding the relationship that Circle and Rectangle will implement the I
Shape interface.
o To make the connector line makes nice right-angle bends, right-click the line and
select "Format/Line Style/Rectilinear". You can make your diagram look cleaner
by simply laying arrowheads that point to the same place right on top of each
other, making it it look as if there is only one arrowhead.
6. Since the Circle and Rectangle class both implement the I Shape interface, they must
have the same behaviors (methods) as I Shape.
o In the Model Explorer pane, copy the get Area method (Ctrl-C or right-click and
select Copy) from I Shape to both Circle and Rectangle.
o The implemented methods in the Circle and Rectangle classes are not abstract, but
concrete because they actually perform some particular action (i.e. calculate the
area for a circle and rectangle respectively). So, uncheck the Is Abstract box for
those methods.
7. Your diagram should now look something like this:
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
32
Figure: Class diagram look like this in step7
8. Add a class called Pizza.
o Add a private _price field of type double.
o Add a public get Price operation that returns type double.
9. To make Pizza reference an I Shape, select class Pizza.
o Select the "Directed Association" arrow in the toolbox, click on Pizza, and drag
to I Shape.
 Now select the arrow, and in the "Properties" box on the right, change the
name to "has-a", change "End1.Aggregation" to "AGGREGATE" (this is a
formal diagrammatic statement that a pizza is made up, i.e. "aggregated",
with another object, a shape object).
 Change the "End2.Name" to _shape. This will automatically add a private
field called _shape of type I Shape to Pizza.
 Change the End2.Visibility to PRIVATE.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
33
o Create a "gettor" method (Routine) for _shape called get Shape that returns I
Shape. That is, create an operation called get Shape that returns I Shape.
o 10. Constructors are special pieces of code used to initialize an instance of a class
when it comes into existence.
o To add a constructor for Pizza, right click on Pizza, expand the "Add" menu, and
select "Operation". From here, add a normal operation as usual, with input
parameters double price and I Shape shape.
 Adding an input parameter is just like adding an output parameter for the
return type earlier, except you specify the desired parameter name, such as
price and shape, and the appropriate data type.
o Add a Circle constructor with parameter double radius.
o Add a Rectangle constructor with parameters double width and double height.
11. Your diagram should now look something like this:
Figure: Class diagram look like this in step4
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
34
12. To illustrate one more type of UML class diagram feature, add another class to your
diagram called "Test Pizza". This would be a class that uses the Pizza and I Shape-derived
classes, say, for testing purposes.
o Dependency lines help show relations between classes that occur more
dynamically. For instance, one class may instantiate another class but not hold
permanent a reference to it by using a field. Or a class's method may take another
class as an input parameter, retaining a reference to it only for the duration of the
execution of that method.
o Add dependencies between different classes by selecting the "Dependency" arrow
from the toolbox, selecting a dependent class, and dragging the arrow to the class
it is dependent upon. In this example, Test Pizza "depends" on Pizza, Circle, and
Rectangle because it instantiates them.
o Enter a label for a dependency by changing the "Name" property in the Properties
box or by double-clicking the dependency line. Typically when one class
instantiates another class, we label the dependency line "instantiates" (surprise,
surprise!).
o You can move the label of the dependency line around to a more aesthetic
location by selecting the label on the diagram and dragging it.
o Dependencies have no effect on code generation.
13. Your diagram should now look like the diagram at the top of this web page.
14. Feel free to make other modifications to your diagram. You can drag your class diagrams
around and bend the arrows in many different ways (to make the arrows rectilinear, select an
arrow, right click it, expand format, expand Line Style, and select Rectilinear). You just have to
experiment with the tool to get to know it.
15. In the File menu, select Save. SU uses a single project file for all the information, so you
should have only 1 file generated currently.
16. It will be useful to export diagrams to other formats, such as images. You can do this by
selecting "Export Diagram" on the File menu and choosing an appropriate file type.
17. To generate the Java stub cod:
o Go to "Tools" on the main menu, expand "Java", and select "Generate Code".
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
35
Figure 3.6: step to generate java code
Output: Thus, we have implemented object oriented approach and generated java code using
UML class diagram.
Conclusion: Implementing Object Oriented Programming approach class diagram is observed
and on the basis of it java code is generated successfully using star UML.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
36
PracticalNo. 09
Title: Comparison of automation testing tool.
Aim: Compare automation testing tool such as Katalon Studio, TestComplete, and Neoload
testing tool.
Theory: The basic description of these three tools is given below:
Katalon Studio:
Katalon studio is an automated testing platform that offers a comprehensive set of features to
implement full automated testing solutions for mobile and Web applications. Built on top of the
open-source Selenium and Appium frameworks, Katalon Studio allows teams to get started with
test automation quickly by reducing the effort and expertise required for learning and integrating
these frameworks for automated testing needs. There is no one-size-fits-all tool for automated
testing. It is highly recommended that testers evaluate various tools in order to select what would
best meet their automated testing needs. Programming languages and technologies used to
develop software continue to evolve, as do the automated testing tools, making cost a significant
factor in tool selection. Commercial vendors often charge for tool upgrades, which can be
substantial if your software uses emerging and frequently changing technologies. Open source
and non-commercial tools, on the other hand, do not incur additional charges but require effort
and expertise for integrating new upgrades. It is difficult to find the support and expertise needed
for integrating various tools and frameworks into open-source solutions. Emerging tools that
integrate with open-source frameworks, like Katalon, offer a viable alternative to both
commercial and open-source automated testing solutions.
Katalon Studio is a powerful automation solution to help address the challenge of lacking the
integration among open-source test automation frameworks amid unaffordable commercial
solutions. It offers a comprehensive and integrated set of features ranging from recording test
steps, generating scripts to executing and reporting test results for Web and mobile apps test
automation. Katalon Studio revolutionizes the use of open-source test automation frameworks
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
37
such as Selenium and Appium by eliminating their technical complexities to allow testers to
efficiently setup, create, run, report and manage their automated tests. It also offers a viable
alternative to commercial test automation solutions that are unaffordable to many small and
medium-sized teams.
Testcomplete :
TestComplete is an automated testing tool that lets you create, manage and run tests for any
Windows, Web or Rich Client software. It makes it easy for anyone to create automated tests.
And automated tests run faster, increase test coverage and lower costs.
TestComplete's new script-free keyword testing, ease of use enhancements and centralized Start
Page make learning automated testing a snap for new users. TestComplete's flexibility and
extensive feature list ensure power users always have a solution to testing challenges.
TestComplete is a must-have tool for QA teams that need to do more testing, keep up with rapid
development schedules and still deliver software on time.
TestComplete is a functional automated testing platform developed by SmartBear Software.
TestComplete gives testers the ability to create automated tests for Microsoft Windows,
Web, Android (operating system), and iOS applications. Tests can be recorded, scripted or
manually created with keyword driven operations and used for automated playback and error
logging.
Neoload :
NeoLoad is a very comprehensive tool if you are looking for a performance test tool for web
applications and other applications using protocols like REST, SOAP, etc. The concepts are easy
to understand and mostly clear. This enables you to develop very fast tests with a very good
flexibility regarding the number of virtual users, the mixture of scripts, locations where load is
generated or there is load variation. In consulting projects it is very helpful that project data and
reports can be viewed by NeoLoad without the need of a license.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
38
NeoLoad supports performance test engineers with a strong feature set to analyse the results. The
first metric you have in mind is response time of the application. The metric satisfies the
stakeholder if it meets the requirements. Otherwise, the stakeholder wants to know some
comments and suggestions for improvement. I rely on the data gathered by monitoring agents
when I analyse test results. The monitoring agent is a service which collects different counters
from an operating system, databases, web server, etc. The results can be analysed in individual
composed graphs. This is a powerful feature to deliver conclusive reports to stakeholders. Even
the export of reports in various formats is helpful for communication with different stakeholders.
A usual performance test project starts with the development of tests and configuration of the test
environment. Finally, there is a first test execution followed by a couple of additional test
executions. Usually, it is hard to say how long it takes to implement the issues based on the test
results. So we usually do not know how long is the period between first and last test execution. It
does not matter how long the period might be. In most of our projects we prefer daily licenses of
NeoLoad. If you buy e.g. a four-day license you can use NeoLoad at four different days.
NeoLoad is just a performance test tool and the vendor Neotys is focused on this job. Whenever
you would like to add something into a test scenario which is not mainly a performance issue
you can integrate these parts by APIs which are easy to handle and very powerful. They also
support you in case technologies which are not supported yet by NeoLoad. Maybe there is a new
device which you want to monitor. Therefore you can report the measurements of the specific
counters by the data exchange API during test execution. So you can analyse the data in the usual
way. In our company we developed already a couple of features based on the APIs of NeoLoad
and we are very happy with this flexibility.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
39
The comparison of the three tools is shown below in the following table :
Features Katalon Studio Neoload TestComplete
Test development
platform
Cross-platform Cross-platform Windows
Application under
test
Web and mobile apps Web and mobile apps
Windows desktop, Web,
mobile apps
Scripting languages Java/Groovy Javascript
JavaScript, Python,
VBScript, JScript, Delphi,
C++ and C#
Programming skills
Not required. Recommended
for advanced test scripts
Not required.
Recommended
For advanced test
scripts
Not required.
Recommended for
advanced test scripts
Learning curves Medium Medium Medium
Ease of installation
and use
Easy to setup and run Easy to setup and run Easy to setup and run
Script creation time Quick Quick Quick
Object storage and
maintenance
Built-in object repository,
XPath, object re-
identification
Built-in object
repository
Built-in object repository,
detecting common objects
Image-based testing Built-in support Built-in support Built-in support
DevOps/ALM
integrations
Many Many Many
Continuous Popular CI tools (e.g. Various tools Various CI tools (e.g.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
40
integrations Jenkins, Teamcity) Jenkins, HP Quality Center)
Test Analytics Katalon Analytics Neotys No
Product support
Ticketing support,
community, dedicated staff
(third-party support services)
Community Dedicated staff, community
License type Freeware Proprietary Proprietary
Cost Free Free trial copy
License and maintenance
fees
Conclusion: In this way ,we have studied about the comparison of various automation testing
tool such as Katalon Studio, TestComplete, and Neoload testing tool successfully.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
41
Practical No. 10
Title: Katalon Studio 5.3 with Working , Features, Advantages-Disadvantages
Aim: Study of Katalon Studio 5.3 with Working , Features, Advantages-Disadvantages
Tool Used: Katalon Studio 5.3
Theory:
Katalon Studio 5.3 is a powerful automation tool is sent for web and mobile app testing.It is free
yet feature-packed solution that can be applied to overcome common challenges such as wait-
time, pop-up and iframe in web UI test automation. Katalon Studio 5.3 brings more intelligence
to the entire test automation process; faster and launch high quality software through this user-
friendly, versatile solution. Katalon Studio is a better solution than Selenium based open source
frameworks.
Working:
Step #1: Create a new project
Go to File -> New -> Create Project and enter the project name in the below window that
shows up:
You will now see that your project will open up and you will see the following items available
in the Test Explorer:
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
42
Step #2: Add objects to the repository
There are many approaches you can take to creating your test case. Record your test or generate
lines of code after adding the objects first. I am following the latter approach here. Here is what
I need to do now: Spy my application and add objects. To do this, go to Object repository tab-
and since I am working on a web application I will click on “Spy Web”
option.
The below Object Spy window opens up. Enter the starting URL and choose what browser it
should open up in.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
43
Capture all the objects you need for the test by pressing “Alt+~” the objects will now show in the
Object repository window under captured objects:
When you have all the objects available, click on “Add to Object Repository”
At the end of it, you should have all the objects you need for your test under the Object
Repository in the folder structure of your choice:
Now we are ready
Step #3: Create test case
Here is what I want my test case to do:
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
44
1. Launch the site
2. Search for DVD
3. Click on “A bug’s life” DVD
4. Check if the price displayed is $35.99
This might not be a perfect test, but this will do for the demo purposes. So, let’s create the steps
in Katalon.
Navigate to the Test Cases node in the Test Explorer. Right click and ‘New ->Test Case’. Enter
the test case name and a description below. I am going to call this “ViewProductPrice” test case.
A brand new tabular format opens up:
Step #4: Add test steps
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
45
To add test steps, simply click on “Add” and on the newly inserted row click on the “item”
column to add a keyword/method/action that you intend to perform.
For example: The first thing I want to do is “Open Browser” and go to a certain URL.
So, click on the following things to do the respective tasks:
Item: To choose what to do
Object: Where-on what object
Input: What to supply to the step
Output: Where to store the return value
Similarly, keep adding all the steps. It is a good idea to add some description to each step as it
will make more sense when you are re-reading the test. To do so, click on the description column
and enter the description as below:
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
46
This is how your test would appear:
Step #5: Run your test
To run your test, click on “Run” from the menu and alternately you can choose the browser you
want this to run on.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
47
Once done, your test results will show as below:
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
48
Step #6: Improve
Now that you are done with your first test, here are a few next steps:
 Create more tests, add them to the test suite and run them all at once
 View test reports after test suite execution
 Parameterize your tests
 Include error handling, etc.
 Create custom keywords/packages
 Call tests and reuse code
Features:
1) In-module help: When you click on the “?” in the test case module it takes you the help
documentation page that shows information about the test case manual mode. Likewise,
every module has a handy help for that portion of the tool in the form of the embedded help
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
49
icon.
2) Content assist in the script mode: I seriously don’t know what I would do when the
IDEs stop prompting me object names and method calls/syntaxes. :)
3) Renaming test execution reports: Unless we have the super human memory it is
impossible to know which test ran at what time and what date- but imagine that is the only
way to find your test results. Thankfully, with version 5.3 of Katalon, you can rename a test
execution report to a more descriptive name.
Advantages:
1) Easy to install.
2) Web, Mobile, and WebService testing- All in one
3) Completely free to use
4) Works for both technical and non-technical testers
5) Eliminates the complexity of setup and framework definition that tools such as Selenium
pose
6) Brings the robust QTP-like UI/Object recognition to a free automation tool- You can add
multiple properties to recognize an object and not have to choose/guess which locator works
best.
7) Support data driving your tests inherently: Test data can be created in the tool itself or can be
picked up externally from Excel sheets or database.
8) Integrates with requirement management and test management tools JIRA and qTest
respectively. The integration is easy to establish with the help quick set up wizard. So, technical
tool administrators are not necessary to make Katalon talk to the test management counterparts.
9) Run multiple tests at once as a Test Suite 14/15
10) Git integration for source code management and sharing
11) Robust debugging and reporting
12) Built-in error handling- No more try and catch blocks, no more complex functions to
gracefully exit your failed script.
Disadvantages:
1)The UI is at times a little clunky.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
50
2)If there is an error in the script mode, it does not let you navigate back to manual mode – I
found this limiting at times.
Conclusion:
Thus we have studied Katalon Studio 5.3 with Working, Features, and Advantages-
Disadvantages.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
51
Practical No: 11
Title: Web UI testing using Katalon Studio 5.3.
Aim: To perform Web UI testing which generates test case using Katalon Studio 5.3
Tool Used: Katalon Studio 5.3
Theory:
User Interface (UI) of any web applications is an important aspect. Hence UI testing is very
helpful. They're usually on the top of the automated testing pyramid and thus automating UI test
is the right step forward in QA automation. User interface testing, a testing technique used to
identify the presence of defects is a product/software under test by using Graphical user
interface.
GUI Testing - Approaches:
 Manual Based- Based on the domain and application knowledge of the tester.
 Capture and Replay - Based on capture and replay of user actions.
 Model-based testing - Based on the execution of user sessions based on a GUI model.
Various GUI models are briefly discussed below.
Follow these basic steps to get familiar with the Record & Playback features for WebUI Test:
1. Click on the New Test Case button on the main toolbar. Provide a name for your test
case and click OK. An empty test case will be created.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
52
2. Click on Record from the main toolbar
3. The Record dialog is displayed.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
53
4. Click on the Record button to start recording test case
5. Execute all your test steps on the browser. All of your actions performed on the browser
will be recorded by Katalon Studio
6. You can Stop or Pause recording if needed. When you are done with recording, click
OK to save recorded actions into Katalon Studio
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
54
7. You will be prompted to save captured objects into Object Repository of Katalon
Studio. Click OK to continue
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
55
8. Recorded objects and actions are saved in the test case as shown below.
9. Click on the Run button on the main Toolbar to execute the script. You can specify the
target browser to run by selecting it from the drop-down list.
Conclusion: Thus, we have performed UI testing which generates test case using Katalon Studio
5.3.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
56
PracticalNo. 12
Title: Web Service testing using Katalon Studio 5.3
.Aim: To perform Web Service testing using Katalon Studio 5.3
Theory: The basics of web service testing are given as follows:
Web Service:
Web Services is the mechanism or the medium of communication through which two
applications / machines will exchange the data irrespective of their underline architecture and the
technology.
Web Service Needed:
In general, software applications are developed to be consumed by the human beings, where a
person sends a request to a software service which in-turn returns a response in human readable
format.
In the modern era of technology if you want to build a software application you don't need to
build each and everything from scratch. There are lots of readymade services available which
you can plug into your application and you can start providing those services in your application.
Components of Web Services :
The basic web services platform is XML + HTTP. All the standard web services work using the
following components −
 SOAP (Simple Object Access Protocol)
 UDDI (Universal Description, Discovery and Integration)
 WSDL (Web Services Description Language)
All these components have been discussed in the Web Services Architecture .
How Does a Web Service Work
A web service enables communication among various applications by using open standards such
as HTML, XML, WSDL, and SOAP. A web service takes the help of −
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
57
 XML to tag the data
 SOAP to transfer a message
 WSDL to describe the availability of service.
You can build a Java-based web service on Solaris that is accessible from your Visual Basic
program that runs on Windows.
You can also use C# to build new web services on Windows that can be invoked from your web
application that is based on JavaServer Pages (JSP) and runs on Linux.
The web service performed by using the katalon studio is shown below :
Next choose the web service option :
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
58
A Web Service step is added to the test case.
To send a request to Web Service, you need to use Send Request keyword. Select the Send
Request keyword now.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
59
Double click on object cell to specify the web service object to Send Request.
The output of Send Request keyword could be validated if needed using
different Verify... keywords depending on your situation.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
60
You can use the Send Request keyword for Web Service object and the Verify... keywords to
verify the web service response. You may want to refer to Handle Response messages for more
details regarding Element Locator:
Thus we test web services in the Katalon studio.
Conclusion: In this way, we have successfully tested the web services in the Katalon studio.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
61
Practical No. 13
Title: API testing using Katalon Studio 5.3
Aim: To perform API testing using Katalon Studio 5.3
Tool Used: Katalon Studio 5.3
Theory:
In computer programming, an application programming interface (API) is a set of subroutine
definitions, protocols, and tools for building application software. In general terms, it is a set of
clearly defined methods of communication between various software components. A good API
makes it easier to develop a computer program by providing all the building blocks, which are
then put together by the programmer. An API may be for a web-based system, operating system,
database system, computer hardware or software library. An API specification can take many
forms, but often includes specifications for routines, data structures, object classes, variables or
remote calls. POSIX, Windows API and ASPI are examples of different forms of APIs.
Documentation for the API is usually provided to facilitate usage.
Uses:
Libraries and frameworks
An API is usually related to a software library. The API describes and prescribes the expected
behavior (a specification) while the library is an actual implementation of this set of rules. A
single API can have multiple implementations (or none, being abstract) in the form of different
libraries that share the same programming interface. The separation of the API from its
implementation can allow programs written in one language to use a library written in another.
For example, because Scala and Java compile to compatible bytecode, Scala developers can take
advantage of any Java API. API use can vary depending on the type of programming language
involved. An API for a procedural language such as Lua could primarily consist of basic routines
to execute code, manipulate data or handle errors, while an API for an object-oriented language
such as Java would provide a specification of classes and their class methods.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
62
Language bindings are also APIs. By mapping the features and capabilities of one language to an
interface implemented in another language, a language binding allows a library or service written
in one language to be used when developing in another language. Tools such as SWIG and
F2PY, a Fortran-to-Python interface generator, facilitate the creation of such interfaces.An API
can also be related to a software framework: a framework can be based on several libraries
implementing several APIs, but unlike the normal use of an API, the access to the behavior built
into the framework is mediated by extending its content with new classes plugged into the
framework itself. Moreover, the overall program flow of control can be out of the control of the
caller and in the hands of the framework via inversion of control or a similar mechanism.
Operating systems
An API can specify the interface between an application and the operating system. POSIX, for
example, specifies a set of common APIs that aim to enable an application written for a POSIX
conformant operating system to be compiled for another POSIX conformant operating system.
Linux and Berkeley Software Distribution are examples of operating systems that implement the
POSIX APIs. Microsoft has shown a strong commitment to a backward-compatible API,
particularly within their Windows API (Win32) library, so older applications may run on newer
versions of Windows using an executable-specific setting called "Compatibility Mode". An API
differs from an application binary interface (ABI) in that an API is source code based while an
ABI is binary based. For instance, POSIX provides APIs, while the Linux Standard Base
provides an ABI.
Remote APIs
Remote APIs allow developers to manipulate remote resources through protocols, specific
standards for communication that allow different technologies to work together, regardless of
language or platform. For example, the Java Database Connectivity API allows developers to
query many different types of databases with the same set of functions, while the Java remote
method invocation API uses the Java Remote Method Protocol to allow invocation of functions
that operate remotely, but appear local to the developer. Therefore, remote APIs are useful in
maintaining the object abstraction in object-oriented programming; a method call, executed
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
63
locally on a proxy object, invokes the corresponding method on the remote object, using the
remoting protocol, and acquires the result to be used locally as return value. A modification on
the proxy object will also result in a corresponding modification on the remote object.
Web APIs
Web APIs are the defined interfaces through which interactions happen between an enterprise
and applications that use its assets. An API approach is an architectural approach that revolves
around providing programmable interfaces to a set of services to different applications serving
different types of consumers.When used in the context of web development, an API is typically
defined as a set of Hypertext Transfer Protocol (HTTP) request messages, along with a definition
of the structure of response messages, which is usually in an Extensible Markup Language
(XML) or JavaScript Object Notation (JSON) format. An example might be a shipping company
API that can be added to an eCommerce-focused website, to facilitate ordering shipping services
and automatically include current shipping rates, without the site developer having to enter the
shipper's rate table into a web database. While "web API" historically has been virtually
synonymous for web service, the recent trend (so-called Web 2.0) has been moving away from
Simple Object Access Protocol (SOAP) based web services and service-oriented architecture
(SOA) towards more direct representational state transfer (REST) style web resources web
resources and resource-oriented architecture (ROA). Part of this trend is related to the Semantic
Web movement toward Resource Description Framework (RDF), a concept to promote web-
based ontology engineering technologies. Web APIs allow the combination of multiple APIs into
new applications known as mashups. In the social media space, web APIs have allowed web
communities to facilitate sharing content and data between communities and applications.
Design
The design of an API has significant impact on its usability. The principle of information hiding
describes the role of programming interfaces as enabling modular programming by hiding the
implementation details of the modules so that users of modules need not understand the
complexities inside the modules. Thus, the design of an API attempts to provide only the tools a
user would expec. The design of programming interfaces represents an important part of
software architecture, the organization of a complex piece of software.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
64
Public API implications
An important factor when an API becomes public is its interface stability. Changes by a
developer to a part of it—for example adding new parameters to a function call—could break
compatibility with clients that depend on that API.When parts of a publicly presented API are
subject to change and thus not stable, such parts of a particular API should be explicitly
documented as unstable. For example, in the Google Guava library the parts that are considered
unstable, and that might change in the near future, are marked with the Java annotation . A public
API can sometimes declare parts of itself as deprecated. This usually means that such part of an
API should be considered candidates for being removed, or modified in a backward incompatible
way. Therefore, deprecation allows developers to transition away from parts of the API that will
be removed or unsupported in the future.API documentation describes what services an API
offers and how to use those services, aiming to cover everything a client would need to know for
practical purposes. Documentation is crucial for the development and maintenance of
applications using the API. API documentation is traditionally found in documentation files but
can also be found in social media such as blogs, forums, and Q&A websites. Traditional
documentation files are often presented via a documentation system, such as Javadoc or Pydoc
that has a consistent appearance and structure. However, the types of content included in the
documentation differ from API to API. In the interest of clarity, API documentation may include
a description of classes and methods in the API as well as "typical usage scenarios, code
snippets, design rationales, performance discussions, and contracts", but implementation details
of the API services themselves are usually omitted. Restrictions and limitations on how the API
can be used are also covered by the documentation. For instance, documentation for an API
function could note that its parameters cannot be null, that the function itself is not thread safe, or
that a decrement and cancel protocol averts self-trading. Because API documentation tends to be
comprehensive, it is a challenge for writers to keep the documentation updated and for users to
read it carefully, potentially yielding bugs.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
65
Output:
Conclusion: Thus we have performed API testing using Katalon Studio 5.3
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
66
PracticalNo. 14
Title: Project Management and Issue Tracking Tool using Tuleap
Aim: To study Project Management and Issue Tracking Tool using Tuleap
ToolUsed: Tuleap
Theory:
Tuleap is a project management system for managing application lifecycles, Agile development
and design projects, V-model, Requirement Management, IT Services Management, and so on. It
is a libre and open-source project management system released under GPLv2 license. Tuleap is
an enterprise alternative solution to proprietary tools like CollabNet, Jira and Confluence,
Crucible. The software was developed by Enalean, a company founded in 2011 and
headquartered in France.
Tuleap is a software platform for project management that enables managers and developers to
utilize diverse development methodologies including Agile, traditional, or hybrid or custom
processes. It helps organizations meet industry standards like Capability Maturity Model
Integration (CMMI) and ITIL. Tuleap facilitates the planning of software releases, the
prioritization of business requirements, the assignment of tasks to project members, the
monitoring of project progress, and the creation of reports. It features site-wide trackers and real-
time reports on risks, requirements, tasks, bugs, change requests, support requests, user stories. It
supports Kanban, Scrum, and hybrid methodologies in project management. Tuleap has a built-in
risk management system.
Tuleap integrates forge system functionalities that enables teams to manage software sources
(using Subversion, Git or CVS); share technical or project documentations; track bugs;
consolidate communications with customers, developers or third parties.
Tuleap's kanban tool enables teams to create task boards on the fly. Scrum workspaces can also
be created
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
67
The basic window of Tuleap is shown below:
Architecture of Tuleap :
Tuleap is not a self-dependent tool. On the contrary, Tuleap’s underlying design – which is very
plug-in oriented – provides the development team with the possibility to interact with other well-
established free software tools such as Git and Gerrit. As an example, we can force Git commit
messages to contain a reference to the related issues in Tuleap. Later, we can couple this
functionality with Git to more easily browse and have a complete and customized tracking
system. Tuleap is an open source tool embedded in a very dynamic and vibrant community of
developers. For instance, just, Tuleap released a new version (9.3) with the first steps of the
brand new query language for the tracking system. This will enable developers to make
advanced searches within the Tuleap trackers as it supports the “AND”, “OR” and “()”
characters. We’ll be able to get all the tickets matching with complex queries such as: These
advantages of Tuleap have been clear from the onset to our Chief Technology Officer Jerome
Oufella. He proposed adoption of Tuleap and explained his reasons. To be honest, when
someone tries to implement a change so fundamental to a team’s work flow, some frictions are
naturally expected. But, our past experiences have shown us that the flexibility level of team
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
68
members slowly but steadily increases as they move along the learning curve. Indeed, there is
always a price to pay for any change management.
The basic software page of Tuleap is given below:
Advantages of Tuleap:
The user can develop easier:
 Get one single platform to version, review, test, release and track changes.
 Work collaborately with your teammates, wherever they are.
 Stay in the loop with real-time dashboards and development activity feeds.
The user can develop faster :
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
69
 Save time and improve efficiency avoiding manuel work and blurred organization.
 Extend development workflows with issue management, code reviews and build
automation.
 Centrally manage all repositories and users groups from Tuleap.
The user can develop even better :
 Link automatically your code to tasks or issues, jobs and wiki pages.
 Define and automate your own development workflow using Git, Jenkins, Gerrit.
 Catch errors and regressions before they are deployed with regular code review.
The user get real freedom :
 Choose the source code management tool you are keen of : SVN, Git or CVS.
 Use the Open APIs and write scripts to link Tuleap to other tools.
 Leverage access to the all Tuleap source code. Really!
The user can start in minutes :
 Use ready-to-use tools templates for creating new workspaces in a few clicks
 Configure your project workspaces and modify things to fit your way of working: tools
you need, name and fields of your trackers, user roles, etc.).
Disadvantages :
 There are too many horizontal navigations.
 Search options are not clearly visible.
 Some actions take longer time to execute.
Conclusion: In this way, we have studied the project management and issue tracking tool :
tuleap successfully.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
70
Practical No: 15
Title: Open source testing tool (Test Complete).
Aim: To Study of any open source testing tool (Test Complete).
Tool Used: Test Complete.
Theory:
Test Complete is an automated testing tool that lets you create, manage and run tests for any
Windows, Web or Rich Client software. It makes it easy for anyone to create automated tests.
And automated tests run faster, increase test coverage and lower costs. Test Complete's new
script-free keyword testing, ease of use enhancements and centralized Start Page make learning
automated testing a snap for new users. Test Complete's flexibility and extensive feature list
ensure power users always have a solution to testing challenges. TestComplete is a must-have
tool for QA teams that need to do more testing, keep up with rapid development schedules and
still deliver software on time. TestComplete is a functional automated testing platform developed
by SmartBear Software. TestComplete gives testers the ability to create automated tests
for Microsoft Windows, Web, Android (operating system), and iOS applications. Tests can be
recorded, scripted or manually created with keyword driven operations and used for automated
playback and error logging.
TestComplete is broken out into three modules:
 Desktop
 Web
 Mobile
Each module contains functionality for creating automated tests on that specified platform.
TestComplete is used for testing many different application types including
Web, Windows, Android, iOS, WPF, HTML5, Flash, Flex, Silverlight, .NET, VCLand Java.
It automates functional testing and back-end testing like database testing.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
71
Uses
TestComplete is used to create and automate many different software test types. Record and
playback test creation records a tester performing a manual test and allows it to be played back
and maintained over and over again as an automated test. Recorded tests can be modified later by
testers to create new tests or enhance existing tests with more use cases.
Main Features
 Keyword Testing: TestComplete has a built-in keyword-driven test editor that consists of
keyword operations that correspond to automated testing actions.
 Scripted Testing: TestComplete has a built-in code editor that helps testers write scripts
manually. It also includes a set of special plug-ins that helps.
 Test Record and Playback: TestComplete records the key actions necessary to replay the test
and discards all unneeded actions.
 Distributed Testing: TestComplete can run several automated tests across separate
workstations or virtual machines.
 Access to Methods and Properties of Internal Objects: TestComplete reads the names of the
visible elements and many internal elements of Delphi, C++Builder, .NET, WPF, Java and
Visual Basic applications and allows test scripts to access these values for verification or use
in tests.
 Bug Tracking Integration: TestComplete includes issue-tracking templates that can be used
to create or modify items stored in issue-tracking systems. TestComplete currently
supports Microsoft Visual Studio 2005, 2008, 2010 Team System, BugZilla, Jira
and AutomatedQA AQdevTeam.
 Data-driven testing: Data-driven testing with TestComplete means using a single test to
verify many different test cases by driving the test with input and expected values from an
external data source instead of using the same hard-coded values each time the test runs.
 COM-based, Open Architecture: Test Complete's engine is based on an open API, COM
interface. It is source-language independent, and can read debugger information and use it at
runtime through the TestComplete Debug Info Agent.
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
72
 Test Visualizer – TestComplete automatically captures screenshots during test recording and
playback. This enables quick comparisons between expected and actual screens during test.
 Extensions and SDK - Everything visible in Test Complete — panels, project items, specific
scripting objects, and others — are implemented as plug-ins. This plug-ins are included into
the product and installed on your computer along with other Test Complete modules. You
can create your own plug-ins that will extend Test Complete and provide specific
functionality for your own needs. For example, you can create plug-ins or use third-party
plug-ins for:
 Support for custom controls
 Custom keyword test operations
 New scripting objects
 Custom checkpoints
 Commands for test result processing
 Panels
 Project items
 Menu and toolbar items.
Pros:
1)Ease of use - keyword test case
2)Highly configurable - scripted test cases
3)Lotsof online resources
4)DB access interface
5)Parameterize(Data Source) test data
6)Webservice interface albeit not easy to use
7)Modularize test suites by using test case reference functionality
8)Name mapping functionality
9)Test Log Results
Cons:
Software Engineering Testing & Research
M.E (CSIT) Dept SGBAU AMRAVATI
73
1) Initial learning curve 2-4 weeks
2) Doesn't always capture time to load
Would like to see a seamless integration between its sister application SoapUI
Output:
Fig: Test complete window
Conclusion: Thus, we have studied open source tool using test complete.

More Related Content

What's hot

Online bankingppt
Online bankingpptOnline bankingppt
Online bankingppt
ARPITA SRIVASTAVA
 
Bank Management System
Bank Management SystemBank Management System
Bank Management System
SM. Aurnob
 
28 javed intelligent agent for 260-264
28 javed intelligent agent for 260-26428 javed intelligent agent for 260-264
28 javed intelligent agent for 260-264
Alexander Decker
 
Project report
Project reportProject report
Project report
ARPITA SRIVASTAVA
 
Banking Management System Project
Banking Management System ProjectBanking Management System Project
Banking Management System Project
Chaudhry Sajid
 
documentation on bank management system
documentation on bank management systemdocumentation on bank management system
documentation on bank management system
Unsa Jawaid
 
Atm Simulator
Atm SimulatorAtm Simulator
Atm Simulator
Syed Jamil
 
Auto lock box
Auto lock boxAuto lock box
Auto lock box
Madhurima Chatterjee
 
E property project documentation
E property project documentationE property project documentation
E property project documentation
Musakkhir Sayyed
 
Online banking serices
Online banking sericesOnline banking serices
Online banking serices
AnIsh Kumar
 
BANKING SYSTEM
BANKING SYSTEMBANKING SYSTEM
BANKING SYSTEM
Ashok Basnet
 
Use Case diagram-UML diagram-2
Use Case diagram-UML diagram-2Use Case diagram-UML diagram-2
Use Case diagram-UML diagram-2
Ramakant Soni
 
51955853 banking-system-documentation
51955853 banking-system-documentation51955853 banking-system-documentation
51955853 banking-system-documentation
Aziz Muslim
 
Bank Management System project
Bank Management System projectBank Management System project
Bank Management System project
GolamRabbaniMithu
 
Bank Database Project
Bank Database ProjectBank Database Project
Bank Database Project
DavidPerley
 
Online Banking Project
Online Banking ProjectOnline Banking Project
Online Banking Project
M.Saber
 
IRJET- Credit Card Fraud Detection using Random Forest
IRJET-  	  Credit Card Fraud Detection using Random ForestIRJET-  	  Credit Card Fraud Detection using Random Forest
IRJET- Credit Card Fraud Detection using Random Forest
IRJET Journal
 
Credit defaulter analysis
Credit defaulter analysisCredit defaulter analysis
Credit defaulter analysis
Nimai Chand Das Adhikari
 
Black book converted
Black book convertedBlack book converted
Black book converted
PratikSarvankar2
 
Project Super market billing system
Project Super market billing systemProject Super market billing system
Project Super market billing system
Vickey Mahant
 

What's hot (20)

Online bankingppt
Online bankingpptOnline bankingppt
Online bankingppt
 
Bank Management System
Bank Management SystemBank Management System
Bank Management System
 
28 javed intelligent agent for 260-264
28 javed intelligent agent for 260-26428 javed intelligent agent for 260-264
28 javed intelligent agent for 260-264
 
Project report
Project reportProject report
Project report
 
Banking Management System Project
Banking Management System ProjectBanking Management System Project
Banking Management System Project
 
documentation on bank management system
documentation on bank management systemdocumentation on bank management system
documentation on bank management system
 
Atm Simulator
Atm SimulatorAtm Simulator
Atm Simulator
 
Auto lock box
Auto lock boxAuto lock box
Auto lock box
 
E property project documentation
E property project documentationE property project documentation
E property project documentation
 
Online banking serices
Online banking sericesOnline banking serices
Online banking serices
 
BANKING SYSTEM
BANKING SYSTEMBANKING SYSTEM
BANKING SYSTEM
 
Use Case diagram-UML diagram-2
Use Case diagram-UML diagram-2Use Case diagram-UML diagram-2
Use Case diagram-UML diagram-2
 
51955853 banking-system-documentation
51955853 banking-system-documentation51955853 banking-system-documentation
51955853 banking-system-documentation
 
Bank Management System project
Bank Management System projectBank Management System project
Bank Management System project
 
Bank Database Project
Bank Database ProjectBank Database Project
Bank Database Project
 
Online Banking Project
Online Banking ProjectOnline Banking Project
Online Banking Project
 
IRJET- Credit Card Fraud Detection using Random Forest
IRJET-  	  Credit Card Fraud Detection using Random ForestIRJET-  	  Credit Card Fraud Detection using Random Forest
IRJET- Credit Card Fraud Detection using Random Forest
 
Credit defaulter analysis
Credit defaulter analysisCredit defaulter analysis
Credit defaulter analysis
 
Black book converted
Black book convertedBlack book converted
Black book converted
 
Project Super market billing system
Project Super market billing systemProject Super market billing system
Project Super market billing system
 

Similar to Software Engineering Testing & Research

project database 1 ALI Hassan 005.ppt
project database 1 ALI Hassan 005.pptproject database 1 ALI Hassan 005.ppt
project database 1 ALI Hassan 005.ppt
AHSANMUNEEB2
 
Payment Routing Module using Kafka Streams
Payment Routing Module using Kafka StreamsPayment Routing Module using Kafka Streams
Payment Routing Module using Kafka Streams
IRJET Journal
 
Atm project
Atm projectAtm project
Srs of bms
Srs of bmsSrs of bms
Srs of bms
Zohaib Hussain
 
Web Locker For Online Banking System Chapter final project Report page
Web Locker For Online Banking System  Chapter final project Report pageWeb Locker For Online Banking System  Chapter final project Report page
Web Locker For Online Banking System Chapter final project Report page
Mukesh Chaudhary(L.I.O.N)
 
Documentation
DocumentationDocumentation
Documentation
Kalyan A
 
IRJET- Bank Management System
IRJET- Bank Management SystemIRJET- Bank Management System
IRJET- Bank Management System
IRJET Journal
 
Srs for banking system
Srs for banking systemSrs for banking system
Srs for banking system
Jaydev Kishnani
 
Banking java project
Banking java projectBanking java project
Banking java project
Tutorial Learners
 
Formal Verification of Distributed Checkpointing Using Event-B
Formal Verification of Distributed Checkpointing Using Event-BFormal Verification of Distributed Checkpointing Using Event-B
Formal Verification of Distributed Checkpointing Using Event-B
ijcsit
 
Banking Management System SRS
Banking Management System SRSBanking Management System SRS
Banking Management System SRS
Mr. Moms
 
IRJET- E-Gatepass System
IRJET- E-Gatepass SystemIRJET- E-Gatepass System
IRJET- E-Gatepass System
IRJET Journal
 
IRJET- Intelligent Cart
IRJET-  	  Intelligent CartIRJET-  	  Intelligent Cart
IRJET- Intelligent Cart
IRJET Journal
 
PPT.pptx
PPT.pptxPPT.pptx
HDFC banking system SRS Document
HDFC banking system  SRS DocumentHDFC banking system  SRS Document
HDFC banking system SRS Document
NavjeetKajal
 
java Project report online banking system
java Project report online banking systemjava Project report online banking system
java Project report online banking system
VishNu KuNtal
 
Document Atm machine using c language mini project.pdf
Document  Atm machine using c language mini project.pdfDocument  Atm machine using c language mini project.pdf
Document Atm machine using c language mini project.pdf
NEERAJRAJPUT81
 
Bank management system
Bank management systemBank management system
Bank management system
sumanadas37
 
Onlinebanking system.ppt
Onlinebanking system.pptOnlinebanking system.ppt
Onlinebanking system.ppt
MohitDhande3
 
Bnkng
BnkngBnkng

Similar to Software Engineering Testing & Research (20)

project database 1 ALI Hassan 005.ppt
project database 1 ALI Hassan 005.pptproject database 1 ALI Hassan 005.ppt
project database 1 ALI Hassan 005.ppt
 
Payment Routing Module using Kafka Streams
Payment Routing Module using Kafka StreamsPayment Routing Module using Kafka Streams
Payment Routing Module using Kafka Streams
 
Atm project
Atm projectAtm project
Atm project
 
Srs of bms
Srs of bmsSrs of bms
Srs of bms
 
Web Locker For Online Banking System Chapter final project Report page
Web Locker For Online Banking System  Chapter final project Report pageWeb Locker For Online Banking System  Chapter final project Report page
Web Locker For Online Banking System Chapter final project Report page
 
Documentation
DocumentationDocumentation
Documentation
 
IRJET- Bank Management System
IRJET- Bank Management SystemIRJET- Bank Management System
IRJET- Bank Management System
 
Srs for banking system
Srs for banking systemSrs for banking system
Srs for banking system
 
Banking java project
Banking java projectBanking java project
Banking java project
 
Formal Verification of Distributed Checkpointing Using Event-B
Formal Verification of Distributed Checkpointing Using Event-BFormal Verification of Distributed Checkpointing Using Event-B
Formal Verification of Distributed Checkpointing Using Event-B
 
Banking Management System SRS
Banking Management System SRSBanking Management System SRS
Banking Management System SRS
 
IRJET- E-Gatepass System
IRJET- E-Gatepass SystemIRJET- E-Gatepass System
IRJET- E-Gatepass System
 
IRJET- Intelligent Cart
IRJET-  	  Intelligent CartIRJET-  	  Intelligent Cart
IRJET- Intelligent Cart
 
PPT.pptx
PPT.pptxPPT.pptx
PPT.pptx
 
HDFC banking system SRS Document
HDFC banking system  SRS DocumentHDFC banking system  SRS Document
HDFC banking system SRS Document
 
java Project report online banking system
java Project report online banking systemjava Project report online banking system
java Project report online banking system
 
Document Atm machine using c language mini project.pdf
Document  Atm machine using c language mini project.pdfDocument  Atm machine using c language mini project.pdf
Document Atm machine using c language mini project.pdf
 
Bank management system
Bank management systemBank management system
Bank management system
 
Onlinebanking system.ppt
Onlinebanking system.pptOnlinebanking system.ppt
Onlinebanking system.ppt
 
Bnkng
BnkngBnkng
Bnkng
 

More from Vrushali Lanjewar

Best performance evaluation metrics for image Classification.docx
Best performance evaluation metrics for image Classification.docxBest performance evaluation metrics for image Classification.docx
Best performance evaluation metrics for image Classification.docx
Vrushali Lanjewar
 
Studies based on Deep learning in recent years.pptx
Studies based on Deep learning in recent years.pptxStudies based on Deep learning in recent years.pptx
Studies based on Deep learning in recent years.pptx
Vrushali Lanjewar
 
Word art1
Word art1Word art1
My Dissertation 2016
My Dissertation 2016My Dissertation 2016
My Dissertation 2016
Vrushali Lanjewar
 
Comparison of thresholding methods
Comparison of thresholding methodsComparison of thresholding methods
Comparison of thresholding methods
Vrushali Lanjewar
 
Real Time Embedded System
Real Time Embedded SystemReal Time Embedded System
Real Time Embedded System
Vrushali Lanjewar
 
Performance Anaysis for Imaging System
Performance Anaysis for Imaging SystemPerformance Anaysis for Imaging System
Performance Anaysis for Imaging System
Vrushali Lanjewar
 
Advance Computer Architecture
Advance Computer ArchitectureAdvance Computer Architecture
Advance Computer Architecture
Vrushali Lanjewar
 
Wireless Communication Network Communication
Wireless Communication Network CommunicationWireless Communication Network Communication
Wireless Communication Network Communication
Vrushali Lanjewar
 
Distributed Database practicals
Distributed Database practicals Distributed Database practicals
Distributed Database practicals
Vrushali Lanjewar
 
Pmgdisha
PmgdishaPmgdisha
Cryptographic protocols
Cryptographic protocolsCryptographic protocols
Cryptographic protocols
Vrushali Lanjewar
 
Distributed system
Distributed systemDistributed system
Distributed system
Vrushali Lanjewar
 

More from Vrushali Lanjewar (13)

Best performance evaluation metrics for image Classification.docx
Best performance evaluation metrics for image Classification.docxBest performance evaluation metrics for image Classification.docx
Best performance evaluation metrics for image Classification.docx
 
Studies based on Deep learning in recent years.pptx
Studies based on Deep learning in recent years.pptxStudies based on Deep learning in recent years.pptx
Studies based on Deep learning in recent years.pptx
 
Word art1
Word art1Word art1
Word art1
 
My Dissertation 2016
My Dissertation 2016My Dissertation 2016
My Dissertation 2016
 
Comparison of thresholding methods
Comparison of thresholding methodsComparison of thresholding methods
Comparison of thresholding methods
 
Real Time Embedded System
Real Time Embedded SystemReal Time Embedded System
Real Time Embedded System
 
Performance Anaysis for Imaging System
Performance Anaysis for Imaging SystemPerformance Anaysis for Imaging System
Performance Anaysis for Imaging System
 
Advance Computer Architecture
Advance Computer ArchitectureAdvance Computer Architecture
Advance Computer Architecture
 
Wireless Communication Network Communication
Wireless Communication Network CommunicationWireless Communication Network Communication
Wireless Communication Network Communication
 
Distributed Database practicals
Distributed Database practicals Distributed Database practicals
Distributed Database practicals
 
Pmgdisha
PmgdishaPmgdisha
Pmgdisha
 
Cryptographic protocols
Cryptographic protocolsCryptographic protocols
Cryptographic protocols
 
Distributed system
Distributed systemDistributed system
Distributed system
 

Recently uploaded

paper relate Chozhavendhan et al. 2020.pdf
paper relate Chozhavendhan et al. 2020.pdfpaper relate Chozhavendhan et al. 2020.pdf
paper relate Chozhavendhan et al. 2020.pdf
ShurooqTaib
 
Better Builder Magazine, Issue 49 / Spring 2024
Better Builder Magazine, Issue 49 / Spring 2024Better Builder Magazine, Issue 49 / Spring 2024
Better Builder Magazine, Issue 49 / Spring 2024
Better Builder Magazine
 
Call Girls Nagpur 8824825030 Escort In Nagpur service 24X7
Call Girls Nagpur 8824825030 Escort In Nagpur service 24X7Call Girls Nagpur 8824825030 Escort In Nagpur service 24X7
Call Girls Nagpur 8824825030 Escort In Nagpur service 24X7
sexytaniya455
 
Call Girls Chennai +91-8824825030 Vip Call Girls Chennai
Call Girls Chennai +91-8824825030 Vip Call Girls ChennaiCall Girls Chennai +91-8824825030 Vip Call Girls Chennai
Call Girls Chennai +91-8824825030 Vip Call Girls Chennai
paraasingh12 #V08
 
Asymmetrical Repulsion Magnet Motor Ratio 6-7.pdf
Asymmetrical Repulsion Magnet Motor Ratio 6-7.pdfAsymmetrical Repulsion Magnet Motor Ratio 6-7.pdf
Asymmetrical Repulsion Magnet Motor Ratio 6-7.pdf
felixwold
 
Technological Innovation Management And Entrepreneurship-1.pdf
Technological Innovation Management And Entrepreneurship-1.pdfTechnological Innovation Management And Entrepreneurship-1.pdf
Technological Innovation Management And Entrepreneurship-1.pdf
tanujaharish2
 
一比一原版(psu学位证书)美国匹兹堡州立大学毕业证如何办理
一比一原版(psu学位证书)美国匹兹堡州立大学毕业证如何办理一比一原版(psu学位证书)美国匹兹堡州立大学毕业证如何办理
一比一原版(psu学位证书)美国匹兹堡州立大学毕业证如何办理
nonods
 
Cuttack Call Girls 💯Call Us 🔝 7374876321 🔝 💃 Independent Female Escort Service
Cuttack Call Girls 💯Call Us 🔝 7374876321 🔝 💃 Independent Female Escort ServiceCuttack Call Girls 💯Call Us 🔝 7374876321 🔝 💃 Independent Female Escort Service
Cuttack Call Girls 💯Call Us 🔝 7374876321 🔝 💃 Independent Female Escort Service
yakranividhrini
 
High Profile Call Girls Ahmedabad 🔥 7737669865 🔥 Real Fun With Sexual Girl Av...
High Profile Call Girls Ahmedabad 🔥 7737669865 🔥 Real Fun With Sexual Girl Av...High Profile Call Girls Ahmedabad 🔥 7737669865 🔥 Real Fun With Sexual Girl Av...
High Profile Call Girls Ahmedabad 🔥 7737669865 🔥 Real Fun With Sexual Girl Av...
dABGO KI CITy kUSHINAGAR Ak47
 
❣Independent Call Girls Chennai 💯Call Us 🔝 7737669865 🔝💃Independent Chennai E...
❣Independent Call Girls Chennai 💯Call Us 🔝 7737669865 🔝💃Independent Chennai E...❣Independent Call Girls Chennai 💯Call Us 🔝 7737669865 🔝💃Independent Chennai E...
❣Independent Call Girls Chennai 💯Call Us 🔝 7737669865 🔝💃Independent Chennai E...
nainakaoornoida
 
Butterfly Valves Manufacturer (LBF Series).pdf
Butterfly Valves Manufacturer (LBF Series).pdfButterfly Valves Manufacturer (LBF Series).pdf
Butterfly Valves Manufacturer (LBF Series).pdf
Lubi Valves
 
Call Girls In Lucknow 🔥 +91-7014168258🔥High Profile Call Girl Lucknow
Call Girls In Lucknow 🔥 +91-7014168258🔥High Profile Call Girl LucknowCall Girls In Lucknow 🔥 +91-7014168258🔥High Profile Call Girl Lucknow
Call Girls In Lucknow 🔥 +91-7014168258🔥High Profile Call Girl Lucknow
yogita singh$A17
 
Lateral load-resisting systems in buildings.pptx
Lateral load-resisting systems in buildings.pptxLateral load-resisting systems in buildings.pptx
Lateral load-resisting systems in buildings.pptx
DebendraDevKhanal1
 
Call Girls Madurai 8824825030 Escort In Madurai service 24X7
Call Girls Madurai 8824825030 Escort In Madurai service 24X7Call Girls Madurai 8824825030 Escort In Madurai service 24X7
Call Girls Madurai 8824825030 Escort In Madurai service 24X7
Poonam Singh
 
An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...
An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...
An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...
DharmaBanothu
 
Call Girls Goa (india) ☎️ +91-7426014248 Goa Call Girl
Call Girls Goa (india) ☎️ +91-7426014248 Goa Call GirlCall Girls Goa (india) ☎️ +91-7426014248 Goa Call Girl
Call Girls Goa (india) ☎️ +91-7426014248 Goa Call Girl
sapna sharmap11
 
Update 40 models( Solar Cell ) in SPICE PARK(JUL2024)
Update 40 models( Solar Cell ) in SPICE PARK(JUL2024)Update 40 models( Solar Cell ) in SPICE PARK(JUL2024)
Update 40 models( Solar Cell ) in SPICE PARK(JUL2024)
Tsuyoshi Horigome
 
SPICE PARK JUL2024 ( 6,866 SPICE Models )
SPICE PARK JUL2024 ( 6,866 SPICE Models )SPICE PARK JUL2024 ( 6,866 SPICE Models )
SPICE PARK JUL2024 ( 6,866 SPICE Models )
Tsuyoshi Horigome
 
🚺ANJALI MEHTA High Profile Call Girls Ahmedabad 💯Call Us 🔝 9352988975 🔝💃Top C...
🚺ANJALI MEHTA High Profile Call Girls Ahmedabad 💯Call Us 🔝 9352988975 🔝💃Top C...🚺ANJALI MEHTA High Profile Call Girls Ahmedabad 💯Call Us 🔝 9352988975 🔝💃Top C...
🚺ANJALI MEHTA High Profile Call Girls Ahmedabad 💯Call Us 🔝 9352988975 🔝💃Top C...
dulbh kashyap
 
Sri Guru Hargobind Ji - Bandi Chor Guru.pdf
Sri Guru Hargobind Ji - Bandi Chor Guru.pdfSri Guru Hargobind Ji - Bandi Chor Guru.pdf
Sri Guru Hargobind Ji - Bandi Chor Guru.pdf
Balvir Singh
 

Recently uploaded (20)

paper relate Chozhavendhan et al. 2020.pdf
paper relate Chozhavendhan et al. 2020.pdfpaper relate Chozhavendhan et al. 2020.pdf
paper relate Chozhavendhan et al. 2020.pdf
 
Better Builder Magazine, Issue 49 / Spring 2024
Better Builder Magazine, Issue 49 / Spring 2024Better Builder Magazine, Issue 49 / Spring 2024
Better Builder Magazine, Issue 49 / Spring 2024
 
Call Girls Nagpur 8824825030 Escort In Nagpur service 24X7
Call Girls Nagpur 8824825030 Escort In Nagpur service 24X7Call Girls Nagpur 8824825030 Escort In Nagpur service 24X7
Call Girls Nagpur 8824825030 Escort In Nagpur service 24X7
 
Call Girls Chennai +91-8824825030 Vip Call Girls Chennai
Call Girls Chennai +91-8824825030 Vip Call Girls ChennaiCall Girls Chennai +91-8824825030 Vip Call Girls Chennai
Call Girls Chennai +91-8824825030 Vip Call Girls Chennai
 
Asymmetrical Repulsion Magnet Motor Ratio 6-7.pdf
Asymmetrical Repulsion Magnet Motor Ratio 6-7.pdfAsymmetrical Repulsion Magnet Motor Ratio 6-7.pdf
Asymmetrical Repulsion Magnet Motor Ratio 6-7.pdf
 
Technological Innovation Management And Entrepreneurship-1.pdf
Technological Innovation Management And Entrepreneurship-1.pdfTechnological Innovation Management And Entrepreneurship-1.pdf
Technological Innovation Management And Entrepreneurship-1.pdf
 
一比一原版(psu学位证书)美国匹兹堡州立大学毕业证如何办理
一比一原版(psu学位证书)美国匹兹堡州立大学毕业证如何办理一比一原版(psu学位证书)美国匹兹堡州立大学毕业证如何办理
一比一原版(psu学位证书)美国匹兹堡州立大学毕业证如何办理
 
Cuttack Call Girls 💯Call Us 🔝 7374876321 🔝 💃 Independent Female Escort Service
Cuttack Call Girls 💯Call Us 🔝 7374876321 🔝 💃 Independent Female Escort ServiceCuttack Call Girls 💯Call Us 🔝 7374876321 🔝 💃 Independent Female Escort Service
Cuttack Call Girls 💯Call Us 🔝 7374876321 🔝 💃 Independent Female Escort Service
 
High Profile Call Girls Ahmedabad 🔥 7737669865 🔥 Real Fun With Sexual Girl Av...
High Profile Call Girls Ahmedabad 🔥 7737669865 🔥 Real Fun With Sexual Girl Av...High Profile Call Girls Ahmedabad 🔥 7737669865 🔥 Real Fun With Sexual Girl Av...
High Profile Call Girls Ahmedabad 🔥 7737669865 🔥 Real Fun With Sexual Girl Av...
 
❣Independent Call Girls Chennai 💯Call Us 🔝 7737669865 🔝💃Independent Chennai E...
❣Independent Call Girls Chennai 💯Call Us 🔝 7737669865 🔝💃Independent Chennai E...❣Independent Call Girls Chennai 💯Call Us 🔝 7737669865 🔝💃Independent Chennai E...
❣Independent Call Girls Chennai 💯Call Us 🔝 7737669865 🔝💃Independent Chennai E...
 
Butterfly Valves Manufacturer (LBF Series).pdf
Butterfly Valves Manufacturer (LBF Series).pdfButterfly Valves Manufacturer (LBF Series).pdf
Butterfly Valves Manufacturer (LBF Series).pdf
 
Call Girls In Lucknow 🔥 +91-7014168258🔥High Profile Call Girl Lucknow
Call Girls In Lucknow 🔥 +91-7014168258🔥High Profile Call Girl LucknowCall Girls In Lucknow 🔥 +91-7014168258🔥High Profile Call Girl Lucknow
Call Girls In Lucknow 🔥 +91-7014168258🔥High Profile Call Girl Lucknow
 
Lateral load-resisting systems in buildings.pptx
Lateral load-resisting systems in buildings.pptxLateral load-resisting systems in buildings.pptx
Lateral load-resisting systems in buildings.pptx
 
Call Girls Madurai 8824825030 Escort In Madurai service 24X7
Call Girls Madurai 8824825030 Escort In Madurai service 24X7Call Girls Madurai 8824825030 Escort In Madurai service 24X7
Call Girls Madurai 8824825030 Escort In Madurai service 24X7
 
An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...
An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...
An In-Depth Exploration of Natural Language Processing: Evolution, Applicatio...
 
Call Girls Goa (india) ☎️ +91-7426014248 Goa Call Girl
Call Girls Goa (india) ☎️ +91-7426014248 Goa Call GirlCall Girls Goa (india) ☎️ +91-7426014248 Goa Call Girl
Call Girls Goa (india) ☎️ +91-7426014248 Goa Call Girl
 
Update 40 models( Solar Cell ) in SPICE PARK(JUL2024)
Update 40 models( Solar Cell ) in SPICE PARK(JUL2024)Update 40 models( Solar Cell ) in SPICE PARK(JUL2024)
Update 40 models( Solar Cell ) in SPICE PARK(JUL2024)
 
SPICE PARK JUL2024 ( 6,866 SPICE Models )
SPICE PARK JUL2024 ( 6,866 SPICE Models )SPICE PARK JUL2024 ( 6,866 SPICE Models )
SPICE PARK JUL2024 ( 6,866 SPICE Models )
 
🚺ANJALI MEHTA High Profile Call Girls Ahmedabad 💯Call Us 🔝 9352988975 🔝💃Top C...
🚺ANJALI MEHTA High Profile Call Girls Ahmedabad 💯Call Us 🔝 9352988975 🔝💃Top C...🚺ANJALI MEHTA High Profile Call Girls Ahmedabad 💯Call Us 🔝 9352988975 🔝💃Top C...
🚺ANJALI MEHTA High Profile Call Girls Ahmedabad 💯Call Us 🔝 9352988975 🔝💃Top C...
 
Sri Guru Hargobind Ji - Bandi Chor Guru.pdf
Sri Guru Hargobind Ji - Bandi Chor Guru.pdfSri Guru Hargobind Ji - Bandi Chor Guru.pdf
Sri Guru Hargobind Ji - Bandi Chor Guru.pdf
 

Software Engineering Testing & Research

  • 1. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 1 Practical No. 01 Title: Cyclomatic complexity Aim: Explain how to determine and calculate cyclomatic complexity for a particular code. Theory: Program : Code for GCD computation by Euclid's method while (x != y) { if (x > y) x = x - y; else y = y - x; } return x; Determining McCabe's Cyclomatic Complexity Method #1 N = No. of nodes = 7 E = No. of edges = 8 V(G) = E - N + 2 = 8 - 7 + 2 = 3 Method #2 V(G) = Total no. of non overlapping areas + 1 = 2 + 1 = 3 Method #3 V(G) = Total no. of decision statements and loops + 1 = 1 + 1 + 1 = 3.
  • 2. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 2 Output : Conclusion: In this way we have studied the code to find cyclomatic complexity successfully.
  • 3. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 3 Practical No. 02 Title: SRS document in detail with Component of SRS Document Aim: Explain with example SRS document create for Banking System application based on User Login, Transactions, Fund transfer in an account. Tool Used: Theory: Definitions This document gives detailed functional and nonfunctional requirements for the bank management system. This product will support online banking transaction. The purpose of this document is that the requirements mentioned in it should be utilized by software developer to implement the system. 1. Purpose Online banking system is specifically developed for internet banking for Balance Enquiry, Funds Transfer to another account in the same bank, Request for cheque book/change of address/stop payment of cheques, Mini statements (Viewing Monthly and annual statements).The Traditional way of maintaining details of a user in a bank was to enter the details and record them. Every time the user needs to perform some transactions he has to go to bank and perform the necessary actions, which may not be so feasible all the time. It may be a hard-hitting task for the users and the bankers too. The project gives real life understanding of Internet banking and activities performed by various roles in the supply chain. In this document, automation for banking system is provided through Internet. Internet banking system project captures activities performed by different roles in real life banking which provides enhanced techniques for maintaining the required information up-to-date, which results in efficiency. The project gives real life understanding of Internet banking and activities performed by various roles in the supply chain.
  • 4. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 4 2. Scope The bank system will automate of banking transaction process. This Project investigates the entry threshold for providing a new transaction service channel via the real options approach, where the entry threshold is established by using an Internet banking system designed for the use of normal users(individuals), Industrialists, Entrepreneurs, Educational, Institutions (Financial sections), Organizations and Academicians under transaction rate uncertainty. 3. System Overview The system provides easy solution to banks. Overview: The SRS will include two sections, namely: Overall Description: This section will describe major components of the system, interconnections, and external interfaces. Specific Requirements: This section will describe the functions of actors, their roles in the system and the constraints faced by sys- tem. 4.General description Product Perspective: The client will have client interface in which he can interact with the banking sys- tem. It is a web based interface which will be the web page of the banking application. Starting a page is displayed asking the type of customer he is whether ordinary or a corporate customer. Then the page is redirected to login page where the user can enter the login details. If the login particulars are valid then the user is taken to a home page where he has the entire transaction list that he can perform with the bank. All the above activities come under the client interface. The administrator will have an administrative interface which is a GUI so that he can view the entire system. He will also have a login page where he can enter the login particulars so that he can perform all his actions. This administrative interface provides different environment such that he can maintain data- base & provide backups for the information in the database. He can register the users by providing them with username, password & by
  • 5. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 5 creating account in the database. User can view the cheque book request & perform action to issue the cheque books to the clients. Software Interface: Front End Client: The system is a web based application clients are requiring using modern web browser such as Mozilla Firefox 1.5, PHP. * Web Server: The web application will be hosted on one of the apache server. * Back End: backend as MY SQL. 6. Use Cases
  • 6. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 6 7. Functional requirements This section provides the functional overview of the product. The project will require the PHP as a front end and at the back end the database MYSQL will be running. Various functional modules that can be implemented by the product will be 1. Login 2. Validation 3. Get balance information 4. Withdrawal of money 5. Transfer Money 6. Customer info. 1. Login: Customer logins by entering customer name & a login pin. 2. Validation: When a customer enters the ATM card, its validity must be ensured. Then customer is allowed to enter the valid PIN. The validation can be for following conditions ------------------ATM PIN Validation for lost or stolen card When card is already reported as lost or stolen then the message “Lost/Stolen card!!!”. Validation for card’s expiry date If the card inserted by the customer has crossed the expiry date then the system will prompt “Expired Card”. Validation for PIN After validating the card, the validity of PIN must be ensured. If he/she fails to enter valid code for three times then the card will not be returned to him. That means the account can be locked. The counter for number of logins must be maintained Get balance information: This system must be networked to the bank’s computer. The updated
  • 7. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 7 database of every customer is maintained with bank. Hence the balance information of every account is available in the database and can be displayed to the customer. 3. Payment of Money: A customer is allowed to enter the amount which he/she wishes to withdraw. If the entered amount is less than the available balance and if after withdraw if the minimum required balance is maintained then allow the transaction. 4. Transfer of Money: The customer can deposit or transfer the desired amount of money. 5. Transaction Report: The bank statement showing credit and debit information of corresponding account must be printed by the machine. 8. Non-functional requirements Non-functional requirements are requirements that are not directly concerned with the specific functions delivered by the system. They may relate to emergent system properties such as reliability, response time and store occupancy. They may specify system performance, security, availability, and other emergent properties. Safety Requirements a. Backup, recovery & business continuity Banks should ensure adequate back up of data as may be required by their operations. Banks should also have, well documented and tested business continuity plans that address all aspects of the bank’s business b. Both data and software should be backed up periodically. c. An off-site back up is necessary for recovery from major failures / disasters to ensure business continuity. Conclusion: Thus, we have performed example of SRS document to create for banking system application (requirement based on user login, transaction, and fund transfer in an account.)
  • 8. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 8 Practical No. 03 Title: Bank transactions using Star UML. Aim: Create a State Diagram, Use-case diagram, Activity diagram for bank transactions using Star UML. Tool Used: Star UML 5.0 Theory: State diagram: A state diagram is a diagram used in computer science to describe the behavior of a system considering all the possible states of an object when an event occurs. This behavior is represented and analyzed in a series of events that occur in one or more possible states. Each diagram represents objects and tracks the various states of these objects throughout the system. There exist different types of state diagrams that have different semantics and are slightly different. State diagrams graphically represent finite state machines. They are only used to understand object behavior throughout the whole system. The elements that constitute a state diagram are rounded boxes representing the states and arrows showing transitions to the next state. The activity section depicts the activities the object performs while it is in that state. Every state diagram starts with an initial state, which is the state where the object is created. Right after the initial state, objects change their states, and the next state is determined by conditions based on activities. In some cases, state diagrams represent a super state, which is a condition created when many transitions lead to a particular state. The super state depicts that all states inside this diagram transition to a redundant state, making the diagram more complex. A transition in a state diagram is a progression from one state to another and is triggered by an event that is internal or external to the entity modeled. An action is an operation that is invoked by an entity that is modeled. A very traditional form of state diagram for a finite machine is a directed graph.
  • 9. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 9 Activity diagram Activity diagram is another important diagram in UML to describe the dynamic aspects of the system. Activity diagram is basically a flowchart to represent the flow from one activity to another activity. The activity can be described as an operation of the system. The control flow is drawn from one operation to another. This flow can be sequential, branched, or concurrent. Activity diagrams deal with all type of flow control by using different elements such as fork, join, etc. The purpose of an activity diagram can be described as −  Draw the activity flow of a system.  Describe the sequence from one activity to another.  Describe the parallel, branched and concurrent flow of the system. Use case diagram A use case diagram at its simplest is a representation of a user's interaction with the system that shows the relationship between the user and the different use cases in which the user is involved. A use case diagram can identify the different types of users of a system and the different use cases and will often be accompanied by other types of diagrams as well. While a use case itself might drill into a lot of detail about every possibility, a use-case diagram can help provide a higher-level view of the system. It has been said before that "Use case diagrams are the blueprints for your system". They provide the simplified and graphical representation of what the system must actually do. Due to their simplistic nature, use case diagrams can be a good communication tool for stakeholders. The drawings attempt to mimic the real world and provide a view for the stakeholder to understand how the system is going to be designed. Siau and Lee conducted research to determine if there was a valid situation for use case diagrams at all or if they were unnecessary. What was found was that the use case diagrams conveyed the intent of the system in a more simplified manner to stakeholders and that they were interpreted more completely than class diagrams. The purpose of the use case diagrams is simply to provide the high level view of the system and convey the requirements in layman's terms for the stakeholders. Additional diagrams and documentation can be used to provide a complete functional and technical view of the system.
  • 10. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 10 OUTPUT: Fig: State diagram of bank transaction
  • 11. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 11 Fig: Activity diagram of bank transaction Fig: Use case diagram of bank transaction Conclusion: Thus, We have performed State Diagram, Use-case diagram, Activity diagram for bank transactions using Star UML.
  • 12. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 12 Practical No. 04 Title: Basic path testing for ATM transaction module and its complexity. Aim: Create Basic path testing for ATM transaction module and find its complexity. Tool Used: Theory: Basis path testing: In the 1970’s, Thomas McCabe came up with the idea of using a vector space to carry out path testing. A vector space is a set of elements along with certain operations that can be performed upon these elements. Basis path testing is a white-box technique. Path testing is an approach to testing where you ensure that every path through a program has been executed at least once. Aim is to derive a logical complexity measure of a procedural design and use this as a guide for defining a basic set of execution paths. The basis path testing is same, but it is based on a White package Testing method, that defines test cases based on the flows or logical path that can be taken through the program. Basis path testing involves execution of all possible blocks in a program and achieves maximum path coverage with least number of test cases. It is a hybrid of branch testing and path testing methods. The objective behind basis path testing is that it defines the number of independent paths, thus the number of test cases needed can be defined explicitly (maximizes the coverage of each test case). Steps for Basis Path testing The method devised by McCabe to carry out basis path testing has four steps. These are  Draw a control graph (to determine different program paths)  Calculate Cyclomatic complexity (metrics to determine the number of independent paths)  Find a basis set of paths  Generate test cases to exercise each path Benefits of basis path testing  It helps to reduce the redundant tests  It focuses attention on program logic
  • 13. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 13  It helps facilitates analytical versus arbitrary case design  Test cases which exercise basis set will execute every statement in program at least once Essential Complexity. When carrying out his work on the basis path testing method, McCabe developed the notion of what is now known as essential complexity. This is the term given for using the cyclomatic complexity to produce a condensation graph; the result is a graph that can be used to assist in both programming and the testing procedure. The concept behind essential complexity is that the program graph of a piece of software is traversed until a structured programming construct is discovered; examples of these constructs are shown in Figure 1.8. Once located, the structured programming construct is collapsed into a single node and the graph traversal continues. The desired outcome of this procedure is to end up with a graph of V(G) = 1, that is, a program made up of one node. This will mean that the entire program is composed of structured programming constructs. If a graph cannot be reduced to one in which there is a cyclomatic complexity of 1, then it means that the program must contain an unstructured programming construct. The reason that these are not structured is because they contain three distinct paths. • The basic structured-constructs in a flow graph : Figure 1. Basic path Structured & Unstructured Constructs
  • 14. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 14 Program: import java.util.Scanner; public class ATM_Transaction { public static void main(String args[] ) { int balance = 5000, withdraw, deposit; Scanner s = new Scanner(System.in); while(true) { System.out.println("Automated Teller Machine"); System.out.println("Choose 1 for Withdraw"); System.out.println("Choose 2 for Deposit"); System.out.println("Choose 3 for Check Balance"); System.out.println("Choose 4 for EXIT"); System.out.print("Choose the operation you want to perform:"); int n = s.nextInt(); switch(n) { case 1: System.out.print("Enter money to be withdrawn:"); withdraw = s.nextInt(); if(balance >= withdraw) { balance = balance - withdraw; System.out.println("Please collect your money"); } else { System.out.println("Insufficient Balance");
  • 15. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 15 } System.out.println(""); break; case 2: System.out.print("Enter money to be deposited:"); deposit = s.nextInt(); balance = balance + deposit; System.out.println("Your Money has been successfully depsited"); System.out.println(""); break; case 3: System.out.println("Balance : "+balance); System.out.println(""); break; case 4: System.exit(0); } } } OUTPUT: $ javac ATM_Transaction.java $ java ATM_Transaction Automated Teller Machine Choose 1 for Withdraw Choose 2 for Deposit Choose 3 for Check Balance
  • 16. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 16 Choose 4 for EXIT Choose the operation you want to perform:1 Enter money to be withdrawn:2000 Please collect your money Automated Teller Machine Choose 1 for Withdraw Choose 2 for Deposit Choose 3 for Check Balance Choose 4 for EXIT Choose the operation you want to perform: 3 Balance: 3000 Automated Teller Machine Choose 1 for Withdraw Choose 2 for Deposit Choose 3 for Check Balance Choose 4 for EXIT Choose the operation you want to perform:4 Conclusion: Thus we have studied how to create basic path testing for ATM transaction module and about its complexity.
  • 17. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 17 Practical No. 05 Title: Test case design for bank transactions and ATM money/amount transfer. Aim: Create a Test Case design for Bank transactions such as Withdraw, Update, Delete and test cases for ATM Money/ Amount transfer. Tool Used: Star UML 5.0. Theory: A test case is a set of conditions or variables under which a tester will determine whether a system under test satisfies requirements or works correctly. The process of developing test cases can also help find problems in the requirements or design of an application. Possible test cases for a/c withdraw are: test case 1 : name of the a/c holder ( max and min character value) test case 2 : available balance test case 3 : max no of transactions ( withdrawals )on a particular day test case 4 : total amount drawn on a a particular against amount withdrawal limit For Load Test:
  • 18. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 18 For Stress Test: Possible test cases for a/c update are: condition 1: for deposite test case 1 : name of the a/c holder ( max and min character value) test case 2 : available balance test case 3 : deposite money in acc_no ( update )on a particular day test case 4 : total amount update on a a particular against amount deposite limit condition 2 : for withdrawls test case 5 : Successful entry of amount test case 6: max no of transactions ( withdrawals )on a particular day test case 7 : total amount update on a a particular against amount withdrawal limit condition 3: for money transfer test case 1: Successful insertion of card test case 2: Successful selection of languages test case 3 : Successful entry of PIN number test case 4 : Successful selection of Acct Type test case 5 : Successful Selection of transfer option
  • 19. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 19 test case 6 : Successful entry of amount test case 7 : Successful amount transfer Conclusion: Thus, We have designed test cases for bank transactions (1.Withdraw , 2. Update, and 3. Delete) and test cases for ATM money/amount transfer.
  • 20. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 20 Practical No. 06 Title: Test scenario for ATM transactions. Aim: To create test scenario for ATM transactions. Tool Used: Star UML5.0 Theory: A] Test Scenarios: 1. Verify the slot for ATM Card insertion is as per the specification 2. Verify that user is presented with options when card is inserted from proper side 3. Verify that no option to continue and enter credentials is displayed to user when card is inserted correctly 4. Verify that font of the text displayed in ATM screen is as per the specifications 5. Verify that touch of the ATM screen is smooth and operational 6. Verify that user is presented with option to choose language for further operations 7. Verify that user asked to enter pin number before displaying any card/bank account detail 8. Verify that there are limited number of attempts upto which user is allowed to enter pin code 9. Verify that if total number of incorrect pin attempts gets surpassed then user is not allowed to continue further- operations like blocking of card etc gets initiated 10. Verify that pin is encrypted and when entered 11. Verify that user is presented with different account type options like- saving, current etc 12. Verify that user is allowed to get account details like available balance 13. Verify that user same amount of money gets dispatched as entered by user for cash withdrawal
  • 21. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 21 14. Verify that user is only allowed to enter amount in multiples of denominations as per the specifications 15. Verify that user is prompted to enter the amount again in case amount entered is not as per the specification and proper message should be displayed for the same 16. Verify that user cannot fetch more amount than the total available balance 17. Verify that user is provided the option to print the transaction/enquiry 18. Verify that user user's session timeout is maintained and is as per the specifications 19. Verify that user is not allowed to exceed one transaction limit amount 20. Verify that user is not allowed to exceed one day transaction limit amount 21. Verify that user is allowed to do only one transaction per pin request 22. Verify that user is not allowed to proceed with expired ATM card 23. Verify that in case ATM machine runs out of money, proper message is displayed to user 24. Verify that in case sudden electricity loss in between the operation, the transaction is marked as null and amount is not withdrawn from user's account. Test cases For Atm B] Test cases : Positive Test Cases  Machine accepts card and PIN detail.  Machine successfully takes out the money.  Machine takes out the balance printout after the withdrawal.  Machine logs out of the client session immediately after withdrawal successfully.
  • 22. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 22  Machine prints out balance inquiry standalone as part of menu operation.  Machine generates invalid money error due to money asked larger than the savings account balance.  Machine checks for the idle time in between the client session and wait period while active in account.  Machine accepts both Visa and Mastercard credit and debit cards. Negative Test Cases  Machine does not accept card and PIN.  Machine finds wrong PIN.  Machine finds card insertion in wrong way.  Machine takes 3 invalid PIN attempt. Invalid account type selected in the menu.  Lack of money in the savings account.  Expired card inserted in the machine.  Money amount less than 100 entered in the machine.  Machine does not take out the money.  Machine can’t take out the balance after withdrawal.  Machine can’t log out of client session after withdrawal.  Machine doesn’t print the withdrawal amount.  Machine does not accept either Visa or mastercard or both debit/credit cards. C] ATM Testing : 1. Actors: 1.1 Bank Customer 1.2 Bank 2. Preconditions: There is an active network connection to the Bank. The ATM has cash available.
  • 23. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 23 3. Basic Flow: 1. The use case begins when Bank Customer inserts their Bank Card. 2. Use Case: Validate User is performed. 3. The ATM displays the different alternatives that are available on this unit. [See Supporting Requirement SR-xxx for list of alternatives]. In this case the Bank Customer always selects "Withdraw Cash". 4. The ATM prompts for an account. See Supporting Requirement SR-yyy for account types that shall be supported. 5. The Bank Customer selects an account. 6. The ATM prompts for an amount. 7. The Bank Customer enters an amount. 8. Card ID, PIN, amount and account is sent to Bank as a transaction. The Bank Consortium replies with a go/no go reply telling if the transaction is ok. 9. Then money is dispensed. 10. The Bank Card is returned. 11. The receipt is printed. 12. The use case ends successfully. 4. Exception : 4.1 Invalid User : If in step 2 of the basic flow Bank Customer the use case: Validate User does not complete this successfully, then 1. The use case ends with a failure condition. 4.2 Wrong account : If in step 8 of the basic flow the account selected by the Bank Customer is not associated with this bank card, then 1. The ATM shall display the message "Invalid Account – please try again". 2. The use case resumes at step 4. 4.3 Wrong amount : If in step 7 in the basic flow, the Bank Customer enters an amount that can't be 'created' with the kind of in the ATM (See Special Requirement WC-1 for valid amounts), then
  • 24. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 24 1. The ATM shall display a the message indicating that the amount must be a multiple of the bills on hand, and ask the Bank Customer to reenter the amount. 2. The use case resumes at step 7. 4.4 Amount Exceeds Withdrawal Limit : If in step 7 in the basic flow, the Bank Customer enters an amount that exceeds the withdrawal limit (See Special Requirement WC-2 for maximum amount), then 1. the ATM shall display a warning message, and ask the Bank Customer to reenter the amount 2. The use case resumes at step 7 4.5 Amount Exceeds Daily Withdrawal Limit : If in step 8 in the basic flow, the Bank response indicates the daily withdrawal limit has been exceeded (this is determined by the Bank and depends upon the specific account), then 1. The ATM shall display a warning message, and ask the Bank Customer to reenter the amount. 2. The use case resumes at step 7. 4.6 Insufficient Cash : If in step 7 in the basic flow, the Bank Customer enters an amount that exceeds the amount of cash available in the ATM, then 1. The ATM will display a warning message, and ask the Bank Customer to reenter the amount. 2. The use case resumes at step 7. 4.7 No Response from Bank : If in step 8 of the basic there is no response from the Bank within 3 seconds, then 1. The ATM will re-try, up to three times. 2. If there is still no response from the Bank, the ATM shall display the message "Network unavailable – try again later". 3. The ATM shall return the card. 4. The ATM shall indicate that it is "Closed". 5. The use case ends with a failure condition. 4.8 Money Not Removed : If in step 9 of the basic flow the money is not removed from the machine within 15 seconds, then 1. the ATM shall issue a warning sound and display the message "Please remove cash".
  • 25. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 25 2. If there is still no response from the Bank Customer within 15 seconds the ATM will re-tract the money and note the failure in the log. 3. the use case end with a failure condition. 4.9 Quit: If at point prior to step 8 in the basic flow the Bank Customer selects Quit, then 1. The ATM shall print a receipt indicating the transaction was cancelled. 2. The ATM shall return the card. 3. The use case ends. Conclusion: Thus, we have performed the test scenario of ATM machine.
  • 26. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 26 Practical No. 07 Title: Java code and study of Junit with unit testing, types of testing. Aim: Test a java code and study of Junit with unit testing, types of testing. Tool Used: Junit Theory: Cash Withdrawal function from an ATM which based on user specified amount dispenses bank notes. Ensure that the following is taken care of:  Minimum number of bank notes are dispensed  Availability of various denominations in the ATM is maintained  Code should be flexible to take care of any bank denominations as long as it is a multiple of 10  Code should support parallel withdrawals i.e. two or more customers can withdraw money simultaneously  Take care of exceptional situation Program: package com.assignment.atm; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("Enter Amount to be withdrawn: "); int amount = input.nextInt(); if(amount%10!=0){ System.out.println("Please enter the amount in multiples of 10"); } Else { ATM atm = new ATM(amount);
  • 27. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 27 ATM.calcTotalCorpus(); Thread t1 = new Thread(atm); t1.start(); /*ATM.calcTotalCorpus(); Thread t1 = new Thread(new ATM(1200)); Thread t2 = new Thread(new ATM(2400)); t1.start(); t2.start(); try{ t2.sleep(2000); } catch(Exception e){ } } } } Output: Conclusion: Thus, we have studied Junit with unit testing, types of testing.
  • 28. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 28 Practical No. 08 Title: Object Oriented Programming approach in UML using StarUML. Aim: Explain an Object oriented programming approach in UML using StarUML. Tool Used: StarUML5.0 Theory: We will use starUML to design a Pizza program. Perform the following steps to create the UML diagrams shown below. SU will generate code that reflects the class structure, but not the specific actions on any objects. For that, after creating the diagram using SU, you'll edit the resulting stub code to add the rest of the functionality to the code, filling in what each method should do. Figure 3.1: UML diagram for Pizza program Following are the steps to create class diagrams. 1. From the "File" menu, choose "Save", and select a location to save the project. Your StarUML project should now look something like this:
  • 29. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 29 Figure :StarUML project 2. Now to begin actually creating the diagram, from the "Toolbox" which starts by default on the left side of the screen, select the "Class" icon, and left-click somewhere on the diagram window. This should create a new class with a generic name. Rename the class to Circle by double clicking on the name. 3. Add an "Attribute" (or field) to Circle by right-clicking the object on the diagram, expanding the "Add" menu, and pressing the green "Attribute" button. Type in the desire name of the field, "_radius". o Specify the data type in the Properties panel (lower right side of window) by typing double in the "Type" slot. o Internal data of a class (field/attributes) are always private because they are strictly for personal use by the class to help it determine its behavior. o So, in the Properties panel for the _radius field, select PRIVATE for its Visibility.
  • 30. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 30 4. Repeat the same process to create a class called Rectangle with type double. You may notice using the "Model Explorer" on the right is faster to add these, but do however note that adding the classes and interfaces themselves in this toolbox (instead of using the toolbox on the left and clicking on the palette to create the object) will not create the objects in the diagram. If you choose to use the "Model Explorer", the area we will be interested in is visible after expanding the "Design Model”group. 4. Create an interface called I Shape o From the toolbox, choose "Interface" and click somewhere on the palette. Rename the generic name to I Shape. Select the interface by left-clicking the item after it is created. o On the top toolbar, select the dropdown "Stereotype Display" and change the value to "None". This will change the previous circular shape into a rectangular shape. o Also on the toolbar, de-select the "Suppress Operations" box. This will allow us to see what operations the interface has in the diagram view. Figure: Class diagram look like this in step4
  • 31. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 31 o Add a get Area method of type double to the I Shape interface.  This can be accomplished by right clicking the interface, expanding the add menu, and pressing the red "Operation" button. Enter the name as: get Area.  To set the return type, expand I Shape in the "Model Explorer", right click the get Area method you just created, and select "Add Parameter". In the "Properties" box, change the parameter’s name to nothing, "", change the "Direction Kind" to "RETURN", and change the "Type" to double. o On both the I Shape interface itself as well as its get Area method, check the Abstract box in the Property pane. This will make their titles appear as italics, as per the UML standard for interfaces and other purely abstract entities. 5. Make Circle and Rectangle implement I Shape by selecting the "Realization" arrow from the toolbox, clicking on Circle and dragging the line to I Shape. Repeat the same process for Rectangle. This is adding the relationship that Circle and Rectangle will implement the I Shape interface. o To make the connector line makes nice right-angle bends, right-click the line and select "Format/Line Style/Rectilinear". You can make your diagram look cleaner by simply laying arrowheads that point to the same place right on top of each other, making it it look as if there is only one arrowhead. 6. Since the Circle and Rectangle class both implement the I Shape interface, they must have the same behaviors (methods) as I Shape. o In the Model Explorer pane, copy the get Area method (Ctrl-C or right-click and select Copy) from I Shape to both Circle and Rectangle. o The implemented methods in the Circle and Rectangle classes are not abstract, but concrete because they actually perform some particular action (i.e. calculate the area for a circle and rectangle respectively). So, uncheck the Is Abstract box for those methods. 7. Your diagram should now look something like this:
  • 32. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 32 Figure: Class diagram look like this in step7 8. Add a class called Pizza. o Add a private _price field of type double. o Add a public get Price operation that returns type double. 9. To make Pizza reference an I Shape, select class Pizza. o Select the "Directed Association" arrow in the toolbox, click on Pizza, and drag to I Shape.  Now select the arrow, and in the "Properties" box on the right, change the name to "has-a", change "End1.Aggregation" to "AGGREGATE" (this is a formal diagrammatic statement that a pizza is made up, i.e. "aggregated", with another object, a shape object).  Change the "End2.Name" to _shape. This will automatically add a private field called _shape of type I Shape to Pizza.  Change the End2.Visibility to PRIVATE.
  • 33. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 33 o Create a "gettor" method (Routine) for _shape called get Shape that returns I Shape. That is, create an operation called get Shape that returns I Shape. o 10. Constructors are special pieces of code used to initialize an instance of a class when it comes into existence. o To add a constructor for Pizza, right click on Pizza, expand the "Add" menu, and select "Operation". From here, add a normal operation as usual, with input parameters double price and I Shape shape.  Adding an input parameter is just like adding an output parameter for the return type earlier, except you specify the desired parameter name, such as price and shape, and the appropriate data type. o Add a Circle constructor with parameter double radius. o Add a Rectangle constructor with parameters double width and double height. 11. Your diagram should now look something like this: Figure: Class diagram look like this in step4
  • 34. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 34 12. To illustrate one more type of UML class diagram feature, add another class to your diagram called "Test Pizza". This would be a class that uses the Pizza and I Shape-derived classes, say, for testing purposes. o Dependency lines help show relations between classes that occur more dynamically. For instance, one class may instantiate another class but not hold permanent a reference to it by using a field. Or a class's method may take another class as an input parameter, retaining a reference to it only for the duration of the execution of that method. o Add dependencies between different classes by selecting the "Dependency" arrow from the toolbox, selecting a dependent class, and dragging the arrow to the class it is dependent upon. In this example, Test Pizza "depends" on Pizza, Circle, and Rectangle because it instantiates them. o Enter a label for a dependency by changing the "Name" property in the Properties box or by double-clicking the dependency line. Typically when one class instantiates another class, we label the dependency line "instantiates" (surprise, surprise!). o You can move the label of the dependency line around to a more aesthetic location by selecting the label on the diagram and dragging it. o Dependencies have no effect on code generation. 13. Your diagram should now look like the diagram at the top of this web page. 14. Feel free to make other modifications to your diagram. You can drag your class diagrams around and bend the arrows in many different ways (to make the arrows rectilinear, select an arrow, right click it, expand format, expand Line Style, and select Rectilinear). You just have to experiment with the tool to get to know it. 15. In the File menu, select Save. SU uses a single project file for all the information, so you should have only 1 file generated currently. 16. It will be useful to export diagrams to other formats, such as images. You can do this by selecting "Export Diagram" on the File menu and choosing an appropriate file type. 17. To generate the Java stub cod: o Go to "Tools" on the main menu, expand "Java", and select "Generate Code".
  • 35. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 35 Figure 3.6: step to generate java code Output: Thus, we have implemented object oriented approach and generated java code using UML class diagram. Conclusion: Implementing Object Oriented Programming approach class diagram is observed and on the basis of it java code is generated successfully using star UML.
  • 36. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 36 PracticalNo. 09 Title: Comparison of automation testing tool. Aim: Compare automation testing tool such as Katalon Studio, TestComplete, and Neoload testing tool. Theory: The basic description of these three tools is given below: Katalon Studio: Katalon studio is an automated testing platform that offers a comprehensive set of features to implement full automated testing solutions for mobile and Web applications. Built on top of the open-source Selenium and Appium frameworks, Katalon Studio allows teams to get started with test automation quickly by reducing the effort and expertise required for learning and integrating these frameworks for automated testing needs. There is no one-size-fits-all tool for automated testing. It is highly recommended that testers evaluate various tools in order to select what would best meet their automated testing needs. Programming languages and technologies used to develop software continue to evolve, as do the automated testing tools, making cost a significant factor in tool selection. Commercial vendors often charge for tool upgrades, which can be substantial if your software uses emerging and frequently changing technologies. Open source and non-commercial tools, on the other hand, do not incur additional charges but require effort and expertise for integrating new upgrades. It is difficult to find the support and expertise needed for integrating various tools and frameworks into open-source solutions. Emerging tools that integrate with open-source frameworks, like Katalon, offer a viable alternative to both commercial and open-source automated testing solutions. Katalon Studio is a powerful automation solution to help address the challenge of lacking the integration among open-source test automation frameworks amid unaffordable commercial solutions. It offers a comprehensive and integrated set of features ranging from recording test steps, generating scripts to executing and reporting test results for Web and mobile apps test automation. Katalon Studio revolutionizes the use of open-source test automation frameworks
  • 37. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 37 such as Selenium and Appium by eliminating their technical complexities to allow testers to efficiently setup, create, run, report and manage their automated tests. It also offers a viable alternative to commercial test automation solutions that are unaffordable to many small and medium-sized teams. Testcomplete : TestComplete is an automated testing tool that lets you create, manage and run tests for any Windows, Web or Rich Client software. It makes it easy for anyone to create automated tests. And automated tests run faster, increase test coverage and lower costs. TestComplete's new script-free keyword testing, ease of use enhancements and centralized Start Page make learning automated testing a snap for new users. TestComplete's flexibility and extensive feature list ensure power users always have a solution to testing challenges. TestComplete is a must-have tool for QA teams that need to do more testing, keep up with rapid development schedules and still deliver software on time. TestComplete is a functional automated testing platform developed by SmartBear Software. TestComplete gives testers the ability to create automated tests for Microsoft Windows, Web, Android (operating system), and iOS applications. Tests can be recorded, scripted or manually created with keyword driven operations and used for automated playback and error logging. Neoload : NeoLoad is a very comprehensive tool if you are looking for a performance test tool for web applications and other applications using protocols like REST, SOAP, etc. The concepts are easy to understand and mostly clear. This enables you to develop very fast tests with a very good flexibility regarding the number of virtual users, the mixture of scripts, locations where load is generated or there is load variation. In consulting projects it is very helpful that project data and reports can be viewed by NeoLoad without the need of a license.
  • 38. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 38 NeoLoad supports performance test engineers with a strong feature set to analyse the results. The first metric you have in mind is response time of the application. The metric satisfies the stakeholder if it meets the requirements. Otherwise, the stakeholder wants to know some comments and suggestions for improvement. I rely on the data gathered by monitoring agents when I analyse test results. The monitoring agent is a service which collects different counters from an operating system, databases, web server, etc. The results can be analysed in individual composed graphs. This is a powerful feature to deliver conclusive reports to stakeholders. Even the export of reports in various formats is helpful for communication with different stakeholders. A usual performance test project starts with the development of tests and configuration of the test environment. Finally, there is a first test execution followed by a couple of additional test executions. Usually, it is hard to say how long it takes to implement the issues based on the test results. So we usually do not know how long is the period between first and last test execution. It does not matter how long the period might be. In most of our projects we prefer daily licenses of NeoLoad. If you buy e.g. a four-day license you can use NeoLoad at four different days. NeoLoad is just a performance test tool and the vendor Neotys is focused on this job. Whenever you would like to add something into a test scenario which is not mainly a performance issue you can integrate these parts by APIs which are easy to handle and very powerful. They also support you in case technologies which are not supported yet by NeoLoad. Maybe there is a new device which you want to monitor. Therefore you can report the measurements of the specific counters by the data exchange API during test execution. So you can analyse the data in the usual way. In our company we developed already a couple of features based on the APIs of NeoLoad and we are very happy with this flexibility.
  • 39. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 39 The comparison of the three tools is shown below in the following table : Features Katalon Studio Neoload TestComplete Test development platform Cross-platform Cross-platform Windows Application under test Web and mobile apps Web and mobile apps Windows desktop, Web, mobile apps Scripting languages Java/Groovy Javascript JavaScript, Python, VBScript, JScript, Delphi, C++ and C# Programming skills Not required. Recommended for advanced test scripts Not required. Recommended For advanced test scripts Not required. Recommended for advanced test scripts Learning curves Medium Medium Medium Ease of installation and use Easy to setup and run Easy to setup and run Easy to setup and run Script creation time Quick Quick Quick Object storage and maintenance Built-in object repository, XPath, object re- identification Built-in object repository Built-in object repository, detecting common objects Image-based testing Built-in support Built-in support Built-in support DevOps/ALM integrations Many Many Many Continuous Popular CI tools (e.g. Various tools Various CI tools (e.g.
  • 40. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 40 integrations Jenkins, Teamcity) Jenkins, HP Quality Center) Test Analytics Katalon Analytics Neotys No Product support Ticketing support, community, dedicated staff (third-party support services) Community Dedicated staff, community License type Freeware Proprietary Proprietary Cost Free Free trial copy License and maintenance fees Conclusion: In this way ,we have studied about the comparison of various automation testing tool such as Katalon Studio, TestComplete, and Neoload testing tool successfully.
  • 41. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 41 Practical No. 10 Title: Katalon Studio 5.3 with Working , Features, Advantages-Disadvantages Aim: Study of Katalon Studio 5.3 with Working , Features, Advantages-Disadvantages Tool Used: Katalon Studio 5.3 Theory: Katalon Studio 5.3 is a powerful automation tool is sent for web and mobile app testing.It is free yet feature-packed solution that can be applied to overcome common challenges such as wait- time, pop-up and iframe in web UI test automation. Katalon Studio 5.3 brings more intelligence to the entire test automation process; faster and launch high quality software through this user- friendly, versatile solution. Katalon Studio is a better solution than Selenium based open source frameworks. Working: Step #1: Create a new project Go to File -> New -> Create Project and enter the project name in the below window that shows up: You will now see that your project will open up and you will see the following items available in the Test Explorer:
  • 42. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 42 Step #2: Add objects to the repository There are many approaches you can take to creating your test case. Record your test or generate lines of code after adding the objects first. I am following the latter approach here. Here is what I need to do now: Spy my application and add objects. To do this, go to Object repository tab- and since I am working on a web application I will click on “Spy Web” option. The below Object Spy window opens up. Enter the starting URL and choose what browser it should open up in.
  • 43. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 43 Capture all the objects you need for the test by pressing “Alt+~” the objects will now show in the Object repository window under captured objects: When you have all the objects available, click on “Add to Object Repository” At the end of it, you should have all the objects you need for your test under the Object Repository in the folder structure of your choice: Now we are ready Step #3: Create test case Here is what I want my test case to do:
  • 44. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 44 1. Launch the site 2. Search for DVD 3. Click on “A bug’s life” DVD 4. Check if the price displayed is $35.99 This might not be a perfect test, but this will do for the demo purposes. So, let’s create the steps in Katalon. Navigate to the Test Cases node in the Test Explorer. Right click and ‘New ->Test Case’. Enter the test case name and a description below. I am going to call this “ViewProductPrice” test case. A brand new tabular format opens up: Step #4: Add test steps
  • 45. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 45 To add test steps, simply click on “Add” and on the newly inserted row click on the “item” column to add a keyword/method/action that you intend to perform. For example: The first thing I want to do is “Open Browser” and go to a certain URL. So, click on the following things to do the respective tasks: Item: To choose what to do Object: Where-on what object Input: What to supply to the step Output: Where to store the return value Similarly, keep adding all the steps. It is a good idea to add some description to each step as it will make more sense when you are re-reading the test. To do so, click on the description column and enter the description as below:
  • 46. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 46 This is how your test would appear: Step #5: Run your test To run your test, click on “Run” from the menu and alternately you can choose the browser you want this to run on.
  • 47. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 47 Once done, your test results will show as below:
  • 48. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 48 Step #6: Improve Now that you are done with your first test, here are a few next steps:  Create more tests, add them to the test suite and run them all at once  View test reports after test suite execution  Parameterize your tests  Include error handling, etc.  Create custom keywords/packages  Call tests and reuse code Features: 1) In-module help: When you click on the “?” in the test case module it takes you the help documentation page that shows information about the test case manual mode. Likewise, every module has a handy help for that portion of the tool in the form of the embedded help
  • 49. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 49 icon. 2) Content assist in the script mode: I seriously don’t know what I would do when the IDEs stop prompting me object names and method calls/syntaxes. :) 3) Renaming test execution reports: Unless we have the super human memory it is impossible to know which test ran at what time and what date- but imagine that is the only way to find your test results. Thankfully, with version 5.3 of Katalon, you can rename a test execution report to a more descriptive name. Advantages: 1) Easy to install. 2) Web, Mobile, and WebService testing- All in one 3) Completely free to use 4) Works for both technical and non-technical testers 5) Eliminates the complexity of setup and framework definition that tools such as Selenium pose 6) Brings the robust QTP-like UI/Object recognition to a free automation tool- You can add multiple properties to recognize an object and not have to choose/guess which locator works best. 7) Support data driving your tests inherently: Test data can be created in the tool itself or can be picked up externally from Excel sheets or database. 8) Integrates with requirement management and test management tools JIRA and qTest respectively. The integration is easy to establish with the help quick set up wizard. So, technical tool administrators are not necessary to make Katalon talk to the test management counterparts. 9) Run multiple tests at once as a Test Suite 14/15 10) Git integration for source code management and sharing 11) Robust debugging and reporting 12) Built-in error handling- No more try and catch blocks, no more complex functions to gracefully exit your failed script. Disadvantages: 1)The UI is at times a little clunky.
  • 50. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 50 2)If there is an error in the script mode, it does not let you navigate back to manual mode – I found this limiting at times. Conclusion: Thus we have studied Katalon Studio 5.3 with Working, Features, and Advantages- Disadvantages.
  • 51. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 51 Practical No: 11 Title: Web UI testing using Katalon Studio 5.3. Aim: To perform Web UI testing which generates test case using Katalon Studio 5.3 Tool Used: Katalon Studio 5.3 Theory: User Interface (UI) of any web applications is an important aspect. Hence UI testing is very helpful. They're usually on the top of the automated testing pyramid and thus automating UI test is the right step forward in QA automation. User interface testing, a testing technique used to identify the presence of defects is a product/software under test by using Graphical user interface. GUI Testing - Approaches:  Manual Based- Based on the domain and application knowledge of the tester.  Capture and Replay - Based on capture and replay of user actions.  Model-based testing - Based on the execution of user sessions based on a GUI model. Various GUI models are briefly discussed below. Follow these basic steps to get familiar with the Record & Playback features for WebUI Test: 1. Click on the New Test Case button on the main toolbar. Provide a name for your test case and click OK. An empty test case will be created.
  • 52. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 52 2. Click on Record from the main toolbar 3. The Record dialog is displayed.
  • 53. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 53 4. Click on the Record button to start recording test case 5. Execute all your test steps on the browser. All of your actions performed on the browser will be recorded by Katalon Studio 6. You can Stop or Pause recording if needed. When you are done with recording, click OK to save recorded actions into Katalon Studio
  • 54. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 54 7. You will be prompted to save captured objects into Object Repository of Katalon Studio. Click OK to continue
  • 55. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 55 8. Recorded objects and actions are saved in the test case as shown below. 9. Click on the Run button on the main Toolbar to execute the script. You can specify the target browser to run by selecting it from the drop-down list. Conclusion: Thus, we have performed UI testing which generates test case using Katalon Studio 5.3.
  • 56. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 56 PracticalNo. 12 Title: Web Service testing using Katalon Studio 5.3 .Aim: To perform Web Service testing using Katalon Studio 5.3 Theory: The basics of web service testing are given as follows: Web Service: Web Services is the mechanism or the medium of communication through which two applications / machines will exchange the data irrespective of their underline architecture and the technology. Web Service Needed: In general, software applications are developed to be consumed by the human beings, where a person sends a request to a software service which in-turn returns a response in human readable format. In the modern era of technology if you want to build a software application you don't need to build each and everything from scratch. There are lots of readymade services available which you can plug into your application and you can start providing those services in your application. Components of Web Services : The basic web services platform is XML + HTTP. All the standard web services work using the following components −  SOAP (Simple Object Access Protocol)  UDDI (Universal Description, Discovery and Integration)  WSDL (Web Services Description Language) All these components have been discussed in the Web Services Architecture . How Does a Web Service Work A web service enables communication among various applications by using open standards such as HTML, XML, WSDL, and SOAP. A web service takes the help of −
  • 57. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 57  XML to tag the data  SOAP to transfer a message  WSDL to describe the availability of service. You can build a Java-based web service on Solaris that is accessible from your Visual Basic program that runs on Windows. You can also use C# to build new web services on Windows that can be invoked from your web application that is based on JavaServer Pages (JSP) and runs on Linux. The web service performed by using the katalon studio is shown below : Next choose the web service option :
  • 58. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 58 A Web Service step is added to the test case. To send a request to Web Service, you need to use Send Request keyword. Select the Send Request keyword now.
  • 59. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 59 Double click on object cell to specify the web service object to Send Request. The output of Send Request keyword could be validated if needed using different Verify... keywords depending on your situation.
  • 60. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 60 You can use the Send Request keyword for Web Service object and the Verify... keywords to verify the web service response. You may want to refer to Handle Response messages for more details regarding Element Locator: Thus we test web services in the Katalon studio. Conclusion: In this way, we have successfully tested the web services in the Katalon studio.
  • 61. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 61 Practical No. 13 Title: API testing using Katalon Studio 5.3 Aim: To perform API testing using Katalon Studio 5.3 Tool Used: Katalon Studio 5.3 Theory: In computer programming, an application programming interface (API) is a set of subroutine definitions, protocols, and tools for building application software. In general terms, it is a set of clearly defined methods of communication between various software components. A good API makes it easier to develop a computer program by providing all the building blocks, which are then put together by the programmer. An API may be for a web-based system, operating system, database system, computer hardware or software library. An API specification can take many forms, but often includes specifications for routines, data structures, object classes, variables or remote calls. POSIX, Windows API and ASPI are examples of different forms of APIs. Documentation for the API is usually provided to facilitate usage. Uses: Libraries and frameworks An API is usually related to a software library. The API describes and prescribes the expected behavior (a specification) while the library is an actual implementation of this set of rules. A single API can have multiple implementations (or none, being abstract) in the form of different libraries that share the same programming interface. The separation of the API from its implementation can allow programs written in one language to use a library written in another. For example, because Scala and Java compile to compatible bytecode, Scala developers can take advantage of any Java API. API use can vary depending on the type of programming language involved. An API for a procedural language such as Lua could primarily consist of basic routines to execute code, manipulate data or handle errors, while an API for an object-oriented language such as Java would provide a specification of classes and their class methods.
  • 62. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 62 Language bindings are also APIs. By mapping the features and capabilities of one language to an interface implemented in another language, a language binding allows a library or service written in one language to be used when developing in another language. Tools such as SWIG and F2PY, a Fortran-to-Python interface generator, facilitate the creation of such interfaces.An API can also be related to a software framework: a framework can be based on several libraries implementing several APIs, but unlike the normal use of an API, the access to the behavior built into the framework is mediated by extending its content with new classes plugged into the framework itself. Moreover, the overall program flow of control can be out of the control of the caller and in the hands of the framework via inversion of control or a similar mechanism. Operating systems An API can specify the interface between an application and the operating system. POSIX, for example, specifies a set of common APIs that aim to enable an application written for a POSIX conformant operating system to be compiled for another POSIX conformant operating system. Linux and Berkeley Software Distribution are examples of operating systems that implement the POSIX APIs. Microsoft has shown a strong commitment to a backward-compatible API, particularly within their Windows API (Win32) library, so older applications may run on newer versions of Windows using an executable-specific setting called "Compatibility Mode". An API differs from an application binary interface (ABI) in that an API is source code based while an ABI is binary based. For instance, POSIX provides APIs, while the Linux Standard Base provides an ABI. Remote APIs Remote APIs allow developers to manipulate remote resources through protocols, specific standards for communication that allow different technologies to work together, regardless of language or platform. For example, the Java Database Connectivity API allows developers to query many different types of databases with the same set of functions, while the Java remote method invocation API uses the Java Remote Method Protocol to allow invocation of functions that operate remotely, but appear local to the developer. Therefore, remote APIs are useful in maintaining the object abstraction in object-oriented programming; a method call, executed
  • 63. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 63 locally on a proxy object, invokes the corresponding method on the remote object, using the remoting protocol, and acquires the result to be used locally as return value. A modification on the proxy object will also result in a corresponding modification on the remote object. Web APIs Web APIs are the defined interfaces through which interactions happen between an enterprise and applications that use its assets. An API approach is an architectural approach that revolves around providing programmable interfaces to a set of services to different applications serving different types of consumers.When used in the context of web development, an API is typically defined as a set of Hypertext Transfer Protocol (HTTP) request messages, along with a definition of the structure of response messages, which is usually in an Extensible Markup Language (XML) or JavaScript Object Notation (JSON) format. An example might be a shipping company API that can be added to an eCommerce-focused website, to facilitate ordering shipping services and automatically include current shipping rates, without the site developer having to enter the shipper's rate table into a web database. While "web API" historically has been virtually synonymous for web service, the recent trend (so-called Web 2.0) has been moving away from Simple Object Access Protocol (SOAP) based web services and service-oriented architecture (SOA) towards more direct representational state transfer (REST) style web resources web resources and resource-oriented architecture (ROA). Part of this trend is related to the Semantic Web movement toward Resource Description Framework (RDF), a concept to promote web- based ontology engineering technologies. Web APIs allow the combination of multiple APIs into new applications known as mashups. In the social media space, web APIs have allowed web communities to facilitate sharing content and data between communities and applications. Design The design of an API has significant impact on its usability. The principle of information hiding describes the role of programming interfaces as enabling modular programming by hiding the implementation details of the modules so that users of modules need not understand the complexities inside the modules. Thus, the design of an API attempts to provide only the tools a user would expec. The design of programming interfaces represents an important part of software architecture, the organization of a complex piece of software.
  • 64. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 64 Public API implications An important factor when an API becomes public is its interface stability. Changes by a developer to a part of it—for example adding new parameters to a function call—could break compatibility with clients that depend on that API.When parts of a publicly presented API are subject to change and thus not stable, such parts of a particular API should be explicitly documented as unstable. For example, in the Google Guava library the parts that are considered unstable, and that might change in the near future, are marked with the Java annotation . A public API can sometimes declare parts of itself as deprecated. This usually means that such part of an API should be considered candidates for being removed, or modified in a backward incompatible way. Therefore, deprecation allows developers to transition away from parts of the API that will be removed or unsupported in the future.API documentation describes what services an API offers and how to use those services, aiming to cover everything a client would need to know for practical purposes. Documentation is crucial for the development and maintenance of applications using the API. API documentation is traditionally found in documentation files but can also be found in social media such as blogs, forums, and Q&A websites. Traditional documentation files are often presented via a documentation system, such as Javadoc or Pydoc that has a consistent appearance and structure. However, the types of content included in the documentation differ from API to API. In the interest of clarity, API documentation may include a description of classes and methods in the API as well as "typical usage scenarios, code snippets, design rationales, performance discussions, and contracts", but implementation details of the API services themselves are usually omitted. Restrictions and limitations on how the API can be used are also covered by the documentation. For instance, documentation for an API function could note that its parameters cannot be null, that the function itself is not thread safe, or that a decrement and cancel protocol averts self-trading. Because API documentation tends to be comprehensive, it is a challenge for writers to keep the documentation updated and for users to read it carefully, potentially yielding bugs.
  • 65. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 65 Output: Conclusion: Thus we have performed API testing using Katalon Studio 5.3
  • 66. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 66 PracticalNo. 14 Title: Project Management and Issue Tracking Tool using Tuleap Aim: To study Project Management and Issue Tracking Tool using Tuleap ToolUsed: Tuleap Theory: Tuleap is a project management system for managing application lifecycles, Agile development and design projects, V-model, Requirement Management, IT Services Management, and so on. It is a libre and open-source project management system released under GPLv2 license. Tuleap is an enterprise alternative solution to proprietary tools like CollabNet, Jira and Confluence, Crucible. The software was developed by Enalean, a company founded in 2011 and headquartered in France. Tuleap is a software platform for project management that enables managers and developers to utilize diverse development methodologies including Agile, traditional, or hybrid or custom processes. It helps organizations meet industry standards like Capability Maturity Model Integration (CMMI) and ITIL. Tuleap facilitates the planning of software releases, the prioritization of business requirements, the assignment of tasks to project members, the monitoring of project progress, and the creation of reports. It features site-wide trackers and real- time reports on risks, requirements, tasks, bugs, change requests, support requests, user stories. It supports Kanban, Scrum, and hybrid methodologies in project management. Tuleap has a built-in risk management system. Tuleap integrates forge system functionalities that enables teams to manage software sources (using Subversion, Git or CVS); share technical or project documentations; track bugs; consolidate communications with customers, developers or third parties. Tuleap's kanban tool enables teams to create task boards on the fly. Scrum workspaces can also be created
  • 67. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 67 The basic window of Tuleap is shown below: Architecture of Tuleap : Tuleap is not a self-dependent tool. On the contrary, Tuleap’s underlying design – which is very plug-in oriented – provides the development team with the possibility to interact with other well- established free software tools such as Git and Gerrit. As an example, we can force Git commit messages to contain a reference to the related issues in Tuleap. Later, we can couple this functionality with Git to more easily browse and have a complete and customized tracking system. Tuleap is an open source tool embedded in a very dynamic and vibrant community of developers. For instance, just, Tuleap released a new version (9.3) with the first steps of the brand new query language for the tracking system. This will enable developers to make advanced searches within the Tuleap trackers as it supports the “AND”, “OR” and “()” characters. We’ll be able to get all the tickets matching with complex queries such as: These advantages of Tuleap have been clear from the onset to our Chief Technology Officer Jerome Oufella. He proposed adoption of Tuleap and explained his reasons. To be honest, when someone tries to implement a change so fundamental to a team’s work flow, some frictions are naturally expected. But, our past experiences have shown us that the flexibility level of team
  • 68. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 68 members slowly but steadily increases as they move along the learning curve. Indeed, there is always a price to pay for any change management. The basic software page of Tuleap is given below: Advantages of Tuleap: The user can develop easier:  Get one single platform to version, review, test, release and track changes.  Work collaborately with your teammates, wherever they are.  Stay in the loop with real-time dashboards and development activity feeds. The user can develop faster :
  • 69. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 69  Save time and improve efficiency avoiding manuel work and blurred organization.  Extend development workflows with issue management, code reviews and build automation.  Centrally manage all repositories and users groups from Tuleap. The user can develop even better :  Link automatically your code to tasks or issues, jobs and wiki pages.  Define and automate your own development workflow using Git, Jenkins, Gerrit.  Catch errors and regressions before they are deployed with regular code review. The user get real freedom :  Choose the source code management tool you are keen of : SVN, Git or CVS.  Use the Open APIs and write scripts to link Tuleap to other tools.  Leverage access to the all Tuleap source code. Really! The user can start in minutes :  Use ready-to-use tools templates for creating new workspaces in a few clicks  Configure your project workspaces and modify things to fit your way of working: tools you need, name and fields of your trackers, user roles, etc.). Disadvantages :  There are too many horizontal navigations.  Search options are not clearly visible.  Some actions take longer time to execute. Conclusion: In this way, we have studied the project management and issue tracking tool : tuleap successfully.
  • 70. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 70 Practical No: 15 Title: Open source testing tool (Test Complete). Aim: To Study of any open source testing tool (Test Complete). Tool Used: Test Complete. Theory: Test Complete is an automated testing tool that lets you create, manage and run tests for any Windows, Web or Rich Client software. It makes it easy for anyone to create automated tests. And automated tests run faster, increase test coverage and lower costs. Test Complete's new script-free keyword testing, ease of use enhancements and centralized Start Page make learning automated testing a snap for new users. Test Complete's flexibility and extensive feature list ensure power users always have a solution to testing challenges. TestComplete is a must-have tool for QA teams that need to do more testing, keep up with rapid development schedules and still deliver software on time. TestComplete is a functional automated testing platform developed by SmartBear Software. TestComplete gives testers the ability to create automated tests for Microsoft Windows, Web, Android (operating system), and iOS applications. Tests can be recorded, scripted or manually created with keyword driven operations and used for automated playback and error logging. TestComplete is broken out into three modules:  Desktop  Web  Mobile Each module contains functionality for creating automated tests on that specified platform. TestComplete is used for testing many different application types including Web, Windows, Android, iOS, WPF, HTML5, Flash, Flex, Silverlight, .NET, VCLand Java. It automates functional testing and back-end testing like database testing.
  • 71. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 71 Uses TestComplete is used to create and automate many different software test types. Record and playback test creation records a tester performing a manual test and allows it to be played back and maintained over and over again as an automated test. Recorded tests can be modified later by testers to create new tests or enhance existing tests with more use cases. Main Features  Keyword Testing: TestComplete has a built-in keyword-driven test editor that consists of keyword operations that correspond to automated testing actions.  Scripted Testing: TestComplete has a built-in code editor that helps testers write scripts manually. It also includes a set of special plug-ins that helps.  Test Record and Playback: TestComplete records the key actions necessary to replay the test and discards all unneeded actions.  Distributed Testing: TestComplete can run several automated tests across separate workstations or virtual machines.  Access to Methods and Properties of Internal Objects: TestComplete reads the names of the visible elements and many internal elements of Delphi, C++Builder, .NET, WPF, Java and Visual Basic applications and allows test scripts to access these values for verification or use in tests.  Bug Tracking Integration: TestComplete includes issue-tracking templates that can be used to create or modify items stored in issue-tracking systems. TestComplete currently supports Microsoft Visual Studio 2005, 2008, 2010 Team System, BugZilla, Jira and AutomatedQA AQdevTeam.  Data-driven testing: Data-driven testing with TestComplete means using a single test to verify many different test cases by driving the test with input and expected values from an external data source instead of using the same hard-coded values each time the test runs.  COM-based, Open Architecture: Test Complete's engine is based on an open API, COM interface. It is source-language independent, and can read debugger information and use it at runtime through the TestComplete Debug Info Agent.
  • 72. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 72  Test Visualizer – TestComplete automatically captures screenshots during test recording and playback. This enables quick comparisons between expected and actual screens during test.  Extensions and SDK - Everything visible in Test Complete — panels, project items, specific scripting objects, and others — are implemented as plug-ins. This plug-ins are included into the product and installed on your computer along with other Test Complete modules. You can create your own plug-ins that will extend Test Complete and provide specific functionality for your own needs. For example, you can create plug-ins or use third-party plug-ins for:  Support for custom controls  Custom keyword test operations  New scripting objects  Custom checkpoints  Commands for test result processing  Panels  Project items  Menu and toolbar items. Pros: 1)Ease of use - keyword test case 2)Highly configurable - scripted test cases 3)Lotsof online resources 4)DB access interface 5)Parameterize(Data Source) test data 6)Webservice interface albeit not easy to use 7)Modularize test suites by using test case reference functionality 8)Name mapping functionality 9)Test Log Results Cons:
  • 73. Software Engineering Testing & Research M.E (CSIT) Dept SGBAU AMRAVATI 73 1) Initial learning curve 2-4 weeks 2) Doesn't always capture time to load Would like to see a seamless integration between its sister application SoapUI Output: Fig: Test complete window Conclusion: Thus, we have studied open source tool using test complete.
  翻译: