You are on page 1of 19

CHAPTER–1 INTRODUCTION

During last 25 years Software Testing become very significant, and received wider
interest. The applications are enormous. It is expected that the software should be
error free. Hence the testing quality should of highest possible level. It has become
a planned activity. There are systematic approaches and steps in software testing.
The customers expect scientific representation of testing by means of metrics or
other measured indices. It has been seen that software development as well as
software testing are done in a globally distributed fashion by utilizing the expertise
and talent available at various places in different countries as a global software
team. As the technology is advancing it is natural that software testing group will
exploit the new development in the testing culture. It is needless to state that the
topic software testing got the attention of researchers in Academic Institutions as
well as in the Software Industries. It is found that new concepts are utilized leading
to improved and widely acceptable software testing methods. One can define
Software Testing as a process to determine if there is any error in the software
developed in order to ensure its correctness and in order to provide a complete and
quality software to the customer. Hence testing is done to see (i) if all the
requirements are satisfied correctly (ii) to find out the defects in software (iii) for
improving quality and reliability and (iv) to verify the issues like compatibility and
inter-operability.

1.1

Software is becoming integral part of almost every system. We see household


gadgets, office, entertainment system, education, banking, health care system,
finance, accounting, military system, surveillance, transport, communication,
industry, and almost everything is now dependent on software. It is expected that
the systems /gadgets should be error free its quality of service and reliability. This
has resulted in the development of software testing. The aim is to determine
1
defects in software so that these are corrected before the software is delivered to
customer. It may be noted that it is not possible to have exhaustive testing. One
can determine the presence of defects and not the absence. Testing is done for the
entire life cycle of the software. Planning of testing is also important because a
defective testing will invite more problems. Hence one should find out what to test
and how to test. A good amount of literature and study materials are available [148,
41, 33, 126, 49, 90, 80, 81, 122, 11]. There are many interesting classified
literatures are also available. These provide the basics of common types of testing
like white box testing, black box testing, integration testing, performance testing, ad
hoc testing, system testing, acceptance testing, regression testing, specialized
testing like object oriented testing and accessibility testing, test management and
automation.
Although a lot of work has been done and good and systematic software testing
methods are available but there is need for novel methods in this area because (i)
all aspects of testing are not completely covered by the available methods (ii) new
an d emerging technology and new software require different testing methods (iii)
test management software requires quantifiable and continuous improvement (iv)
security aspects in software testing needs investigation and (v) many testing
methods are classified and not available to the general users. These aspects and
the difficulties faced during the professional career as software test engineer
motivated to pursue research work in some aspects of the development work of
software testing methods. The proposed work, as described in the next section, is
an attempt to achieve the said goal.

1.2

As mentioned in the previous section the software testing in a vast area and
significant research work in going on and is possible in many more aspects. In this
work same novel research work was done in the following five aspects.

2
1.2.1 Quality Management in Software Testing
Software plays a key role in all applications at present. Hence software testing has
become as essential component to determine accuracy, compactness, security and
completeness of software. Software testing methods take the help of quality model
to determine different errors. Quality Management is the structured approach to
planning and implementation of practices which assure quality to product or service
[82]. Hence proper planning and tracking with the help of various metrics are
essential tips in software testing. There are many methodologies for software
testing but systematic approach to make it more effective and adding quality to it is
required. Quality management system is an attempt in this direction for software so
that there is uniformity, un- ambiguity and reduction of vagueness. This will then
provide quality product in terms of reliability, efficiency, suitability, portability,
maintainability etc.

1.2.2 Client Relationship Management in Software Testing


In today‟s world, the client is not just a buyer. He/she is very knowledgeable. Hence
he/she demands products/services customized to his/her needs rather than any
generic product. Thus there is need to move from product centric (transaction
based) to customer centric (relationship based) transactions [27]. Today client is
the focus for all activities carried out. Client relationships management (CRM) is
needed for improving the customer satisfaction which will lead to increase in the
profit and will retain the client for a much longer period of time using formal and
informal feedback. CRM helps in software testing in three aspects namely (i) one
can determine effective tests so that testing effort is reduced. (ii) Client will consider
the project team as resource provider and trusted adviser rather than solution
provider (iii) there will be feeling in clients that client relation is enhanced without
much other strategy from their side.

