Loading...
Search for:
mirian-hosseinabadi--hassan
0.125 seconds
Total 782 records
A Semi-Automated Software Testing Using Input Space Partitioning
, M.Sc. Thesis Sharif University of Technology ; Mirian Hosseinabadi, Hassan (Supervisor)
Abstract
It's impossible to check all inputs of a software program due to infinite input domain, therefore the domain should be somehow restricted. One popular approach to do so, is input space partitioning. In this approach, the input domain has been modeled and partitioned into some equivalent classes or blocks. Using these blocks, it's possible to select one sample from each one and reduce the number of test cases to a small desirable number. To automate this approach, it's essential to firstly define the software requirements specification in a well-defined machine understandable template, then with processing this document we can detect program’s functionality and testable functions. Our goal in...
Generating Mutants to Improve Test Suites: A Search-Based Approach
, M.Sc. Thesis Sharif University of Technology ; Mirian-Hosseinabadi, Hassan (Supervisor)
Abstract
Mutation testing is known to be one of the best strategies to improve the quality of test suites, consequently the quality of the software. However, some challenges make mutaton testing unpractical. One of the main challenges confronting mutation testing is that it demands exhustive computation and is time consuming because of the large number of mutants that need to be compiled and executed on the test cases of the test suite. Many researches have been conducted to reduce the number of mutants without losing the main characteristics of the all possible mutants. Most of these researches select the mutants without considering the characteristics of the test suite, therefore the reduced set of...
Refning Object Oriented Formal Specifcation To Object Oriented Code
, M.Sc. Thesis Sharif University of Technology ; Mirian Hosseinabadi, Hassan (Supervisor)
Abstract
The presented work provides a calculus for refining an object oriented formal specification to an object oriented code. A refinement calculus provides a framework to produce executable code from a specification while preserving its correctness. Eiffel Refinement Calculus is the most complete work in this domain which is studied in this research.
The Formal specification language which is considered for this purpose is .JML to specify executable code in .Java language. For this calculus some refinement laws are pre- sented and their proofs is given by weakest precondition predicate transformer, a work which was not considered in Eiffel Refinement Calculus. The constructs which are used in...
The Formal specification language which is considered for this purpose is .JML to specify executable code in .Java language. For this calculus some refinement laws are pre- sented and their proofs is given by weakest precondition predicate transformer, a work which was not considered in Eiffel Refinement Calculus. The constructs which are used in...
A Process Model for Software Product line Engineering Based on the Model Driven Architecture
, M.Sc. Thesis Sharif University of Technology ; Mirian Hosseinabadi, Hassan (Supervisor)
Abstract
Software development process is a base ground for all software activities and ensures all aspects of the software. No quality is guaranteed without a definite process. Model-Driven Software Development process proposes an industrial method for software companies to produce the required software through model(s) and tools. On the other hand, Software Product Line imposes a set of frameworks and principles. As a result a tangible decrement of development time and cost along with an increment of quality is achieved. Mixing both processes creates a stronger industrial process in order to decrease the development time and cost. In this thesis, through a survey on both of the processes and related...
An Improvement on Test Driven Development
, M.Sc. Thesis Sharif University of Technology ; Mirian Hosseinabadi, Hassan (Supervisor)
Abstract
Less than a decade ago, Test Driven Development (TDD) emerged as a quality assurance approach and applied in agile software developments. In this method, test cases act as software development driver and a new piece of code is added just to satisfy the corresponding test case in the test repository. Although the results of applying TDD show its success in software quality promotion, but the method suffers from some limitations and shortcomings that make its usage hard in complicated and enterprise software projects, particularly in the industry. The goal of the following research is to mitigate the drawbacks of TDD and improve the method in order to make it more applicable for complicated...
XML Query Processing Optimization
, M.Sc. Thesis Sharif University of Technology ; Mirian Hosseinabadi, Hassan (Supervisor)
Abstract
XML has been emerged as a de facto standard for data exchange and information transition over computer networks including Web. On the other hand by the growing use of sensors and data streams over computer networks, the usage of XML data format for data streams between data and processing units like sensors and information centers is growing. In this thesis first we do a survey on XML query processing and optimization and after that we propose methods for optimizing query processing over XML data streams based on data stream unique attributes and incremental completeness of XML data trees for increasing the speed of processing and decreasing the amount of memory that processing needs. For...
Testing of Workflow Engine Based Systems: A Model-Based Approach
, M.Sc. Thesis Sharif University of Technology ; Mirian Hosseinabadi, Hassan (Supervisor)
Abstract
As the increased use of workflow engine based systems in various domains, quality assurance and testing them has become critical. The majority of these systems are designed and implemented by a workflow language, so testing these systems is highly dependent of workflow language. In this thesis the common domain of business processes is chosen. In this area, little researches have examined the implemened processes with the second version of BPMN modeling language, and most methods, examined another language called BPEL. For this reason and due to the increased use of BPMN language because of its unique characteristics, this study focuses on testing of systems implemented with this language....
A Method for Testing Aspect-Oriented Programs
, M.Sc. Thesis Sharif University of Technology ; Mirian Hosseinabadi, Hassan (Supervisor)
Abstract
Aspect-Oriented Programming is a software engineering paradigm that offers new constructs, such as join points, pointcuts, advices and aspects in order to improve separation of crosscutting concerns. The new constructs bring new type of programming faults with respect to crosscutting concerns, such as incorrect pointcuts, advice or aspect precedence. In fact, existing object-oriented testing techniques are not adequate for testing aspect-oriented programs. As a result, new testing techniques must be developed. In this paper, an approach based upon UML sequence diagrams for testing aspect- oriented program is presented. The proposed approach focuses on integration of one or several...
An Evolutionary Feature-Oriented Approach For Software Product Line Engineering
, M.Sc. Thesis Sharif University of Technology ; Mirian Hosseinabadi, Hassan (Supervisor)
Abstract
In the current decade there has been research works around adopting agile methodologies for software product line engineering. However, the emphasis has been on the process part of the methodology and the main product which is the source code has been neglected.The prevalent modeling and implementation method of software product line is the featureoriented method. The concept of ”Feature-to-code mapping” is introduced in the implementation phase which recently novel approaches have been proposed to realize it.Despite superiority of the novel approaches in this field, prevalent industrial product lines still use C language and map features to code by leveraging traditional preprocessors of C...
A Technique for Transforming Computer Independent Model to Platform Independent Model in Model Driven Development of Software
, M.Sc. Thesis Sharif University of Technology ; Mirian Hosseinabadi, Hassan (Supervisor)
Abstract
Software Development is an engineering activity and similar to other engineering activities requires a process. Model-driven architecture introduces a group of processes which have models as their pivot. Throughout such processes we have to deal with models and model transformations. Model-driven architecture presents different abstraction levels for models used in a process. Model-driven architecture which, starting from business models acquired from the environment sets out guidelines for obtaining models that produces software source code as its final goal. The most important issue in model-driven architecture is transformation between models of different abstraction levels. Among them...
Test Case Refactoring in Test-Driven Development of Software: A Pattern-Based Approach
, M.Sc. Thesis Sharif University of Technology ; Mirian Hosseinabadi, Hassan (Supervisor)
Abstract
Design patterns as successful solutions of recurring problems, have attracted much attention in the field of Software Engineering. These Patterns, which are derived from the principles of Object-Oriented programming, are fine-grained architectures that have significant impact on software quality attributes such as maintainability, scalability, configurability, understandability, and so on. On the other hand, Refactoring as behavior protective method for making changes to software structure, to enhance maintainability and reduce the cost of changes, is now widely used in industry. This structural changes, can be as simple as moving a method or adding a parameter, or as complex as transforming...
An Agile Methodology with the Facility of Reusing Common Assets
, M.Sc. Thesis Sharif University of Technology ; Mirian Hosseinabadi, Hassan (Supervisor)
Abstract
Software Reuse, the use of (pre)existing artifacts to create new systems, can reduce development costs and improve software quality and productivity. With a primary investment, Software Product Line facilitates a systematic reuse of the common parts of an specific domain in developing similar systems of that domain. On the Contrary, Agile Methods who value working software over comprehensive documentations and such investments is not done, lack reuse in developing similar systems. Here the question arises: why do we completely or almost miss such reuse when the only focus is on creating working software? When such investments or additional works like documentation are not done? Is there any...
Software Testing Based on Input Grammars with Semantics
, Ph.D. Dissertation Sharif University of Technology ; Mirian Hosseinabadi, Hassan (Supervisor)
Abstract
Generating test cases based on software input interface is a black-box testing technique that can be made more effective by using structured input models such as input grammars. Automatically generating grammar-based test inputs may lead to structurally valid but semantically invalid inputs that may be rejected in early semantic error checking phases of a system under test. This research aims to introduce a method for specifying a grammar-based input model with the model’s semantic constraints to be used in the generation of positive test inputs. It is also important that the method can generate effective test suites based on appropriate grammar-based coverage criteria. Formal specification...
Evolutionary Testing of Object Oriented Softwares
, M.Sc. Thesis Sharif University of Technology ; Mirian Hosseinabadi, Hassan (Supervisor)
Abstract
Application of evolutionary algorithms in software testing, called evolutionary testing, has been an area of interest for many researchers. Automatic generation of test cases is the main purpose of evolutionary testing. In recent years lots of tools for test case generation in structured and object oriented softwares has been developed using different evolutionary algorithms. All of theses tools targeted unit test case generation and high code coverage of class under test. In this thesis we propose an approach for generation of integration test cases in object oriented softwares. We use bottom-up integration approach for generation of test cases by applying the solutions presented for...
Testing Android Event-Driven Applications
, M.Sc. Thesis Sharif University of Technology ; Mirian Hosseinabadi, Hassan (Supervisor)
Abstract
There are different classes of event-driven softwares. These softwares include Graphical user interface, web application or embedded software. In these kinds of softwares, each user’s action while using application, is known as “event”. The application responds to the action through changing behavior and then waiting for another event. Testing software is the best way for checking the quality assurance of event-driven softwares. However, there are some problems, such as lengthy event sequences, in testing these kinds of softwares. Therefore, many solutions are introduced for these problems. The goal of this report, is presenting new testing procedure for event-driven Android applications....
Generating Test Cases for Web-Based Programs Using Field Data
, M.Sc. Thesis Sharif University of Technology ; Mirian Hosseinabadi, Hassan (Supervisor)
Abstract
Generating and finding proper test cases is the most important task among software testing tasks. Lots of valuable information can be found in user interactions with web based applications. In this thesis, a method called "Hampa Karbar", will be presented, which consists of two main components, namely, "Request Tracker" and "Tester". Request Tracker is an aspect that can be woven into any methods of any kind of web based applications. This aspect will follow user serving methods to collect data for test cases. Then the second component, "Tester", will create and run test cases using collected data by the Request Tracker component. This method helps developers to find bugs which are hard to...
A Method for Evaluating Effectiveness of Test Cases
, M.Sc. Thesis Sharif University of Technology ; Mirian-Hosseinabadi, Hassan (Supervisor)
Abstract
One of the most important methods to ensure correct software and check the quality of software is software testing. One of the most important discussions about software testing is the effectiveness of a test suite. Manufacturers need a benchmark to determine the effectiveness of the test suite to stop the software testing process. The proposed solutions for determining the effectiveness are mutation testing and code coverage. The mutation test has a higher accuracy than the code coverage, but it takes a long time to calculate. This dissertation has tried to improve the existing solutions by presenting a new coverage that has a higher degree of accuracy than the proposed coverages in...
The Bug Prediction Model Using Mutation Metrics
, M.Sc. Thesis Sharif University of Technology ; Mirian Hosseinabadi, Hassan (Supervisor)
Abstract
Software developers notice existence of faults by report of a fault in issue tracking systems or a failure in software tests. Then they try to locate the bug and understand the problem. Early detection of fault results in saving time and money and facilitates debugging process. Prediction models can be built and used easily by modern statistical tools. Software metrics are the most important part of prediction models. Therefore higher performance in models can be achieved using new and effective metrics. In this study, process metrics and metrics that built base on mutation analysis used and resulting models evaluated. In addition to using process metrics with mutation metrics, two group of...
Code Change Analysis and its Impact on Software Architecture
, M.Sc. Thesis Sharif University of Technology ; Mirian Hosseinabadi, Hassan (Supervisor)
Abstract
Software versioning is always considered one of the main principle activities in maintain software systems. Investigating code and software architecture conformance in different versions of software and its impact on other parts of the system due to its needed granularity, or even on high abstraction models, such as software design and software architecture are considered as a challenge in this area. Code level changes frequently result in the changes in high-level abstractions unintentionally and would impact the performance of a software system. While this true, not only software engineers need to test the code functionalities which are changed but also test the various impacted parts of...
Test Transfer Between Mobile Applications Independent of the Applications Platform
, M.Sc. Thesis Sharif University of Technology ; Mirian Hosseinabadi, Hassan (Supervisor)
Abstract
Writing UI tests manually requires significant effort. In order to solve this problem in mobile apps, several approaches by exploiting the similarities of different apps within the same domain on a single platform have shown that it is possible to transfer tests that have that exercise similar functionality between the apps. Recently, two approaches aimed to transferring UI tests between Android and iOS platforms make it possible to transfer tests from one source app to the same app implemented for another platform. this research presents an approach, which expands existing work in three important ways: (1) without using the source code of the apps, extracts a static model of the target app...