<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">ACT (Abstract to Concrete Tests) -A tool for generating Concrete test cases from Formal Specification of Web Applications</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Khusbu</forename><surname>Bubna</surname></persName>
							<email>khusbu.bubna@iiitb.org</email>
							<affiliation key="aff0">
								<orgName type="department">International Institute of Information Technology</orgName>
								<address>
									<settlement>Bangalore</settlement>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Sujit</forename><forename type="middle">Kumar</forename><surname>Chakrabarti</surname></persName>
							<email>sujitkc@iiitb.ac.in</email>
							<affiliation key="aff1">
								<orgName type="department">International Institute of Information Technology</orgName>
								<address>
									<settlement>Bangalore</settlement>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">ACT (Abstract to Concrete Tests) -A tool for generating Concrete test cases from Formal Specification of Web Applications</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">BD184B55C1356728C567B1240190A0B4</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T19:56+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>As web applications are becoming more and more ubiquitous, modeling and testing web applications correctly is becoming necessary. In this paper, we have used a formal specification language, State chart to model the navigation behaviour aspect of web applications. This paper presents the ACT (Abstract to Concrete Tests) tool, an approach of generating concrete executable Selenium RC JUnit test cases from a formal State chart specification model. The ACT tool can generate concrete Selenium RC JUnit test cases from abstract test cases by utilizing data shared across different interactions of the web application with the web server. Throughout the paper, a case study of Learning Management System is used to illustrate our approach.</p><p>In this paper, we present the ACT (Abstract to Concrete Tests) tool, which uses a novel approach of generating concrete test cases from abstract test cases by using data shared across different interactions of the web application with the web server. A formal specification language 'Statecharts' <ref type="bibr" target="#b0">[1]</ref> was used to model the navigation behaviour aspect of web</p><p>Copyright c 2016 for the individual papers by the papers' authors. Copy- ing permitted for private and academic purposes. This volume is published and copyrighted by its editors.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.">INTRODUCTION</head><p>Nowdays, the use of web applications has grown to a huge extent. Web applications are used in online shopping, online banking, etc., so designing and testing web applications rigorously has become very crucial. Formal specification languages are used to clarify customer's requirements by removing ambiguity, inconsistency and incompleteness in the software requirements and design process. Thus, they are helpful in reducing the requirement errors in the early stages of the software development life cycle. Formal specifications are mostly used in critical systems where the cost of failure is catastrophic. Formal specifications can be used in several ways of design cycle, static verification and test generation being the most notable. applications. Then abstract test cases were generated from the State chart model in our ACT tool. Abstract test cases cannot be directly executed on the implementation since they are defined using elements and objects of the State chart model, and must be first transformed to concrete test cases. So finally, concrete executable Selenium RC JUnit test cases are generated from these abstract test cases in our ACT tool which can be directly executed on the implementation. The remainder of the paper is organized as follows. Section 2 gives a brief review of related work, while Section 3 explains the proposed methodology used by our ACT tool. Section 4 illustrates the State chart specification for modeling the navigation behaviour of web applications. Section 5 illustrates the generation of test path from the State chart model. Section 6 illustrates how abstract test cases are generated using Symbolic execution and SMT solver. Section 7 illustrates the translation of abstract test cases to concrete test cases. Section 8 concludes the paper and Section 9 gives scope for future work.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">RELATED WORK</head><p>A number of formal, informal and semi-formal models like automata <ref type="bibr" target="#b1">[2]</ref>, Statechart <ref type="bibr" target="#b2">[3]</ref>, UML and OCL <ref type="bibr" target="#b4">[ 5]</ref>, UML based web engineering, alloy, directed graph and control flow graphs, SDL, term rewriting systems, XML have been proposed in various studies <ref type="bibr" target="#b5">[6]</ref> for modeling web applications. The authors in <ref type="bibr" target="#b4">[5]</ref> have proposed UML class diagram and the authors in <ref type="bibr" target="#b2">[3]</ref> have proposed statechart for modeling web navigation. A methodology for generation of concrete executable tests from abstract test cases using a test automation language, the Structured Test Automation Language (STAL) was proposed in <ref type="bibr" target="#b6">[7]</ref>. The authors in <ref type="bibr" target="#b6">[7]</ref> have proposed a mapping between identifiable elements in the model to JUnit executable java code. The author in <ref type="bibr" target="#b7">[8]</ref> have presented an approach using domain specific languages to model the navigation aspect of the web application and have used a UI mapping XML file to generate concrete test cases for Selenium and Canoo web test tools. In <ref type="bibr" target="#b7">[8]</ref>, an approach that utilizes recorded user interaction data to construct a state machine model especially for testing AJAX functionality is presented. Input data is provided from the collected requests and test oracles have to be created manually. The generated test sequences are translated into the test case format of the Selenium test automation tool. The authors in <ref type="bibr" target="#b9">[9]</ref> have used model checking to generate test cases for control flow and data flow coverage criteria. The authors in <ref type="bibr" target="#b10">[10]</ref> 2nd Modelling Symposium (ModSym 2016) -colocated with ISEC 2016, Goa, India, Feb 18, 2016  </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.">PROPOSED METHODOLOGY</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.">A FORMAL MODEL FOR WEB NAVI-GATION -STATE CHART</head><p>From among the various finite state based formal specification languages, we have used Statecharts <ref type="bibr" target="#b0">[1]</ref> for modeling the navigation behaviour of web applications. Figure <ref type="figure" target="#fig_2">2</ref> shows the State chart specification of our case study, the Learning Management System (LMS) used within our institute.</p><p>In the Statechart specification shown in Figure <ref type="figure" target="#fig_2">2</ref> </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.">TEST PATH GENERATION FROM STATE CHART MODEL</head><p>The front end step in the ACT tool which generates test paths can be any test path generating algorithm like graph coverage algorithms. But model checking which is a formal verification technique can also be used to generate test paths by formulating a temporal logic specification as a trap property to be verified. The straight forward way to represent a State chart as a transition system is to flatten its hierarchy. In our approach, the hierarchical State chart navigation model was first flattened and then transformed into an SMV program. The trap properties for navigation were written in CTL formulas and then the Symbolic Model Verifier (NuSMV) tool is executed which generates the counter examples. For example, the CTL Trap Specification Property for specifying that state SE-230 Software Testing is reachable from the initial state is:</p><p>CTL Trap Specification Property:</p><formula xml:id="formula_0">! EF(state=SE-230 Software Testing)</formula><p>This trap property will generate a counter example which is our test path. For this counter example there will be two paths.    </p><formula xml:id="formula_1">Add.clicked/ / [!username1!∈! valid_student_usernames!!∧! password1!∈! valid_student_passwords!]! Add.clicked/ / [!username1!∈!! valid_teacher_usernames/∧! password1!∈! valid_teacher_passwords!]! Add.clicked/ [!username1!∉ !"#$%_!"#$ℎ!"_!"#$%&amp;'#"!∧! password1!∉ !"#$%_!"#$ℎ!"_!"##$%&amp;'#!]!/! ! valid_teacher_usernames/:=/valid_teacher_usernames/// ∪ !"#$%&amp;'#!! ∧/ valid_teacher_passwords/:=/valid_teacher_passwords/ ∪/password! Login.clicked/ [!username2!∈!valid_student_usernames!!∧! password2!∈!valid_student_passwords!!]! ! ! Login.clicked/ [!username!=!valid_admin_username!/∧!/ !!!!password!=!valid_admin_password!]! Login.clicked/ [!username3!∈!!valid_teacher_usernames!/∧/ !!!password3!!∈!!valid_teacher_passwords!]! ! CSISEI270!</formula><formula xml:id="formula_2">(username1 = "") ∧ (password1 = "") ∧ (username1 / ∈ φ) ∧ (password1 / ∈ φ).</formula><p>Sets valid student usernames and valid student passwords are consequently updated to username1 and password1. So the path predicate for the transition from state LMS Login Page to My Courses is ((username1 = ""∧(password1 = "")∧(username1 / ∈ φ)∧(password1 / ∈ φ)∧(username2 ∈ username1)∧(password2 ∈ password1)) So the final path predicate for the counter example ! EF(state=SE-230 Software Testing ) is: ((username1 = "" ∧ (password1 = "") ∧ (username1</p><formula xml:id="formula_3">/ ∈ φ) ∧ (password1 / ∈ φ) ∧ (username2 ∈ username1)∧ (password2 ∈ password1))</formula><p>Here username1 and password1 are the symbolic variables corresponding to the Add Student User page, and username2 and password2 are the symbolic variables corresponding to the LMS Login page. An SMT solver like CVC3 <ref type="bibr" target="#b11">[11]</ref> would determine if the path predicate is satisfiable, and if yes, then it will generate satisfying values for the symbolic variables occurring in the formula and hence the concrete input values would be generated. Suppose, if a counter example is generated for the path from state Inactive to state Error Page through states LMS Login, Admin Home Page, Add Users and Add Student User Page, then the path predicate formed will be: (username1 ∈ φ) ∧ (password1 ∈ φ) which will be a contradiction i.e. unsatisfiable predicate. Hence, this path will be rejected as infeasible.    still abstract because firstly variables like username1, pass-word1, etc. needs to be mapped to the implementation entities . And, secondly many of the inputs that may be needed may not be there in the original specification and are only available after the exact implementation is finished. For generating concrete test cases from the abstract test cases generated in the previous step, the ACT tool uses a mapping between phrases used in the State chart specification model to Selenium Remote Control JUnit test code which helps to translate an abstract test to concrete Selenium RC JUnit test. Figure <ref type="figure">8</ref> shows a part of XML file that was created to give a mapping between the phrases in the State chart model of Figure <ref type="figure" target="#fig_2">2</ref> to Selenium RC JUnit java code for our case study of Learning Management System. The mappings XML file is created manually. Since, the State chart model contained only partial information of the final implementation. So, now the additional information that were abstracted out from the State chart model has to be added in the Mappings XML file in order to generate the concrete Selenium RC Junit test cases. From the source code implementation of the case study of HMS, we found that in the Add Student User page there were additional input fields like Name and Department which were abstracted out in the State chart specification of Figure <ref type="figure" target="#fig_2">2</ref>. So these fields were also included in the Mappings XML file. Using the generated abstract test cases from the previous step and the mappings XML file created manually and fed as input to the ACT tool, a set of concrete Selenium RC Junit test cases is generated in this step. Figure <ref type="figure" target="#fig_4">5</ref> shows one of the concrete Selenium JUnit test case generated from our ACT tool for the case study of Learning Management System.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6.2">Abstract Test Cases Generation</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="7.">TRANSLATION OF ABSTRACT TEST CASES TO CONCRETE TEST CASES</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="8.">RESULTS</head><p>For two other web based enterprise applications developed within our institute, a Hospital Management System (HMS) and a Student Information System (SIS), we modeled our web applications using the proposed method.  system and a total of 53 abstract test cases were used for SIS System for various test criterion. Currently, we have modelled the two case studies of HMS System and SIS System but we are currently running our ACT tool and trying to calculate the number of concrete test cases that would be generated.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="9.">CONCLUSION</head><p>Test cases generated from formal specifications are often at an abstract level. They cannot be executed directly using a test automation tool, e.g. Selenium. The existing methods have tried to deal with this problem using a mapping approach. However, this approach is fundamentally limited in its capability to translate abstract test cases into concrete test case due to the presence of data flow relationship between atomic interactions between the (test-)client and the server. In this paper, we have presented a precise characterisation of this problem. Further, we have provided a test generation methodology which uses symbolic execution to resolve the data-flow between atomic interaction. The resulting abstract test cases are concrete enough so that the mapping method is effective in completely translating them to concrete test cases that can be directly executed on Selenium test runner. Through some of the steps like creation of Mappings XML file, construction of State chart, etc are manual but there is fairly a reasonable automation in the other steps in the ACT tool. Therefore, our approach is able to achieve a reasonable amount of end to end automation of the test generation process from formal specification. </p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Figure 1 :</head><label>1</label><figDesc>Figure 1: Proposed Test Generation Method used by our ACT tool</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head></head><label></label><figDesc>valid_student_usernames=null/^/ valid_student_passwords=null/^/ valid_teacher_usernames=null/^/ valid_teacher_passwords=null/^/ valid_admin_username=``admin''/^/ valid_admin_password=``admin''/ shutdown! LMS!Login!Page! My!Courses!! My!Courses! Admin!Home!! Page! Add!Users! Add/ Users.clicked/ Add/ Student.clicked/ Add!Student! !User!Page! Add!Teachers!! User!Page! Add/Teacher.clicked/ Successfully! Student!Added! Page! Add.clicked/ [!username1!∉!valid_student_usernames!∧! password1!∉!valid_student_passwords!]!/! ! valid_student_usernames/:=/ valid_student_usernames/∪/username///∧/ valid_student_passwords/:=/ valid_student_passwords/∪/password// Successfully! Teacher!Added!! Page! Error!Page!</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Figure 2 :</head><label>2</label><figDesc>Figure 2: Formal Model showing Web Navigation of Learning Management System using UML State chart model. Test Criterion CTL Trap Property Description</figDesc><graphic coords="3,65.44,108.95,516.32,419.89" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Figure 4 :</head><label>4</label><figDesc>Figure 4: Symbolic Execution: (a) Control flow path; (b) Symbolic Execution Trace</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Figure 5 :</head><label>5</label><figDesc>Figure 5: An example of an abstract test case generated for the counter example generated from the CTL Trap Temporal Logic Property !EF(state=SE-230 Software Testing)</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head>Figure 6 :</head><label>6</label><figDesc>Figure 6: A part of Mappings XML file showing mappings between phrases used in State chart specification model of Figure 2 to their corresponding Selenium RC JUnit code</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head></head><label></label><figDesc>Figure 1 gives an overview of the approach that the ACT (Abstract to Concrete test) tool uses for generating concrete Selenium RC JUnit test cases from the formal State chart web navigation model. The navigation behaviour of our case study web application is modeled using the formal specification language 'State chart'. The front end which generates test paths from the State chart model can be a test path generating algorithm like model checking or graph coverage algorithm. Abstract test cases are generated from the test paths with the help of the State chart specification. Then the abstract test cases generated are converted to Selenium RC JUnit concrete test cases using the Mappings XML file. Each of these steps are explained in elaborate details in the remaining sections.</figDesc><table /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head></head><label></label><figDesc>Thus there is a data flow between Add Student User Page page and LMS Login Page. The variables valid student usernames and valid student passwords are defined in the transition from state Add Student User Page to Successfully Student Added Page and are used in the transition from state LMS Login Page to My Courses web page. The variables valid student usernames, valid student passwords, valid teacher usernames and valid teacher passwords are shared between different interactions of the web application with the web server and across different users using the web application. When the web application has started operating, these variables are initialized to the null set. For example as shown in the State chart diagram of Figure2, variables valid student usernames, valid student passwords, valid teacher usernames and valid teacher passwords are initialized to null set in the transition from state Inactive to state Active. On a successful registration of either a teacher or a student, the values of these variables are updated and when either a student or a teacher logs in the LMS Login page, the value of these variables are accessed to check if a student or teacher is already registered or not. Our ACT tool, as illustrated in the remaining sections can store and share data across different interactions of the web application with the web server and can generate Selenium RC JUnit concrete test cases utilizing this data.</figDesc><table><row><cell>name and password.</cell></row><row><cell>, Inactive</cell></row><row><cell>state denotes that the web application has not yet started</cell></row><row><cell>operating. The composite state Active denotes that the web</cell></row><row><cell>application is in an operating state. Inside Active state, each</cell></row><row><cell>web page was modelled as a separate state. When the user</cell></row><row><cell>navigates from one webpage to another, there is a transition</cell></row><row><cell>between the corresponding states. LMS Login Page denotes</cell></row><row><cell>the Login page of Learning Management System. Here we</cell></row><row><cell>have used the mathematical notations of sets and first order</cell></row><row><cell>predicate logic constructs in guards and actions of the tran-</cell></row><row><cell>sitions in State chart model. In a web application, the value</cell></row><row><cell>which is entered by the user in one interaction of the web</cell></row><row><cell>application with the web server is often used back in another</cell></row><row><cell>interaction of the web application with the web server. For</cell></row><row><cell>example, as shown in the State chart model of Figure 2, ad-</cell></row><row><cell>min can register a student in the LMS System by entering</cell></row><row><cell>values in the username and password input fields in the Add</cell></row><row><cell>Student User Page. A necessary requirement for a student</cell></row><row><cell>to login in the LMS Login Page is that the student must be</cell></row><row><cell>registered beforehand and so must have a valid student user-</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_2"><head></head><label></label><figDesc>One from LMS Login Page to My Courses Page to SE-230 Software Testing Page. And the second test path will be the loop from LMS Login Page to Successfully Student Added Page then to My Course Page to SE-230 SoftwareTesting page. Here we will restrict the length of the loop in the counter example by using bounded model checking and set the length of the counter example to a fixed size. The CTL Trap properties for generating test paths are written for various requirements of the web application, like the top page of a web application should be reachable from all the pages of the web application. In addition, we also wrote CTL trap properties for node coverage criterion.</figDesc><table /><note>2nd Modelling Symposium (ModSym 2016) -colocated with ISEC 2016, Goa, India, Feb 18, 2016</note></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_3"><head>Table 1 :</head><label>1</label><figDesc>Some CTL Trap Temporal Logic Properties that were used for generating test paths from flattened State chart model of Learning Management System in NuSMV tool.After the test paths are generated from the State chart model, symbolic execution is carried out to generate input values to guide the execution along the test paths. The path predicate corresponding to the test path is computed. This, in turn, is given to an SMT solver to generate concrete input values. These values are used to generate the abstract test cases. The algorithm used to generate the abstract test cases using symbolic execution is shown in the block diagram in Figure3. The variables valid student usernames and valid student passwords in the State chart model in Figure2are internal program variables and are internally maintained as sets. These variables are initialized to null in the transition from state Inactive to composite state Active as shown in Figure2. The path predicate formed for the transition from Add Student User Page to Successfully Student Added Page is</figDesc><table><row><cell>6. ABSTRACT TEST CASES GENERATION</cell></row><row><cell>USING SYMBOLIC EXECUTION AND SMT</cell></row><row><cell>SOLVER</cell></row><row><cell>6.1 Path Predicate Formation &amp; Computation</cell></row><row><cell>of Concrete Values</cell></row><row><cell>This section illustrates the method of formation of path</cell></row><row><cell>predicates and the generation of concrete values using the</cell></row><row><cell>example of the counter example generated from the CTL</cell></row><row><cell>Trap Property !EF(state=SE-230 Software Testing).</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_4"><head></head><label></label><figDesc>Finally the abstract test cases are generated by plugging in concrete input values which are computed in the symbolic execution stage at appropriate points in the counter examples. The phases in the counter examples which have</figDesc><table><row><cell></cell><cell cols="2">Symbolic</cell><cell></cell><cell></cell><cell></cell></row><row><cell></cell><cell cols="2">Execution</cell><cell></cell><cell>Path</cell><cell></cell></row><row><cell>Path Spec</cell><cell>Symbolic Execution</cell><cell>Trace</cell><cell>Extraction Predicate Path</cell><cell>Predicate</cell><cell>Solver SMT</cell></row><row><cell></cell><cell></cell><cell></cell><cell>Form Test</cell><cell></cell><cell></cell></row><row><cell></cell><cell></cell><cell></cell><cell>Case</cell><cell></cell><cell></cell></row><row><cell>Abstract Test</cell><cell></cell><cell></cell><cell></cell><cell>Concrete</cell><cell></cell></row><row><cell>Case Generation</cell><cell></cell><cell></cell><cell></cell><cell>Values</cell><cell></cell></row><row><cell></cell><cell></cell><cell></cell><cell>Abstract</cell><cell></cell><cell></cell></row><row><cell></cell><cell></cell><cell></cell><cell>Test</cell><cell></cell><cell></cell></row><row><cell></cell><cell></cell><cell></cell><cell>Case</cell><cell></cell><cell></cell></row><row><cell cols="6">Figure 3: Abstract test case generation using Sym-</cell></row><row><cell cols="2">bolic execution</cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell>t1</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell cols="2">valid student usernames ← φ</cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell cols="2">valid student passwords ← φ</cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell>s1</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell cols="2">username ← "admin</cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell cols="2">password ← "admin</cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell cols="2">Login.clicked</cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell cols="2">AddU sers.clicked</cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell cols="2">AddStudent.clicked</cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell cols="2">username1 ← input()</cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell cols="2">password1 ← input()</cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell cols="2">Add.clicked()</cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell>t4</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell cols="3">username1 / ∈ valid student usernames</cell><cell></cell><cell></cell><cell></cell></row><row><cell cols="3">password1 / ∈ valid student passwords</cell><cell></cell><cell></cell><cell></cell></row><row><cell cols="3">valid student usernames ← valid student usernames</cell><cell></cell><cell></cell><cell></cell></row><row><cell></cell><cell cols="2">∪{username1}</cell><cell></cell><cell></cell><cell></cell></row><row><cell cols="3">valid student passwords ← valid student passwords</cell><cell></cell><cell></cell><cell></cell></row><row><cell></cell><cell cols="2">∪{password1}</cell><cell></cell><cell></cell><cell></cell></row><row><cell>Logout.clicked</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell>s3</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell cols="2">username2 ← input()</cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell cols="2">password2 ← input()</cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell cols="2">Login.clicked()</cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell>t5</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell cols="3">username2 ∈ valid student usernames</cell><cell></cell><cell></cell><cell></cell></row><row><cell cols="3">password2 ∈ valid student passwords</cell><cell></cell><cell></cell><cell></cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_6"><head>Table 2</head><label>2</label><figDesc></figDesc><table><row><cell>shows the lines of code (LOC) of the two systems,</cell></row><row><cell>the number of nodes in the flattened State chart (N f lat ), the</cell></row><row><cell>number of mappings and the number of abstract test cases(</cell></row><row><cell>or counter examples) used for the various test coverage cri-</cell></row><row><cell>terion. A total of 14 abstract test cases were used for HMS</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_7"><head>Table 2 :</head><label>2</label><figDesc>Results of test generation on two other case studies Hospital Management System and Student Currently we are running our ACT tool on our LMS system and we are currently trying to find out the number of concrete test cases that would be generated for various test criteria. So in our future work, we will try to find out the relation between the number of concrete test cases and the number of abstract test cases and we will also try to see how the number of concrete test case and the number of abstract test cases varies with the size of the State chart model.• In our future work, we will generalise this approach to apply other forms of formal specification and coverage criteria. In addition, we intend to apply other forms of front-end techniques like graph coverage criteria in generating test paths instead of the model checking approach for generation of test paths . Figure 7: A Selenium RC JUnit concrete test case generated from our ACT tool for the case study of Learning Management System for the test path generated from the CTL trap property !EF(state= SE-230 Software Testing) 2nd Modelling Symposium (ModSym 2016) -colocated with ISEC 2016, Goa, India, Feb 18, 2016</figDesc><table><row><cell>Web Applications</cell><cell>Nflat</cell><cell>LOC</cell><cell>No. of Mappings</cell><cell>No. of abstract tests (counter examples)</cell><cell></cell></row><row><cell>Hospital Management Sys-tem (HMS)</cell><cell>6</cell><cell>133</cell><cell></cell><cell>Node coverage</cell><cell>6</cell></row><row><cell></cell><cell></cell><cell></cell><cell>20</cell><cell>Top page is reachable from all the pages</cell><cell>4</cell></row><row><cell></cell><cell></cell><cell></cell><cell></cell><cell>Every page is reachable from the top page</cell><cell>4</cell></row><row><cell></cell><cell></cell><cell></cell><cell></cell><cell>Total</cell><cell>14</cell></row><row><cell>Student Information System (SIS)</cell><cell>19</cell><cell>15,770</cell><cell>56</cell><cell>Node coverage</cell><cell>19</cell></row><row><cell></cell><cell></cell><cell></cell><cell></cell><cell>Top page is reachable from all the pages</cell><cell>17</cell></row><row><cell></cell><cell></cell><cell></cell><cell></cell><cell cols="2">Every page is reachable from the top page 17</cell></row><row><cell></cell><cell></cell><cell></cell><cell></cell><cell>Total</cell><cell>53</cell></row><row><cell>Information System</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell>10. FUTURE WORK</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell cols="3">In our future work, we will try to address the following is-</cell><cell></cell><cell></cell><cell></cell></row><row><cell>sues:</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row><row><cell>•</cell><cell></cell><cell></cell><cell></cell><cell></cell><cell></cell></row></table><note>2nd Modelling Symposium (ModSym 2016) -colocated with ISEC 2016, Goa, India, Feb 18, 2016 selenium . type ( " css = input [ id = ' password1 '] " , " abc " ); selenium . click ( " // input [ @id = ' loginbtn ']"); selenium . click ( " xpath =// a [ contains ( @href , ' ROOT / login / index . php ')] " ); selenium . type ( " css = input [ id = ' username2 '] "</note></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_0">2nd Modelling Symposium (ModSym 2016) -colocated with ISEC 2016, Goa, India, Feb 18, 2016</note>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Statecharts: A Visual formalism for complex systems</title>
		<author>
			<persName><forename type="first">D</forename><surname>Harel</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Science of Computer Programming</title>
		<imprint>
			<biblScope unit="volume">8</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="231" to="274" />
			<date type="published" when="1987-06-01">June 1, 1987</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<title level="m" type="main">Modeling and Verification of Web Applications Using Formal Approach</title>
		<author>
			<persName><forename type="first">K</forename><surname>Homma</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Izumi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Takahashi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Togashi</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
	<note type="report_type">IEICE Tech. Report</note>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Modeling and Verification of Adaptive Navigation in Web Applications</title>
		<author>
			<persName><forename type="first">M</forename><surname>Han</surname></persName>
		</author>
		<author>
			<persName><forename type="first">C</forename><surname>Hofmeister</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of 6th Intl. Conf. on Web Engg</title>
				<meeting>of 6th Intl. Conf. on Web Engg</meeting>
		<imprint>
			<biblScope unit="page" from="329" to="336" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">Analysis and Testing of Web Applications</title>
		<author>
			<persName><forename type="first">F</forename><surname>Ricca</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Tonella</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of the 23rd Intl. Conf. on Software Engineering</title>
				<meeting>of the 23rd Intl. Conf. on Software Engineering</meeting>
		<imprint>
			<date type="published" when="2001">2001</date>
			<biblScope unit="page" from="25" to="34" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">Modeling methods for Web Application Verification and Testing: State of the art</title>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">H</forename><surname>Alalfi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">R</forename><surname>Cordy</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><forename type="middle">R</forename><surname>Dean</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Software Testing, Verification and Relaibility</title>
		<imprint>
			<biblScope unit="volume">19</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="265" to="296" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<title level="m" type="main">A Test Automation Language for Behavioral Models</title>
		<author>
			<persName><forename type="first">N</forename><surname>Li</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Offutt</surname></persName>
		</author>
		<idno>GMU-CS-TR-2013-7</idno>
		<imprint/>
	</monogr>
	<note type="report_type">Technical Report</note>