1.2.3 Test Case Optimization in Software Testing


In software testing we try to caver all test scenarios and test cases to test an
application / product to achieve 100% test coverage. However, most of the time we
do not have the leisure time to test all the test cases [33]. In such cases, we have

3
to balance between the specified time and quality so that we achieve maximum test
coverage. This becomes a very big challenge for the Software Test Managers.
According to Gupta [72] managers adopt multiple strategies to optimize the testing
effort and achieve the right balance between cost, schedule and quality. Striking a
right balance decides the success or failure of any solution. A new method for this
type of optimization is the orthogonal array approach. This systematic approach
leads to generation of reduced number of test cases automatically thereby
increasing the efficiency.

1.2.4 Application Virtualization in Software Testing


Now a days software test engineers are encountering tremendous challenge of
application complexity increase without changing the application development
process at the same place. This leads to missed project deadlines and rise in costs
and in order to optimize the same there will be compromise on the quality.
Application Virtualization is the practice of simulating the behavior of an application
that interfaces with the application under test through a virtual image. Thus, if the
interfacing application in not available, we can use the virtual image to stand in for
the actual application [111]. In this manner we reduce the risk of environment
unavailability and hence provide development and testing teams the ability to
shorten release cycles, reduce risks and eliminate critical development and test
constraints allowing them to test more thoroughly the test life cycle end to end.

1.2.5 Contourlet and Wavelet based Watermarking with Potential for


Software Testing Application

Digital watermarking is now an established and cost effective method for data
authentication and for protection of multimedia data. Several standard and
commercially available soft-wares are available for this purpose. One such
standard method is the algorithm of Reddy and Chatterji [132, 133, 134]. This
method can be modified using discrete Contourlet transform in place of discrete
wavelet transform for the watermark signal because Contourlet has directionality
and anisotropy properties. Hence for smaller watermark image having directional
4
information and smooth contours, contour let transform in a logical choice. The
watermarking has tremendous potential for use in Software copyright protection,
software authenticity, indexing and din various stages of testing like white box
testing, black box testing, integration, performance testing, system testing,
acceptance testing and for determination of metrics.

1.2.6 Summary of Contributions

The work in this thesis dealt with five aspects of software testing applications.
Literature survey of these will be discussed in the next section 1.3. The main
contributions related to the five aspects are the following.
(1) Major issues in software testing like insufficient knowledge of quality
concepts, client expectations about various important factors not understood
in advance, effort overruns due to insufficient information about project
activities, strategies in project not aligned with the goal, project rework
because of insufficient knowledge of some team members are first
determined. To resolve these issues the needed tools and techniques are
found out using the test case preparation productivity (TCPD) and test case
execution productivity (TCEP) are determined as illustrated with case study.

(2) In software testing the importance and criticality of client relationship


management in the organizations perspective is highlighted. The various
issues faced in client relationship management are pointed out. The steps
taken to resolve these issues are determined. Finally the results and
improvements made have been show cased to the customer in terms of
customer‟s benefits in the relationship.

(3) A novel technique called orthogonal array approach for reducing the number
of test cases that needs to be tested for any given software has been
proposed. The algorithm improves the efficiency of testing. With this
technique a reduced number of test cases are generated automatically.
Fewer test cases reduce time consumption of the testing as a whole and
hence the cast of testing is also reduced. The details of the technique are
described along with case studies for illustration. Analysis graphs bring out
the advantages of the method very clearly.

(4) Application Virtualization (AV) has been used for providing development and
test teams with 24/7 environment availability without the need to depend on
back-end systems and data stores. This technique enables testing team with
5
the ability to test more thoroughly throughout the life cycle without worrying
about data and service availability. It also helps to shorten release cycles,
reduce risks and eliminate critical development and testing constraints by
virtualizing resources.

