=Paper=
{{Paper
|id=None
|storemode=property
|title=A Test Case Generation Technique and Process
|pdfUrl=https://ceur-ws.org/Vol-646/EMDT2010paper2.pdf
|volume=Vol-646
}}
==A Test Case Generation Technique and Process==
A TEST CASE GENERATION TECHNIQUE AND PROCESS
Nicha Kosindrdecha and Jirapun Daengdej
Autonomous System Research Laboratory
Faculty of Science and Technology
Assumption University, Thailand
p4919741@au.edu, jirapun@scitech.au.edu
ABSTRACT cases. Since Unified Modeling Language (UML) is the
most widely used language, many researchers are
It has been proven that the software testing phase is using UML diagrams such as state diagrams, use-case
one of the most critical and important phases in the diagrams and sequence diagrams to generate test cases
software development life cycle. In general, the and this has led to model-based test case generation
software testing phase takes around 40-70% of the techniques. In this paper, an approach with additional
effort, time, and cost. This area is well researched requirement prioritization step is proposed toward test
cases generation from requirements captured as use
over a long period of time. Unfortunately, while many
cases [23], [24], [33]. A use case is the specification of
researchers have found methods of reducing time and
interconnected sequences of actions that a system can
cost during the testing process, there are still a perform, interacting with actors of the system. Use
number of important related issues that need to be cases have become one of the favorite approaches for
researched. This paper introduces a new high level requirements capture. Test cases derived from use
test case generation process with a requirement cases can ensure compliance of an application with its
prioritization method to resolve the following functional requirements. However, one difficulty is
research problems: unable to identify suitable test that there are a large number of functional
cases with limited resources, lack of an ability to requirements and use cases. A second research
identify critical domain requirements in the test case challenge is to ensure that test cases are able to
generation process and ignore a number of generated preserve and identify critical domain requirements [5].
test cases. Also, this paper proposes a practical test Finally, a third problem is to minimize a number of
case generation technique derived from use case test cases while preserving an ability to reveal faults.
diagram. For example, there are a lot of functional requirements
in the large software development. Software test
Index Terms - test generation, testing and quality, engineers may not be able to design test cases to cover
test case generation, test generation technique and important requirements and generate a minimum set of
generate tests test cases. Therefore, test cases derived from large
requirements or use cases are not effective in the
practical large system. This paper presents an
1. INTRODUCTION approach with additional requirement prioritization
process for automated generation of abstract
Software testing is known as a key critical phase in the presentation of test purposes called test scenarios. This
software development life cycle, which account for a paper also introduces a new test case generation
large part of the development effort. A way of process to support and resolve the above research
reducing testing effort, while ensuring its challenges. We overcome the problem of large
effectiveness, is to generate test cases automatically numbers of requirements and use cases. This allows
from artifacts used in the early phases of software software testing engineer to prioritize critical
development. Many test case generation techniques requirements and reasonably design test cases for
have been proposed [2], [4], [10], [11], [12], [15], them. Also, this allows us to be able to identify a high
[21], [22], [42], [47], [50], mainly random, path- percentage of each test case’s critical domain
oriented, goal-oriented and model-based approaches. coverage.
Random techniques determine a set of test cases based
on assumptions concerning fault distribution. Path- The rest of the paper is organized as follow. Section 2
oriented techniques generally use control flow graph to discusses the comprehensive set of test case
identify paths to be covered and generate the generation techniques. Section 3 proposes the
appropriate test cases for those paths. Goal-oriented outstanding research challenges that motivated this
techniques identify test cases covering a selected goal study. Section 4 introduces a new test generation
such as a statement or branch, irrespective of the path process and technique. Section 5 describes an
taken. There are many researchers and practitioners experiment, measurement metrics and results. Section
who have been working in generating a set of test 6 provides the conclusion and research directions in
cases based on the specifications. Modeling languages
are used to get the specification and generate test
the test case generation field. The last section 3. RESEARCH CHALLENGES
represents all source references used in this paper.
This section discusses the details of research issues
2. LITERATURE REVIEW related to test case generation techniques and research
problems, which are motivated this study. Every test
Model-based techniques are popular and most case generation technique has weak and strong points,
researchers have proposed several techniques. One of as addressed in the literature survey. In general,
the reasons why those model-based techniques are referring to the literature review, the following lists
popular is that wrong interpretations of complex major outstanding research challenges. The first
software from non-formal specification can result in research problem is that existing test case generation
incorrect implementations leading to testing them for methods are lack of ability to identify domain specific
conformance to its specification standard [43]. A requirements. The study [5] shows that domain
major advantage of model-based V&V is that it can be specific requirements are some of the most critical
easily automated, saving time and resources. Other requirements required to be captured for
advantages are shifting the testing activities to an implementation and testing, such as constraints
earlier part of the software development process and requirements and database specific requirements.
generating test cases that are independent of any Existing approaches ignore an ability to address
particular implementation of the design [7]. The domain specific requirements. Consequently, software
model-based techniques are method to generate test testing engineers may ignore the critical functionality
cases from model diagrams like UML Use Case related to the critical domain specific requirements.
diagram [23], [24], [33], UML Sequence diagram [7] Thus, this paper introduces an approach to priority
and UML State diagram [5], [43], [22], [2], [21], [15], those specific requirements and generates an effective
[32], [4]. There are many researchers who investigated test case. The second problem is that existing test case
in generating test cases from those diagrams. The generation techniques aim to generate test cases which
following paragraphs show examples of model-based maximize cover for each scenario. Sometimes, they
test generation techniques that have been proposed for generate a huge number of test cases which are
a long time. impossible to execute given limited time and
resources. As a result, those unexecuted test cases are
Heumann [23] presented how using use cases to useless. The last problem is to unable to identify
generate test cases can help launch the testing process suitable test cases in case that there are limited
early in the development lifecycle and also help with resources (e.g. time, effort and cost). The study reveals
testing methodology. In a software development that existing techniques aim to maximum and generate
project, use cases define system software all possible test cases. This can lead to unable to select
requirements. Use case development begins early on, necessary test cases to be executed during software
so real use cases for key product functionality are testing activities, in case that there are limited
available in early iterations. According to the Rational resources.
Unified Process (RUP), a use case is used to describe
fully a sequence of actions performed by a system to
provide an observable result of value to a person or 4. PROPOSED METHOD
another system using the product under development."
Use cases tell the customer what to expect, the This section presents a new high-level process to
developer what to code, the technical writer what to generate a set of test cases introduced by using the
document, and the tester what to test. He proposed above comprehensive literature review and previous
three-step process to generate test cases from a fully works [43].
detailed use case: (a) for each use case, generate a full
set of use-case scenarios (b) for each scenario, identify
at least one test case and the conditions that will make
it execute and (c) for each test case, identify the data
values with which to test. Ryser [24] raised the
practical problems in software testing as follows: (1)
Lack in planning/time and cost pressure, (2) Lacking
test documentation, (3) Lacking tool support, (4)
Formal language/specific testing languages required,
(5) Lacking measures, measurements and data to
quantify testing and evaluate test quality and (6)
Insufficient test quality. They proposed their approach
to resolve the above problems. Their approach is to
derive test case from scenario / UML use case and
state diagram. In their work, the generation of test
cases is done in three processes: (a) preliminary test
case definition and test preparation during scenario
creation (b) test case generation from Statechart and
from dependency charts and (c) test set refinement by
application dependent strategies. Figure 1 A Proposed Process to Generate Test Cases
From the above figure, the left-hand side process security, operability and maintainability requirements.
is a general waterfall process. We propose to add two The following displays the classify requirement tree:
additional processes: (a) requirement prioritization
and (b) test case generation.
The requirement prioritization process aims to be
able to effectively handle with a large number of
requirements. The objective of this process is to
prioritize and organize requirements in an appropriate
way in order to effectively design and prepare test
cases [16], [25], [37]. There are two sub-processes:
(a) classify requirements and (b) prioritize
requirements.
The classify requirement process primarily
divides and classifies requirements into four groups
[30]: (a) “Must-Have” (b) “Should-Have” (c) “Could-
Have” and (d) “Wish”. The “Must-Have”
requirements are mandatory requirements that need to Figure 2 A Classify Requirement Tree
be implemented in the system. The “Should-Have”
requirements are requirements that should be From the above figure, we propose a ranking
implemented if there are available resources. The number for each requirement. This paper prioritizes
“Could-Have” requirements are additional “Must-Have” requirements as top three ranking and
requirements that are able to be implemented if there “Wish” requirements as last three ranking. The study
are adequate resources. The “Wish” requirements are [5] reveals that domain specific requirements should
“would like to have in the future” requirements that have higher priority than both of behavioral and non-
may be ignored if there are inadequate resources. This functional requirements.
paper introduces five factors to classify the above However, when the requirement is already
requirements, as follows: classified, the next process is to prioritize those
requirements. In the requirement prioritization
Table 1 Requirement Classification process, this paper proposes to use a cost-value
approach to weight and prioritize requirements. This
Group Time Cost People Scope Success paper also proposes to use the following formula:
Must have Y Y Y N Y P(Req) = (Cost * CP) (1)
Should Where:
have Y Y Y N N • P is a prioritization value.
Could have N N Y Y N • Req is a requirement required to be prioritized.
Wish N N N Y N • Cost is a total estimated cost of coding and
testing for each requirement.
From the above table, the following shortly • CP is an user-defined customer priority value.
describes a meaning of the above factors: This value is in the range between 1 and 10. 10 is
• Time – The requirement must be implemented in the highest priority and 1 is the lowest priority.
the current version or release of software. This value aims to allow customers to identify
• Cost – There is an available of budget or fund to how important of each requirement is from their
implement the requirement. perspective.
• People – There is an available of human To compute the above cost for coding and testing, this
resources to develop and test the requirement. paper proposes to apply the following formula:
• Scope – The requirement can be removed out of Cost= (ECode*CostCode)+(ETest*CostTest) (2)
the current version or release of software. Where:
• Success – The success of system development • Cost is a total estimated cost.
rely on the requirement. • ECode is an estimated effort of coding for each
In addition, this paper secondary divides those requirement. The unit is man-hours.
requirements into two groups: (a) functional and (b) • CostCode is a cost of coding that is charged to
non-functional. The functional requirements can be customers. This paper applies the cost-value
categorized into two groups: (a) domain specific approach to identify the cost of coding for each
requirements and (b) non- domain specific requirement group (e.g. “Must-Have”, “Should-
requirements. The domain specific requirements are Have”, “Could-Have” and “Wish”). The unit is
able to identify as database specific and constraints US dollar.
requirements. For example, database connection • ETest is an estimated effort of testing for each
specific requirements and requirements for an requirement. The unit is man-hours.
interface with other systems. The non-functional • CostTest is a cost of testing that is charged to
requirements can be vary, such as performance, customers. The approach to identify this value is
similar to CostCode’s approach. The unit is US information is called use case scenario in this
dollar. paper. The example fully dressed use cases of
In this paper, we assumed the following in order to ATM withdraw functionality can be found as
calculate CostCode and CostTest. Also, this paper follows:
assumes that a standard cost for both activities is $100
per man-hours. Table 2 Example Fully Dressed Use Case
• A value is 1.5 of (“Must-Have”, “Should-Have”) Use Use Summary Basic Event Alternativ Business
– this means that “Must-Have” requirements Case Id Case e Events Rules
have one and half times cost value than “Should- Name
Have” requirements. UC-001 Withd To allow 1. Insert 1. Select (a) Input
• A value is 3 of (“Must-Have”, “Could-Have”) – raw bank's Card Inquiry amount
customers 2. Input PIN 2. Select <=
this means that “Must-Have” requirements have
to 3. Select A/C Type Outstandi
three times cost value than “Could-Have” withdraw Withdraw 3. Check ng
requirements. money 4. Select Balance Balance
• A value is 2 of (“Should-Have”, “Could-Have”) from ATM A/C Type (b) Fee
– this means that “Should-Have” requirements machines 5. Input charge if
have two times cost value than “Could-Have” anywhere Balance using
requirements. in 6. Get different
• A value is approximately 3 of (“Could-Have”, Thailand. Money ATM
“Wish”) – this means that “Could-Have” 7. Get Card machines
requirements have three times cost value than UC-002 Trans To allow 1. Insert 1. Select Amount
fer users to Card Inquiry <=
“Wish” requirements.
transfer 2. Input PIN 2. Select 50,000
Therefore, the procedure of requirement money to 3. Select A/C Type baht
prioritization process can be shortly described below: other Transfer 3. Check
1. Provide estimated efforts of coding and testing banks in 4. Select Balance
for each requirement. Thailand bank
2. Assign cost value for each requirement group from all 5. Select
based on the previous requirement classification ATM "To"
(e.g. “Must-Have”, “Should-Have”, “Could- machines account
Have” and “Wish”). 6. Select
A/C Type
3. Calculate a total estimated cost for coding and
7. Input
testing, by using the formula (2). Amount
4. Define a customer priority for each requirement. 8. Get
5. Compute a priority value for each requirement by Receipt
using the formula (1). 9. Get Card
6. Prioritize requirements based on the higher
priority value. The above use cases can be extracted into the
Once the requirements are prioritized, the next following use case scenarios:
proposed step is to generate test scenario and prepare
test case. Table 3 Extracted Use Case Scenarios
This section presents an automated test scenario Scenario Id Summary Basic Scenario
generation derived from UML Use Case diagram. Our
Scenario-001 To allow bank's 1. Insert Card
approach is built based on Heumann’s algorithm [23].
customers to 2. Input PIN
The limitation of our approach is to ensure that all use withdraw money 3. Select Withdraw
cases are fully dressed. The fully dressed use case is a from ATM 4. Select A/C Type
use case with the comprehensive of information, as machines 5. Input Balance
follows: use case name, use case number, purpose, anywhere in 6. Get Money
summary, pre-condition, post-condition, actors, Thailand. 7. Get Card
stakeholders, basic events, alternative events, business Scenario-002 To allow bank's 1. Insert Card
rules, notes, version, author and date. customers to 2. Input PIN
The proposed method contains four steps, as withdraw money 3. Select Inquiry
follows: (a) extract use case diagram (b) generate test from ATM 4. Select A/C Type
scenario (c) prepare test data and prepare other test machines 5. Check Balance
anywhere in 6. Select Withdraw
elements. These steps can be shortly described as
Thailand. 7. Select A/C Type
follows: 8. Input Balance
1. The first step is to extract the following 9. Get Money
information from fully dressed use cases: (a) 10. Get Card
use case number (b) purpose (c) summary (d)
pre-condition (e) post-condition (f) basic
event and (g) alternative events. This
Scenario-003 To allow users to 1. Insert Card TS-004 To allow users 1. Insert Card
transfer money to 2. Input PIN to transfer 2. Input PIN
other banks in 3. Select Transfer money to other 3. Select Inquiry
Thailand from all 4. Select bank banks in 4. Select A/C Type
ATM machines 5. Select "To" account Thailand from 5. Check Balance
6. Select A/C Type all ATM 6. Select Transfer
7. Input Amount machines 7. Select bank
8. Get Receipt 8. Select "To" account
9. Get Card 9. Select A/C Type
10. Input Amount
Scenario-004 To allow users to 1. Insert Card 11. Get Receipt
transfer money to 2. Input PIN 12. Get Card
other banks in 3. Select Inquiry
Thailand from all 4. Select A/C Type
ATM machines 5. Check Balance 3. The next step is to prepare test data. This step
6. Select Transfer allows to manually prepare an input data for
7. Select bank each scenarios.
8. Select "To" account
The last step is to prepare other test elements, such
9. Select A/C Type
10. Input Amount as expected output, actual output and pass / fail status.
11. Get Receipt
12. Get Card 5. EVALUATION
The section describes the experiments design,
2. The second step is to automatically generate measurement metrics and results.
test scenarios from the previous use case
scenarios [23]. From the above table, we 5.1. Experiments Design
automatically generate the following test A comparative evaluation method has proposed in this
scenarios: experiment design. The high-level overview of this
experiment design can be found as follows:
Table 4 Generated Test Scenarios 1. Prepare Experiment Data. Before evaluating
Test Scenario Id Summary Basic Scenario the proposed methods and other methods,
preparing experiment data is required. In this
TS-001 To allow bank's 1. Insert Card step, 50 requirements and 50 use case scenarios
customers to 2. Input PIN are randomly generated.
withdraw 3. Select Withdraw 2. Generate Test Scenario and Test Case. A
money from 4. Select A/C Type comparative evaluation method has been made
ATM machines 5. Input Balance among the proposed test generation algorithm,
anywhere in 6. Get Money Heumann’s technique Jim [23], Ryser’s method
Thailand. 7. Get Card
[24], Nilawar’s algorithm [33] and the proposed
TS-002 To allow bank's 1. Insert Card method presented in the previous section.
customers to 2. Input PIN
3. Evaluate Results. In this step, the comparative
withdraw 3. Select Inquiry
money from 4. Select A/C Type generation methods are executed by using 50
ATM machines 5. Check Balance requirements and 50 use case scenarios. These
anywhere in 6. Select Withdraw methods are also executed for 10 times in order
Thailand. 7. Select A/C Type to find out the average percentage of critical
8. Input Balance domain requirement coverage, a size of test cases
9. Get Money and total generation time. In total, there are 500
10. Get Card requirements and 500 use case scenarios executed
TS-003 To allow users 1. Insert Card in this experiment.
to transfer 2. Input PIN The following tables present how to randomly
money to other 3. Select Transfer
generate data for requirements and use case scenarios
banks in 4. Select bank
Thailand from 5. Select "To" account respectively.
all ATM 6. Select A/C Type
machines 7. Input Amount Table 5 Generate Random Requirements
8. Get Receipt Attribute Approach
9. Get Card Requirement ID Randomly generated from the following
combination: Req + Sequence Number.
For example, Req1, Req2, Req3, …,
ReqN.
Type of Randomly selected from the following
Requirement values: Functional AND Non-
Functional. scenario and produce test case). Therefore, less
MoSCoW Randomly selected from the following time is desirable.
Criteria values: Must Have (M), Should Have It can be calculated using the following formula:
(S), Could Have (C) and Won’t Have Total = PTime + CTime + RTime (5)
(W)
Where:
Is it a critical Randomly selected from the following
• Total is the total amount of times consumed by
requirement values: True (Y) and False (N)
(Y/N)? running generation methods.
• PTime is the total amount of time consumed by
Table 6 Generate Random Use Case Scenario preparation before generating test cases.
Attribute Approach • CTime is the time to compile source code / binary
Use case ID Randomly generated from the code in order to execute the program.
following combination: uCase + • RTime is the total time to run the program under
Sequence Number. For example, this experiment.
uCase1, uCase2, …, uCasen.
Purpose Randomly generated from the 5.3. Results and Discussion
following combination: Pur + This section discusses an evaluation result of the
Sequence Number same as Use case above experiment. This section presents a graph that
ID. For example, Pur1, Pur2, …,
compares the above proposed method to other three
Purn.
Basic Scenario Randomly generated from the
existing test case generation techniques, based on the
following combination: uCase + following measurements: (a) size of test cases (b)
Sequence Number. For example, critical domain coverage and (c) total time. Those
basic1, basic2, …, basicn. three techniques are: (a) Heumman’s method (b)
Ryser’s work and (c) Nilawar’s approach. There are
5.2. Measurement Metrics two dimensions in the following graph: (a) horizontal
The section lists the measurement metrics used in the and (b) vertical axis. The horizontal represents three
experiment. This paper proposes to use three metrics, measurements whereas the vertical axis represents the
which are: (a) size of test cases (b) total time and (c) percentage value.
percentage of critical domain requirement coverage.
The following describe the measurement in details.
1. A Number of Test Cases: This is the total
number of generated test cases, expressed as a
percentage, as follows:
% Size = (# Size / # of Total Size)*100 (3)
Where:
• % Size is a percentage of the number of test
cases.
• # of Size is a number of test cases.
• # of Total Size is the maximum number of test
cases in the experiment, which is assigned 1,000.
2. A Domain Specific Requirement Coverage:
This is an indicator to identify the number of
requirements covered in the system, particularly
critical requirements, and critical domain
requirements [5]. Due to the fact that one of the
goals of software testing is to verify and validate
requirements covered by the system, this metric
is a must. Therefore, a high percentage of critical
requirement coverage is desirable. Figure 3 An Evaluation Result
It can be calculated using the following formula:
% CRC = (# of Critical / # of Total)*100 (4) The above graph shows that the above proposed
Where: method generates the smallest set of test cases. It is
• % CRC is the percentage of critical requirement calculated as 80.80% where as the other techniques is
coverage. computed over 97%. Those techniques generated a
• # of Critical is the number of critical bigger set of test cases, than a set generated by the
requirements covered. proposed method. The literature review reveals that
• # of Total is the total number of requirements. the smaller set of test cases is desirable. Also, the
3. Total Time: This is the total number of times the graph shows that the proposed method consumes the
generation methods are run in the experiment. least total time during a generation process,
This metric is related to the time used during the comparing to other techniques. It used only 30.20%,
testing development phase (e.g. design test which is slightly less than others. Finally, the graph
presents that the proposed method is the best [10] B.M. Subraya, S.V. Subrahmanya, “Object driven
techniques to coverage critical domains. Its performance testing in Web applications”, in: Proceedings
percentage is much greater than other techniques’ of the First Asia-Pacific Conference on Quality Software
percentage, over 30%. (APAQS'00), pp. 17-26, Hong Kong, China, 2000.
[11] Chien-Hung Liu, David C. Kung, Pei Hsia and Chih-
Tung Hsu, “Object-Based Data Flow Testing of Web
6. CONCLUSION Applications”, Proceedings of the First Asia-Pacific
Conference on Quality Software (APAQS'00), pp. 7-16,
This paper concentrates on resolving the following Hong Kong, China, 2000.
research problems: (a) an inefficient test case [12] C.H. Liu, D.C. Kung, P. Hsia, C.T. Hsu, “Structural
generation method with limited resources (b) a lack of testing of Web applications”, in: Proceedings of 11th
ability to identify and coverage the critical domain International Symposium on Software Reliability
requirements and (c) an ignorance of a size of test Engineering (ISSRE 2000), pp. 84-96, 2000.
[13] Davis, A., “The Art of Requirements Triage”, IEEE
cases. Furthermore, this paper proposes an effective
Computer 36, 3 p: 42-49, 2003.
test case generation process by adding additional [14] Davis, A., “Just Enough Requirements Management:
prioritization process. The new process aims to Where Software Development Meets Marketing”, New
improve the ability to: (a) generate test cases with York: Dorset House (ISBN 0-932633-64-1), 2005.
limited resources (b) include more critical domain [15] David C. Kung, Chien-Hung Liu and Pei Hsia, “An
specific requirements and (c) minimize a number of Object-Oriented Web Test Model for Testing Web
test cases. Also, this paper introduces an automated Applications”, In Proceedings of the First Asia-Pacific
test scenario generation technique to address critical Conference on Quality Software (APAQS’00), page 111,
domain specific requirements. This paper proposes to Los Alamitos, CA, 2000.
[16] Donald Firesmith, “Prioritizing Requirements”,
compare to other three test case generation
Journal of Object Technology, Vol.3, No8, 2004.
techniques, which are: Heummann’s work, Ryser’s [17] D. Harel, “On visual formalisms”, Communications of
method and Nilawar’s technique. As a result, this the ACM, vol. 31, no. 5, pp. 514-530, 1988.
study found that the proposed method is the most [18] D. Harel, “Statecharts: A Visual Formulation for
recommended method to generate the smallest size of Complex System”, Sci.Comput. Program. 8(3):232-274,
test cases with the maximum of critical domain 1987.
specific requirement coverage and the least time [19] Flippo Ricca and Paolo Tonella, “Analysis and Testing
consumed in the test case generation process. of Web Applications”, Proc. of the 23rd International
Conference on Software Engineering, Toronto, Ontario,
Canada. pp.25-34, 2001.
7. REFERENCES [20] Harel, D., “Statecharts: a visual formalism for complex
system”, Science of Computer Programming, v. 8, p. 231-
[1] Ahl, V., “An Experimental Comparison of Five 274, 1987.
Prioritization Methods”, Master's Thesis, School of [21] Hassan Reza, Kirk Ogaard and Amarnath Malge, “A
Engineering, Blekinge Institute of Technology, Ronneby, Model Based Testing Technique to Test Web Applications
Sweden, 2005. Using Statecharts”, Fifth International Conference on
[2] Alessandra Cavarra, Charles Crichton, Jim Davies, Alan Information Technology, 2008.
Hartman, Thierry Jeron and Laurent Mounier, “Using UML [22] Ibrahim K. El-Far and James A. Whittaker, “Model-
for Automatic Test Generation”, Oxford University based Software Testing”, 2001.
Computing Laboratory, Tools and Algorithms for the [23] Jim Heumann., “Generating Test Cases From Use
Construction and Analysis of Systems, TACAS'2000, 2000. Cases”, Rational Software, 2001.
[3] Amaral, “A.S.M.S. Test case generation of systems [24] Johannes Ryser and Martin Glinz, “SCENT: A Method
specified in Statecharts”, M.S. thesis – Laboratory of Employing Scenarios to Systematically Derive Test Cases
Computing and Applied Mathematics, INPE, Brazil, 2006. for System Test”, 2000.
[4] Annelises A. Andrews, Jeff Offutt and Roger T. [25] Karl E. Wiegers, “First Things First: Prioritizing
Alexander, “Testing Web Applications”, Software and Requirements”, Published in Software Development, 1999.
Systems Modeling, 2004. [26] Karlsson, J., “Software Requirements Prioritizing”,
[5] Avik Sinha, Ph.D and Dr. Carol S. Smidts, “Domain Proceedings of the Second International Conference on
Specific Test Case Generation Using Higher Ordered Typed Requirements Engineering (ICRE'96). Colorado Springs,
Languages fro Specification” Ph. D. Dissertation, 2005. CO, April 15-18, 1996. Los Alamitos, CA: IEEE Computer
[6] A. Bertolino, “Software Testing Research and Practice”, Society, p 110-116, 1996.
10th International Workshop on Abstract State Machines [27] Karlsson, J., “Towards a Strategy for Software
(ASM'2003), Taormina, Italy, 2003. Requirements Selection. Licentiate”, Thesis 513, Linköping
[7] A.Z. Javed, P.A. Strooper and G.N. Watson. University, 1995.
“Automated Generation of Test Cases Using Model-Driven [28] Karlsson, J. & Ryan, K., “A Cost-Value Approach for
Architecture”, Second International Workshop on Prioritizing Requirements”, IEEE Software
Automation of Software Test (AST’07), 2007. September/October, p67-75, 1997.
[8] Beck, K. & Andres, C., “Extreme Programming [29] Leffingwell, D. & Widrig, D., “Managing Software
Explained: Embrace Change”, 2nd ed. Boston, MA: Requirements: A Use Case Approach”, 2nd ed. Boston,
Addison-Wesley, 2004. MA: Addison-Wesley, 2003.
[9] Boehm, B. & Ross, R.. “Theory-W Software Project [30] Leslie M. Tierstein, “Managing a Designer / 2000
Management: Principles and Examples”, IEEE Transactions Project”, NYOUG Fall’97 Conference, 1997.
on Software Engineering 15, 4: 902-916, 1989.
[31] L. Brim, I. Cerna, P. Varekova, and B. Zimmerova, Submitted for publication. Technical Report ISE-TR-04-01,
“Component-interaction automata as a verification oriented www.ise.gmu.edu/techreps/, 2004.
component-based system specification”, In: Proceedings [50] Zhu, H., Hall, P., May, J., “Software Unit Test
(SAVCBS'05), pp. 31-38, Lisbon, Portugal, 2005. Coverage and Adequacy”, ACM Comp. Survey 29(4), pp
[32] Mahnaz Shams, Diwakar Krishnamurthy and Behrouz 366~427, 1997.
Far, “A Model-Based Approach for Testing the
Performance of Web Applications”, Proceedings of the
Third International Workshop on Software Quality
Assurance (SOQUA’06), 2006.
[33] Manish Nilawar and Dr. Sergiu Dascalu, “A UML-
Based Approach for Testing Web Applications”, Master of
Science with major in Computer Science, University of
Nevada, Reno, 2003.
[34] Moisiadis, F., “Prioritising Scenario Evolution”,
International Conference on Requirements Engineering
(ICRE 2000), 2000.
[35] Moisiadis, F., “A Requirements Prioritisation Tool”,
6th Australian Workshop on Requirements Engineering
(AWRE 2001). Sydney, Australia, 2001.
[36] M. Prasanna S.N. Sivanandam R.Venkatesan
R.Sundarrajan, “A Survey on Automatic Test Case
Generation”, Academic Open Internet Journal, 2005.
[37] Nancy R. Mead, “Requirements Prioritization
Introduction”, Software Engineering Institute, Carnegie
Mellon University, 2008.
[38] Park, J.; Port, D.; & Boehm B., “Supporting
Distributed Collaborative Prioritization for Win-Win
Requirements Capture and Negotiation 578-584”,
Proceedings of the International Third World Multi-
conference on Systemics, Cybernetics and Informatics
(SCI'99) Vol. 2. Orlando, FL, July 31-August 4, 1999.
Orlando, FL: International Institute of Informatics and
Systemic (IIIS), 1999.
[39] Rajib, “Software Test Metric”, QCON, 2006.
[40] Robert Nilsson, Jeff Offutt and Jonas Mellin, “Test
Case Generation for Mutation-based Testing of
Timeliness”, 2006.
[41] Saaty, T. L., “The Analytic Hierarchy Process”, New
York, NY: McGraw-Hill, 1980.
[42] Shengbo Chen, Huaikou Miao, Zhongsheng Qian,
“Automatic Generating Test Cases for Testing Web
Applications”, International Conference on Computational
Intelligence and Security Workshops, 2007.
[43] Valdivino Santiago, Ana Silvia Martins do Amaral,
N.L. Vijaykumar, Maria de Fatima, Mattiello-Francisco,
Eliane Martins and Odnei Cuesta Lopes, “A Practical
Approach for Automated Test Case Generation using
Statecharts”, 2006.
[44] Vijaykumar, N. L.; Carvalho, S. V.; Abdurahiman, V.,
“On proposing Statecharts to specify performance models”,
International Transactions in Operational Research, 9, 321-
336, 2002.
[45] Wiegers, K., “E. Software Requirements”, 2nd ed.
Redmond, WA: Microsoft Press, 2003.
[46] Xiaoping Jia, Hongming Liu and Lizhang Qin,
“Formal Structured Specification for Web Application
Testing”. Proc. of the 2003 Midwest Software Engineering
Conference (MSEC'03). Chicago, IL, USA. pp.88-97, 2003.
[47] Yang, J.T., Huang, J.L., Wang, F.J. and Chu, W.C.,
“Constructing an object-oriented architecture for Web
application testing”, Journal of Information Science and
Engineering 18, 59-84, 2002.
[48] Ye Wu and Jeff Offutt, “Modeling and Testing Web-
based Applications”, 2002.
[49] Ye Wu, Jeff Offutt and Xiaochen, “Modeling and
Testing of Dynamic Aspects of Web Applications,