Object Oriented Application Testing,
Internal Controls, Client Server
Testing, COTS Testing
Attribute Error
System Compatibility
Logical Errors
Network Issues
Datatype Value Error
Module Not Found
Error
Syntax Errors
Error Free
Software
OBJECT ORIENTED APPLICATION TESTING
TESTING OF INTERNAL CONTROLS
COTS TESTING
CLIENT SERVER TESTING
AGENDA
OBJECT ORIENTED APPLICATION TESTING
1
4
 The Large scale systems, object oriented
testing is needed.
 The concepts of object oriented
programming is way different from that of
conventional ones.
 The whole object oriented testing
revolves around the entity known as
“class”.
 With the help of “class” concept, larger
systems can be divided into small well
defined units which may then be
implemented separately.
 The object oriented testing can be
classified as like conventional
systems. These are called as the levels
for testing.
2
3
State model based
Testing
Use case based Testing
Class diagram based
Testing
Sequence diagram
Testing
This encompasses state coverage, state
transition coverage, and state transition
path coverage.
Each scenario in each use case is
tested.
Each class, derived class,
associations, and aggregations are
tested.The methods in the messages in
the sequence diagrams are tested.
GRAY BOX TESTING
Thread based Testing
Use based Testing
All classes that are needed to realize a
single use case in a subsystem are
integrated and tested.
The interfaces and services of the
modules at each level of hierarchy
are tested. Testing starts from the
individual classes to the small
modules comprising of classes,
gradually to larger modules, and
finally all the major subsystems.
TECHNIQUES FOR SUBSYSTEM TESTING
ALPHA Testing
BETA Testing
ACCEPTANCE Testing
This is carried out by the testing team
within the organization that develops
software.
This is carried out by select group of
co-operating customers
This is carried out by the customer
before accepting the deliverables.
CATEGORIES OF SYSTEM TESTING
class A:
def show(self,a):
print(a)
x=A()
x.show(3)
x.show(3.23)
x.show('Vignesh')
x.show(complex(3,4))
x.show(bin(9))
class Number:
def __init__(self):
no=None
def get(self):
self.no=int(input("Enter
No:"))
class Square(Number):
def __init__(self):
Number.__init__(self)
sq=None
def disp(self):
Number.get(self)
self.sq=self.no**2
print("Square:",self.sq)
a=Square()
a.disp()
Once a class is
tested
thoroughly
it can be
reused without
being
unit tested
again
Classes
obvious unit
choice, but
they can be
large in
some
applications
UML class state
charts can be of
good help
with selection of
test cases for
classes
Classes
easily mirror
units in
traditional
software
testing
Problems
dealing
with
polymorphi
sm and
inheritance
ADVANTAGES & DRAWBACKS OF OBJECT ORIENTED
TESTING
Inherent risk
and Inborn
Risk
Estimating
Likelihood
Impact
Qualitative
and
Quantitative
measure-
ments
Correlation
of Events
TESTING OF INTERNAL CONTROLS
TESTING OF TRANSACTION PROCESS CONTROL
1
2
3
4
5
6
Transaction
Origination
Transaction
Entry in the
System
Transaction
Communication Within/
Outside the System
Transaction
Processing by the
system
Transaction
Output
Storage &
Retrieval of Data
from the
Database
TESTING OF SECURITY CONTROL
Simplicity of Control and
Usage
Failure Safe
Controls
Open Design for
Controls
Separation of Privileges
of Users
Psychological
Acceptability of Controls
by Users
ATTRIBUTES OF SECURITY CONTROL
Layer Defense in System
and Compromise
COMMERCIAL OFF SHELF SOFTWARES
Microsoft Word
• For
Documents
Microsoft Excel
• For
Maintaining
the Records,
Calculations
Microsoft PowerPoint
• For
Presentations
Microsoft Access
• Database
CREDIT CARD
READER
RFID CARD
READER
PROCESSORS DESKTOPS
COMMERCIAL OFF THE SHELF HARDWARES
1
2
4
May not exactly meet the customers
expectations
May need change in business to suite COTS
organisation
3 BPR ,intentionally proven practices can be
implemented by COTS
COTS, need Configuration of software to
suite business model
COMMERCIAL OFF SHELF FEATURES
DECISION MAKING IN BUYING COTS
E
L
D
C
EXPERTISE/DOMAI
N KNOWLEDGE
LINE OF
BUSINESS
COST
BENEFIT
ANALYSIS
DELIVERY
SCHDULE
Uncertain Upgrade Schedules &
Quality
Varying Levels of Vendor Support
Difficulty in Regression Testing &
Test Automation
Interoperability Issues
Integration Issues
Compatibility Issues
Unknown Development
Processes & Methods
The Level of Quality is
Unknown
Lack of Functional and
Technical Requirements
COTS is a Black Box
CHALLENGES IN TESTING COTS
CLIENT SERVER TESTING
CLIENT SERVER
Request
Response
CLIENT SERVER TESTING APPROACH
1
2
3
4
Component Testing
Integration Testing
Performance Testing
Disaster Recovery and Business Continuity Testing
5 Concurrency Testing
6 Testing For Extended Periods
7 Compatibility Testing
import sqlite3
connection = sqlite3.connect("myTable.db")
# cursor
crsr = connection.cursor()
# SQL command to create a table in the database
sql_command = """CREATE TABLE IF NOT EXISTS
emp (
staff_number INTEGER PRIMARY KEY,
fname VARCHAR(20),
lname VARCHAR(30),
gender CHAR(1));"""
# execute the statement
crsr.execute(sql_command)
# SQL command to insert the data in the table
sql_command = """INSERT INTO emp VALUES (1,
"Sunder", "Pichchai", "M");"""
crsr.execute(sql_command)
# another SQL command to insert the data in the
table
sql_command = """INSERT INTO emp VALUES (2,
"Bill", "Gates", "M");"""
crsr.execute(sql_command)
connection.commit()
connection.close()
RATE US

Software Testing

  • 1.
    Object Oriented ApplicationTesting, Internal Controls, Client Server Testing, COTS Testing
  • 2.
    Attribute Error System Compatibility LogicalErrors Network Issues Datatype Value Error Module Not Found Error Syntax Errors Error Free Software
  • 3.
    OBJECT ORIENTED APPLICATIONTESTING TESTING OF INTERNAL CONTROLS COTS TESTING CLIENT SERVER TESTING AGENDA
  • 4.
    OBJECT ORIENTED APPLICATIONTESTING 1 4  The Large scale systems, object oriented testing is needed.  The concepts of object oriented programming is way different from that of conventional ones.  The whole object oriented testing revolves around the entity known as “class”.  With the help of “class” concept, larger systems can be divided into small well defined units which may then be implemented separately.  The object oriented testing can be classified as like conventional systems. These are called as the levels for testing. 2 3
  • 6.
    State model based Testing Usecase based Testing Class diagram based Testing Sequence diagram Testing This encompasses state coverage, state transition coverage, and state transition path coverage. Each scenario in each use case is tested. Each class, derived class, associations, and aggregations are tested.The methods in the messages in the sequence diagrams are tested. GRAY BOX TESTING
  • 7.
    Thread based Testing Usebased Testing All classes that are needed to realize a single use case in a subsystem are integrated and tested. The interfaces and services of the modules at each level of hierarchy are tested. Testing starts from the individual classes to the small modules comprising of classes, gradually to larger modules, and finally all the major subsystems. TECHNIQUES FOR SUBSYSTEM TESTING
  • 8.
    ALPHA Testing BETA Testing ACCEPTANCETesting This is carried out by the testing team within the organization that develops software. This is carried out by select group of co-operating customers This is carried out by the customer before accepting the deliverables. CATEGORIES OF SYSTEM TESTING
  • 9.
    class A: def show(self,a): print(a) x=A() x.show(3) x.show(3.23) x.show('Vignesh') x.show(complex(3,4)) x.show(bin(9)) classNumber: def __init__(self): no=None def get(self): self.no=int(input("Enter No:")) class Square(Number): def __init__(self): Number.__init__(self) sq=None def disp(self): Number.get(self) self.sq=self.no**2 print("Square:",self.sq) a=Square() a.disp()
  • 10.
    Once a classis tested thoroughly it can be reused without being unit tested again Classes obvious unit choice, but they can be large in some applications UML class state charts can be of good help with selection of test cases for classes Classes easily mirror units in traditional software testing Problems dealing with polymorphi sm and inheritance ADVANTAGES & DRAWBACKS OF OBJECT ORIENTED TESTING
  • 11.
  • 12.
    TESTING OF TRANSACTIONPROCESS CONTROL 1 2 3 4 5 6 Transaction Origination Transaction Entry in the System Transaction Communication Within/ Outside the System Transaction Processing by the system Transaction Output Storage & Retrieval of Data from the Database
  • 13.
  • 14.
    Simplicity of Controland Usage Failure Safe Controls Open Design for Controls Separation of Privileges of Users Psychological Acceptability of Controls by Users ATTRIBUTES OF SECURITY CONTROL Layer Defense in System and Compromise
  • 15.
    COMMERCIAL OFF SHELFSOFTWARES Microsoft Word • For Documents Microsoft Excel • For Maintaining the Records, Calculations Microsoft PowerPoint • For Presentations Microsoft Access • Database
  • 16.
    CREDIT CARD READER RFID CARD READER PROCESSORSDESKTOPS COMMERCIAL OFF THE SHELF HARDWARES
  • 17.
    1 2 4 May not exactlymeet the customers expectations May need change in business to suite COTS organisation 3 BPR ,intentionally proven practices can be implemented by COTS COTS, need Configuration of software to suite business model COMMERCIAL OFF SHELF FEATURES
  • 18.
    DECISION MAKING INBUYING COTS E L D C EXPERTISE/DOMAI N KNOWLEDGE LINE OF BUSINESS COST BENEFIT ANALYSIS DELIVERY SCHDULE
  • 20.
    Uncertain Upgrade Schedules& Quality Varying Levels of Vendor Support Difficulty in Regression Testing & Test Automation Interoperability Issues Integration Issues Compatibility Issues Unknown Development Processes & Methods The Level of Quality is Unknown Lack of Functional and Technical Requirements COTS is a Black Box CHALLENGES IN TESTING COTS
  • 21.
    CLIENT SERVER TESTING CLIENTSERVER Request Response
  • 22.
    CLIENT SERVER TESTINGAPPROACH 1 2 3 4 Component Testing Integration Testing Performance Testing Disaster Recovery and Business Continuity Testing 5 Concurrency Testing 6 Testing For Extended Periods 7 Compatibility Testing
  • 23.
    import sqlite3 connection =sqlite3.connect("myTable.db") # cursor crsr = connection.cursor() # SQL command to create a table in the database sql_command = """CREATE TABLE IF NOT EXISTS emp ( staff_number INTEGER PRIMARY KEY, fname VARCHAR(20), lname VARCHAR(30), gender CHAR(1));""" # execute the statement crsr.execute(sql_command) # SQL command to insert the data in the table sql_command = """INSERT INTO emp VALUES (1, "Sunder", "Pichchai", "M");""" crsr.execute(sql_command) # another SQL command to insert the data in the table sql_command = """INSERT INTO emp VALUES (2, "Bill", "Gates", "M");""" crsr.execute(sql_command) connection.commit() connection.close()
  • 24.