(5) A standard method of digital watermarking [132, 133] was modified using
Contourlet transform for the watermark signal. The watermark is usually a
small and simple image and has directional information with smooth
contours. Contourlet transform is better for such images because it
represents the information in less number of coefficients as compared to
wavelet transform. The method was applied to many different types of
images and watermarks. It was also used in characters and documents
successfully from where one can conclude that it has the potential for
software testing application for protection and security.

1.3

In this section we provide a brief survey of some important aspects of quality


management client relationship management test case optimization, application
virtualization and watermarking that are relevant to this thesis. In this thesis the
focus is in mainly on software testing. This is an important and established area of
work and has acquired wider horizon and significance. A good knowledge of
different aspects of software testing like principles of testing, white box testing,
black box testing, integration testing, system testing, acceptance testing,
performance testing, regression testing, ad hoc testing, object-oriented systems
testing, usability and accessibility testing, people and organizational issues in
testing , software test management, software test automation and software test
metrics and measurements are easily available in test books and papers [148, 41,
33, 90, 122, 11, 126, 49, 80, 81]. Standard testing tools are available in websites
[112, 48, 141]. However over the years customer and user's changing requirements
and demands/expectations have increased many times. There are many critical
applications and in many cases the demands / requirements is for the global use.
There is a lot of expectations for error free functioning of the software. Because of
these (1) quality management, (2) client relationship management and (3) test case
optimization are very important area of work. For the last few years there is rapidly
increasing use of computing in cloud environment because of sharing of computing
6
resources like network, storage, applications and services [53]. Due to this (4)
application virtualization was necessary and has become a reality now [75]. As we
are using a sharing environment even for testing (5) the security of testing is also
an important concept for software testing. Hence some of the relevant literatures on
the above five aspects for the purpose of software testing will be highlighted.

1.3.1 Quality Management

Quality management is in use in industrial systems for improving the level of


performance. This provides quality without forgetting time and cost. Hackman and
Wageman [74] have given the conceptual ideas of total quality management (TQM)
which came into existence from mid 1980s. They gave the empirical and practical
issues also. Waldman [157] expressed TQM as an integrated organizational
strategy for improving product and service quality. Hoang et al. [76] considered
TQM as a key strategic factor in achieving business success there by fixing it to
play an important role in the development of contemporary management. They
gave the TQM strategy and organizational characteristics (size, type of industry,
type of ownership and degree of innovation in a newly industrial country in South
East Asia (Vietnam)). Badri and Davis [12] did elaborate studies on measure of
critical factors for quality management. Critical factors for quality management are
very important. Black and Porter [36] have done considerable amount of work for
this purpose to identity the critical factors of TQM. Another very significant work is
by Motwani (119) where not only the critical factors were identified and measured
but also these were relate to the performance measures of TQM.
A good resource of TQM is the book written by Dean and
Evans [54] where we obtain not only the different aspects of TQM in a very
systematic manner but also in addition the organization of TQM and the various
strategies for TQM. We see a very good review work in [128] where Powell has
given empirical study for the TQM for competitive advantage. The comparative
analysis was also reported. Ahire et al. [3] also gave a good literature review of
TQM for the purpose of research in this topic. Grant et al. [71] have given review
work for the challenge of TQM in management and in practice. Singh and Smith

7
(144) in their empirical study has reported the relationship of TQM and innovation
and their review is for the improvement in manufacturing TQM and service quality.
Kumar et al. [96) explored the nature of research topics and methodologies
employed in the existing studies of quality management in research and
development. They discussed the effective management practices in pursuing
quality efforts in research and development. A very exhaustive literature review was
done by Sila and Ebrahimpour [143] where they have reported a complete
investigation of TQM using the research papers published during 1989 to 2000.
They have dealt with almost all aspects of TQM and advantages and applications.
One important aspect of TQM is the performance. Joiner [88]
has worked on the relationship between the extent of TQM implementation and
organization performance and the moderating effect of co-worker support and
organization support on the TQM / performance relationship. He found that there is
increasing recognition of the human factors in successful TQM implementation.
Allen and Brady [8] in their paper reported about organizational commitment,
perceived organizational support and inter organizational communication in TQM.
Montes et al. [117] discussed the relationship between TQM and organizational
performance and talked about the factors that affect the relationship. Sadikglu [138]
has reported about context and performance of TQM. His discussion in focused on
work performance and job performance. Another work on performance in by
Terziovski and Samson [155] where a detail discussions on link between TQM
practice and organizational performance was done.
Another area of TQM work was on implementation. Here the quality management is
used for meeting owner's requirements or compliance with set of standards and
specifications. Douglas and Judge [61] reported the total quality management
implementation and the competitive advantage. They talked about structural control
and exploration. Mann and Kehoe [110] also discussed the implementation
aspects. They reported the factors affecting the implementation and success of
TQM. Al-Ani and Al-Adhmawi [6] considered managing engineering project site and
reported that the responsibility of achieving applications of quality management
concepts shall be borne by the construction management and its personnel. This
way there will be improvements in the quality of construction works.