</biblStruct>

<biblStruct xml:id="b6">
	<analytic>
		<title level="a" type="main">A Testing Tool for Web Applications Using a Domain-Specific Modelling Language and the NuSMV Model Checker</title>
		<author>
			<persName><forename type="first">A.-M</forename><surname>Torsel</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">6th Intl. Conf. on Software Testing, Verification and Validation</title>
				<imprint>
			<biblScope unit="page" from="383" to="390" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">State-based Testing of AJAX Web Applications</title>
		<author>
			<persName><forename type="first">A</forename><surname>Marcetto</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Tonella</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Ricca</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of</title>
				<meeting>of</meeting>
		<imprint>
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<monogr>
		<title level="m">Intl. Conf. on Software Testing, Verification, and Validation</title>
				<imprint>
			<biblScope unit="page" from="121" to="130" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Automatic Test Generation from Statecharts Using Model Checking</title>
		<author>
			<persName><forename type="first">H</forename><forename type="middle">S</forename><surname>Hong</surname></persName>
		</author>
		<author>
			<persName><forename type="first">I</forename><surname>Lee</surname></persName>
		</author>
		<author>
			<persName><forename type="first">O</forename><surname>Sokolsky</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of FATES&apos;01, Workshop on Formal Approaches to Testing of Software</title>
				<meeting>of FATES&apos;01, Workshop on Formal Approaches to Testing of Software</meeting>
		<imprint>
			<biblScope unit="page" from="1" to="4" />
		</imprint>
	</monogr>
	<note>BRICS Notes Series</note>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Formal Test-Case Generation for UML Statecharts</title>
		<author>
			<persName><forename type="first">S</forename><surname>Gnesi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Latella</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Massink</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. Ninth IEEE International Conf. Eng. of Complex Computer Systems</title>
				<editor>
			<persName><forename type="first">P</forename><surname>Bellini</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">S</forename><surname>Bohner</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">B</forename><surname>Steffen</surname></persName>
		</editor>
		<meeting>Ninth IEEE International Conf. Eng. of Complex Computer Systems</meeting>
		<imprint>
			<date type="published" when="2004-04">Apr. 2004</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<monogr>
		<ptr target="http://www.cs.nyu.edu/acsys/cvc3/" />
		<title level="m">CVC3 SMT solver</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<monogr>
		<title level="m">Modelling Symposium (ModSym 2016) -colocated with ISEC 2016</title>
				<meeting><address><addrLine>Goa, India</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2016-02-18">Feb 18, 2016</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