8
Another important area of work of TQM is the system development and case
studies. A good work on system development and case study was done by Yeung
and Chan [167]. Ahire et al. [2] reported the development and validation of TQM
implementation constructs. Ahire and Golhar [1] discussed the quality management
in large verses small firms. Feng et al. [67] in their case study reported the impact
of TQM practices on performance. In their study they have done comparative study
of Australian and Singaporean organizations. Sureshchander et al. [151] in their
case study reported the conceptual model for TQM in service organizations.
Terjivaski and Samson [155] in their case study discussed about the effect of
company size on the relationship between TQM strategy and organizational
performance. Joseph et al. [89] reported the case studies in manufacturing-based
business units in India. The talked about instrument for measuring total quality
management implementation in such business units.
Quality management in software testing was reported by Banerji and Kar [14, 20,
24]. In their work an attempt was made to discuss major issues in software testing
like insufficient knowledge of quality concepts, clients expectations about various
important factors not understood in advance, effort over runs due to insufficient
information about project activities, strategies in project not aligned with the goal,
project rework because of insufficient knowledge of some of the team members. To
resolve these issues there is need to use several tools and techniques. Case study
was reported for illustration and to show advantages.

1.3.2 Client Relationship Management

Client relationship management is very important now-a-days. For the organization


it is necessary to maintain good relations with clients. In fact for products in general
and computer software in particular we are doing the customer centric, i.e.,
relationship based transactions in addition to product centric transactions [27].
Client relationship management (CRM) is now needed to maintain good
relationship with client and focus client in all activities [82]. Client now expect
certain attributes from the developer for innovation, customization and flexibility.
Sharp [142] has given business strategies for maximizing profit, revenue and

9
customer satisfaction. This handbook gives the details of CRM implementation
aspects so that the process becomes customer centric. Bligh [37] in his book has
given details of CRM strategies. To achieve the long term value of CRM,
enterprises must understand that it is a strategy involving the whole business and
thus it should be approached at an enterprise level. Some important links where
one can get some details of CRM are [50, 63, 83].
Hoyle [77] discussed about implementation of CRM. He found out that not
all CRM implementations are successful. He used a systematic model using
business engineering approach to review CRM of organizations. Sobel [145]
discussed the aspirations setting, relationship strategy, team leadership, client
leadership, ambassadorship, entrepreneurship, commercial management and
quality. Gibson [70] has identified ten relationship skills for the CRM. Howard [78]
described CRM and presented the role, skills, requirements, plan, workflow, client
relationships, focused activities and reviews in this connection. Aidanye [5] gave
the latest techniques in CRM in his paper Advanced Client Relationship Skills. The
CRM skill`s training is available in [51]. Six tips for building lasting relationship with
clients is given in freshbooks [154] - These are plan, communicate, share, network
manage time, meet deadline and honesty. Eccles [20] has given methods for
building and maintaining the client relationship. Lasalle [101] addressed the
objectives, implementation and governance of next generation client relationship
management programs. The model described in the paper is for skillful planning of
real estate assets, improved capital utilization and better portfolio - related
decisions through enhanced strategic dialogue with business leaders.
Banerji and Kar [15, 20, 25] described client relationship management as
moving from a service provider to a trusted partner. They have used client
relationship management in software testing and highlighted the importance and
criticality of CRM in the organizations perspective. They discussed the various
issues faced in client relationship management and the steps taken to resolve the
issues. Test case results and improvements ware showcased to the customer in
terms of customer‟s benefits in the relationship.

10
1.3.3 Test Case Optimization

In software testing we try to cover all test scenarios and test cases to test an
application/ product to achieve 100% test coverage. But most of the times we do
not have the leisure of time to test all the test cases [33]. It is a fact that if test
cases are efficient at a given time we can do more testing and that will provide
more confidence in the software testing. But finding the best test cases for testing
can be very much labor intensive and expensive. Software testing has now become
very complex and challenging task. For this a proper strategy is needed. This
constitutes test planning, test case design, test case execution and test result data
collection and evaluation [104]. According to Gupta [72] managers adopt multiple
strategies to optimize the testing effort and achieve the right balance between the
cost, schedule and quality. Striking a right balance decides the success or failure of
any software solution. As the time required for testing in always at a premium, the
need for having an optimized testing process is therefore very essential [73]. Zhang
et al. [170] described a method for optimization of test suite based on testing
requirement reduction. Yoo and Harman [166] used a hybrid algorithm for efficient
multi- objective test suite minimization. Zhong et al. [171] did an experimental study
of four typical test suite reduction techniques. Zhang et al. [169] presented a time -
aware test case prioritization using integer linear programming. Zhongsheng [172]
in his paper used test case generation and optimization for web application testing.
His approach was reducing and optimizing the test cases generated from user
traces. He used genetic algorithm for optimization. Tian et al. [151] presented a
work on test case generation and its optimization methods using orthogonal test
method and greedy algorithm which was then applied to practical engineering tests.
We find that various soft computing methods were exhaustively used by
several researchers for optimization of test cases. Kumar et al. [95] gave a critical
review comparison of these soft computing methods using parameters like defect
detecting capability cost, effort, coverage ability of requirements and the quality of
results. Sthamer [150] described the use of genetic algorithm for automatic test
data generation. Baudry et al. [30, 32] described a bacteriological algorithm for
automatic test case generation and for optimization of test cases. Baudry et al. [31]

11
used genetic algorithm for automatic test cases optimization in the NET
environment. They evaluated the quality of test cases with mutation analysis. Faulty
components were systematically generated to check the proportion of mutation
detected (killed) by the test cases. They described the model in case studies. Mala
et al. [107] described a hybrid optimization method by using local search technique
along with genetic algorithm. Their method finds out effective test cases having
higher mutation score and path coverage from a large number of test cases.
Remove top and local best are the two improvement heuristics included in their
algorithm. Khor and Grogono [92] used a formal concept analysis with genetic
algorithm for automatic generation of branch coverage of test data. Ahmed and
Harmadi [4] described algorithms for multiple path test data generation using
genetic algorithm. Srivantava et al. [149] presented genetic algorithm based
algorithms for feasible test data generation. Jia et al.[87 ] discussed same
experimental analysis for automatic test data generation using genetic algorithm.
Srikanth et al. [147] used artificial bee colony algorithm for test case optimization in
software testing. They used the intelligent behavior of honey bee for determining
optimal number of test cases. Their method guarantees full path coverage, has
self- organization and robustness and focusses on path generation derived from
cyclomatic complexities. Mala and Mohan [106] also gave non-pheromone -based
test suite optimization method using the concept of artificial bee colony optimization
(ABC) which utilizes the intelligent behavior of honey bees. Their method requires
fewer iterations, is more scalable (requires less computation) and achieves near
global optimization. Mala and Mohan [108] presented a hybrid genetic algorithm
using genetic algorithm and local search techniques. Their method provides less
number of test cases because it has improved test cases dusting solution
generation. Rai and Tyagi [129] proposed a regression test case optimization
method using honey bee mating optimization and fuzzy rule base. This reduces the
size of test suite by selecting the test cases from the existing test suite.
Gupta [71] mentioned the importance of techniques of identifying test cases
but the development of the techniques are difficult. Banerji and Kar [16, 18, 21, 24]
have given a novel and completely different approach for optimizing the testing
efforts. They have proposed a technique called orthogonal array approach for

12
reducing test cases that have to be tested. Their approach utilizes the advantage of
regression testing where fewer test cases would reduce time consumption of the
testing as a whole. Hence the cost of testing will be less.

1.3.4 Application Virtualization

According to Wikipedia in internet, application virtualization is considered as a


software which encapsulates application software from the underling operating
system on which it is execute. A fully virtualized application is not installed in the
traditional sense, although it is still executed as if it were. We find service
virtualization, test environment virtualization, application behavior virtualization and
data base virtualization. Michelson [114] described the need and the methods of
service virtualization. In our day to day work we often face situations that hinder our
ability to deliver at the right time with the estimated cost as agreed upon by the
customer. The reasons of the same may be many. One major reason is the
constraints in the development and test environment. Organizations are constantly
working to reduce costs and improve quality while adopting to new technologies
and practices. Application virtualization is the practice of simulating the behavior of
an application that interfaces with application under test through a virtual image.
Thus, if the interfacing application is not available we can use the virtual image to
stand in for actual application [111]. This helps us to reduce the risk of environment
availability and hence provide the development and testing teams the ability to
shorten release cycles, reduce risks and eliminate critical development and teat
constraints allowing them test more thoroughly covering the test life cycles end to
end. Hattangadi [75] discussed this type of service virtualization for modern
applications. White [161] discussed about the application behavior virtualization.
Virtual environment can be dynamically provisioned, allowing high capacity and
scalability testing scenarios. Virtualization also helps to reduce infrastructure
requirements because the virtualized services run in a reduced foot print. The IBM
cloud can be leveraged to minimize infrastructure set –up time and provide scalable
on-demand infrastructure (IBM). Virtualization allows testing of integration and
complex scenarios much earlier in the test cycle and also drive automation of test

13
cases. Wayne [162] has talked about data base virtualization during development
and during testing. Michelson [115] has discussed SOA and virtualization. Virtual
service environment is created using the tool “ITKO LISA virtualize” and storing the
model behavior and data of the dependent system. These images stand in for the
actual interfaces when they are not available. Wayne [161] described this next
generation of test management and mentioned that application virtualization can be
fully integrated with over all development cycle deriving benefits across the entire
application development and test life cycle. IBM white paper [79] gave the
advantages of application virtualization and the uses. It mentions about application
isolation and control. Bjork [35] has given three isolation modes of application
virtualization namely merged mode, write copy mode and full mode. Andrus et al.
[9] described a virtual mobile architecture which they called cells. Chen et al. [43]
described a virtualization based approach to retro filling in commodity operating
system which they called Overshadow. Laaden and Nich [100] talked about
operating system virtualization. But IBM white paper [78] says that application
virtualization is different from operating system virtualization because here we
capture the application requirements and that is encapsulated into a portable
package of container. Fernandez et al. [68] talked about Anception which is the
application virtualization framework for Android. In this way it is possible consider
many types of malware threat and support the unmodified Android applications.
Interra (84) gave a white paper where application virtualization is a process by
which an ordinary application believes that it is directly interfacing with operating
system and all resources are managed by it whereas the reality is different.
SafeNet [139) white paper gives the details of virtualization, its advantages and
tells why it is a hot topic in the area of software licensing. Microsoft application
virtualization (116) transforms applications into centrally managed services that
don't conflict with other application. Here “IT professionals and end users alike face
challenges in today‟s flexible work environment. End users speak many languages
and are geographically dispersed, use multiple devices and may not be connected
to the corporate networks at all times. IT must meet the needs of the users and
provide access to their business critical applications that are fast, flexible and
reliable”. To meet these challenges application virtualization is used. Citrix (46)

14
gave CitrixXen App. This has application virtualization and session virtualization
technology and provides on-demand solution. Novell (124) gave NovellZen works
application virtualization. With this during big migrations the users have easy
access to application. Cameyo (42) gave application virtualization as a single EXE
files in which files, DLLs and registry can be brought and this can be communicated
from computer to computer. Application virtualization works are also available in
CA.in, Evalage, Smack down- PQR, Radware Glossary and other similar
organization in their websites.
Banerji and Kar (19, 22, 25) used application virtualization for
software testing particularly for accelerating the testing process. In their method the
application virtualization provides the development and test teams with 24/7
environment availability without the need to depend on back-end systems and data
stores. Thus this technique enables testing teams with the ability to test more
thoroughly throughout the lifecycle without worrying about the data or service
availability. It also helps to shorten release cycles, reduce risks and eliminate
critical development and testing constraints by virtualizing resources.

1.3.5 Watermarking using combined Wavelet and Contourlet


Transform

Watermark is a small and usually invisible signal which is inserted into a host image
or signal so that it will always be there in the image or signal and can be detected
whenever necessary. Sometimes the watermark is logo or sometimes it can be
biometric signal (82). Watermarking is used for the purpose of security and it got
importance because the watermark signal is usually not removed during signal and
image processing operations well as during transmission, reception, storage and
other operations. This concept has been in use for a very long time for providing
visual marks in papers and currency notes [137]. Now-a-day this is used to provide
invisible impressions in multimedia data. This has several applications like
copyright infringement, copy protection, tamper detection etc. [38, 105].
Commercial digital watermarking products [56] are available now. There are two
broad classifications of the watermarking methods namely spatial domain methods
15
and transform domain methods. Spatial domain methods [102, 121, 123] are
simpler and require less computation time. On the other hand transform domain
methods are more robust. Here signal is inserted in the transform domain and after
that inverse transform operation is performed. This process makes the watermark
signal to distribute all over the host data. Thus attackers find it difficult to know,
alter or remove the watermark. Also it is possible to determine perceptually
significant bands of the host signal where watermark insertion will be better.
Different transforms were used for watermarking. Earlier works used discrete
Fourier transforms [146,125, 130]. Discrete cosine transform was used by Chu [45],
Barni et al. [29], Lin et al. [103] and others. However during the last fifteen years
discrete wavelet transform became popular and was widely used [55, 113, 160].
Amongst the robust techniques of watermarking we find several spread spectrum
based methods. Kuttur and Winkler [97] gave a spatial domain spread spectrum
based method of watermarking. Dugad et al. [60] described a discrete wavelet
transform domain method using spread spectrum technique. Barni et al. [28] gave a
wavelet domain spread spectrum based method. They found the visual marks in
wavelet domain and watermark signal is embedded in the high frequency sub
bands using the visual marks. Malvar and Folercio [109] described an improved
spread spectrum technique in wavelet domain using a new modulation technique.
Moulin and Ivanovic[(120] presented spread spectrum technique in wavelet domain
using game-theoretic approach.
One can see another type of approach which can be broadly classified as
quantization based method. Tanaka et al. [152] proposed a method where the
coefficients in the wavelet domain are quantized based on a masking threshold and
then these are modified on the basis of watermark signal bits. Chen and Lin [44]
gave a mean quantization based method where they used the average of a group
of wavelet coefficients to represent one bit of watermark information. They
embedded two identical watermarks in low and high frequency sub bands. Wang
and Lin [159] described a method of insertion of watermark by quantizing a wavelet
tree. Wavelet coefficients are arranged in groups called super tree and watermark
bits are embedded using two super trees. Using quantization index in one of the
super tree is quantized. The two super trees show a large statistical difference

16
which is utilized during detection of watermarks. Another approach was the
insertion of binary watermark in the wavelet domain [98, 99]. Logo (gray scale and
color) was used by Reddy and Chatterji [132, 133, 134, 135] for watermarking in
the wavelet domain. The method described in chapter 6 is a modification of this
method. Reddy and Chatterji exploited the human visual characteristics [28,165] in
their method.
As the modification of the logo watermarking method described in chapter 6 utilizes
Contourlet transform a brief review of the literatures of this topic in worth reporting.
Contourlet transform can be seen as directional extension of 2-D wavelet
transform. This extension captures curves in place of points and possesses
directionality and anisotropy properties. Hence this transform is best suited for the
images having high edge, curve and contour contents. This transform was
introduced and implemented by Do and Vitterli [57, 58]. In this transform using a
Laplacian pyramid multi scale decomposition is done. This is followed by a
directional decomposition using a directional filter bank. Po and Do [127] give the
directional multi scale modelling of images using contourlet transform. Cunha et al.
[52] give the concept of non-subsampled Contourlet transform and discussed its
theory, design and applications Do [59] has given the Contourlet toolbox which is
available in internet. Ansua and Veerswamy [10] used this transform for digital
image compression [156, 64]. Riazifar and Yazdi [136] used this transform for
compression of medical image and gave a comparison with wavelet transform for
the same purpose. Rao et al. [131] used Contourlet transform for content based
image retrieval (CBIR) and has shown that this gives higher retrieval rate and less
computational complexity. Borde and Bhosle [39] also used this transform for CBIR
and reported that this provide best results in image retrieval. Wang et al. [158] did
image denoising using SVM classification in non-subsampled contourlet transform
domain. Eslami and Radha [65] gave the concept of translation-invariant Contourlet
transform and used this for image denoising. Satheesh and Prasad [140] described
an adaptive threshold based Contourlet transform for magnetic resonance medical
image. Bindu and Prasad [34] used subsampled Contourlet transform for an
automatic scheme of segmentation of medical images. Al-Azzawi and Abdallah [7]
used Contourlet transform for medical image fusion. Katsigianmis et al. [91] gave

17
an algorithm using Contourlet transform for real time video encoding. Fakhlai et al.
[66] used Contourlet transform for offline signature recognition and pointed out the
advantage over other methods. Contourlet transform, because of its directionality
and anisotropy properties, will be used in many other applications in future.

1.4

The thesis is organized into seven chapters. In the introduction chapter, in addition
to problem formulation and summary of contributions, a brief review of the
literatures of related works has been discussed. As the next five chapters discuss
total quality management, client relationship management, test case optimization,
application virtualization and watermarking from the point of view of software
testing, a brief review of the literatures in these areas was done in the previous
subsection 1.3. Here a gist of 172 works are given which helps in understanding
the concepts discussed in the subsequent chapters. In chapter 2 the need of quality
management in software testing has been discussed. Quality models and its
attributes like functionality, usability, reliability, maintainability, portability and
efficiency are then brought out. Quality management has important activities like
planning, implementation and control which are described. The quality
management issues are then pointed out. The quality test tools are then described.
The concepts are illustrated with the help of case studies. The findings of this work
has been presented in [14] and published in [20, 24].
Chapter 3 discusses client relationship management in software testing.
What is client relationship management and why it is needed has been pointed.
The major client relationship management issues are then pointed out. The various
steps like (a) re-usability of common library module and test cases (b) process
improvements and (c) knowledge management initiatives are then discussed along
with the benefits to client. Case studies to illustrate all these are then described.
The findings of this work has been presented in (15) and published in (20, 25).
For improving efficiency of software testing, test case optimization is one of the
important work. A novel method called orthogonal array approach for this purpose
has been described in chapter 4. The need for optimization is first given. Then the
18
details of the orthogonal array approach for optimization has been presented. The
method is illustrated with the help of case studies and benefits obtained are found
out. The finding of this work was presented in (16,18) and published in (21, 24).
Chapter 5 deals with application virtualization as test accelerator. What is
application virtualization is first pointed out. Its need in software testing is then
discussed. The application virtualization phases are then described. The method
for application virtualization has been discussed in detail. Case studies are then
presented to illustrate the approaches and the benefits obtained are pointed out.
The finding of the work was presented in (19) and published in (22, 25).
In chapter 6 a combined Contourlet and wavelet transform based
watermarking method has been presented. The theoretical background of the
method has been given. Watermark insertion and detection methods are then
described. The results of this method using ten different types of images and ten
different watermarks are given. The potential of this method for software testing
applications has been described. The preliminary findings of this work has been
presented in [17] and published in [23].
The thesis is concluded in chapter 7. The summary of the research
work has been given. Here the merits and drawbacks of the developed schemes
are discussed with special emphases on software testing. In this chapter we also
discuss about the works which may be done in future as an extension of the
methods discussed in the thesis and also to overcome the minor drawbacks of the
proposed techniques.

19

You might also like