Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where B. M. Mainul Hossain is active.

Publication


Featured researches published by B. M. Mainul Hossain.


foundations of software engineering | 2012

CarFast: achieving higher statement coverage faster

Sangmin Park; B. M. Mainul Hossain; Ishtiaque Hussain; Christoph Csallner; Mark Grechanik; Kunal Taneja; Chen Fu; Qing Xie

Test coverage is an important metric of software quality, since it indicates thoroughness of testing. In industry, test coverage is often measured as statement coverage. A fundamental problem of software testing is how to achieve higher statement coverage faster, and it is a difficult problem since it requires testers to cleverly find input data that can steer execution sooner toward sections of application code that contain more statements. We created a novel fully automatic approach for aChieving higher stAtement coveRage FASTer (CarFast), which we implemented and evaluated on twelve generated Java applications whose sizes range from 300 LOC to one million LOC. We compared CarFast with several popular test case generation techniques, including pure random, adaptive random, and Directed Automated Random Testing (DART). Our results indicate with strong statistical significance that when execution time is measured in terms of the number of runs of the application on different input test data, CarFast outperforms the evaluated competitive approaches on most subject applications.


foundations of software engineering | 2013

Preventing database deadlocks in applications

Mark Grechanik; B. M. Mainul Hossain; Ugo A. Buy; Haisheng Wang

Many organizations deploy applications that use databases by sending Structured Query Language (SQL) statements to them and obtaining data that result from the execution of these statements. Since applications often share the same databases concurrently, database deadlocks routinely occur in these databases resulting in major performance degradation in these applications. Database engines do not prevent database deadlocks for the same reason that the schedulers of operating system kernels do not preempt processes in a way to avoid race conditions and deadlocks - it is not feasible to find an optimal context switching schedule quickly for multiple processes (and SQL statements), and the overhead of doing it is prohibitive. We created a novel approach that combines run-time monitoring, which automatically prevents database deadlocks, with static analysis, which detects hold-and-wait cycles that specify how resources (e.g., database tables) are held in contention during executions of SQL statements. We rigorously evaluated our approach. For a realistic case of over 1,200 SQL statements, our algorithm detects all hold-and-wait cycles in less than two seconds. We built a toolset and experimented with three applications. Our tool prevented all existing database deadlocks in these applications and increased their throughputs by up to three orders of magnitude.


international conference on software testing verification and validation | 2013

Testing Database-Centric Applications for Causes of Database Deadlocks

Mark Grechanik; B. M. Mainul Hossain; Ugo A. Buy

Many organizations deploy applications that use databases by sending Structured Query Language (SQL) statements to them and obtaining data that result from executions of these statements. Since applications often share the same databases concurrently, database deadlocks routinely occur in these databases. Testing applications to determine how they cause database deadlocks is important as part of ensuring correctness, reliability, and performance of these applications. Unfortunately, it is very difficult to reproduce database deadlocks, since it involves different factors such as the precise interleavings in executing SQL statements. We created a novel approach for Systematic TEsting in Presence of DAtabase Deadlocks (STEPDAD) that enables testers to instantiate database deadlocks in applications with a high level of automation and frequency. We implemented STEPDAD and experimented with three applications. On average, STEPDAD detected a number of database deadlocks exceeding the deadlocks obtained with the baseline approach by more than an order of magnitude. In some cases, STEPDAD reproduced a database deadlock after running an application only twice, while no database deadlocks could be obtained after ten runs using the baseline approach.


Software - Practice and Experience | 2016

RUGRAT: Evaluating program analysis and testing tools and compilers with large generated random benchmark applications

Ishtiaque Hussain; Christoph Csallner; Mark Grechanik; Qing Xie; Sangmin Park; Kunal Taneja; B. M. Mainul Hossain

Benchmarks are heavily used in different areas of computer science to evaluate algorithms and tools. In program analysis and testing, open‐source and commercial programs are routinely used as benchmarks to evaluate different aspects of algorithms and tools. Unfortunately, many of these programs are written by programmers who introduce different biases, not to mention that it is very difficult to find programs that can serve as benchmarks with high reproducibility of results. We propose a novel approach for generating random benchmarks for evaluating program analysis and testing tools and compilers. Our approach uses stochastic parse trees, where language grammar production rules are assigned probabilities that specify the frequencies with which instantiations of these rules will appear in the generated programs. We implemented our tool for Java and applied it to generate a set of large benchmark programs of up to 5M lines of code each with which we evaluated different program analysis and testing tools and compilers. The generated benchmarks let us independently rediscover several issues in the evaluated tools. Copyright


international workshop on dynamic analysis | 2012

Evaluating program analysis and testing tools with the RUGRAT random benchmark application generator

Ishtiaque Hussain; Christoph Csallner; Mark Grechanik; Chen Fu; Qing Xie; Sangmin Park; Kunal Taneja; B. M. Mainul Hossain

Benchmarks are heavily used in different areas of computer science to evaluate algorithms and tools. In program analysis and testing, open-source and commercial programs are routinely used as bench- marks to evaluate different aspects of algorithms and tools. Unfor- tunately, many of these programs are written by programmers who introduce different biases, not to mention that it is very difficult to find programs that can serve as benchmarks with high reproducibil- ity of results. We propose a novel approach for generating random benchmarks for evaluating program analysis and testing tools. Our approach uses stochastic parse trees, where language grammar production rules are assigned probabilities that specify the frequencies with which instantiations of these rules will appear in the generated pro- grams. We implemented our tool for Java and applied it to generate benchmarks with which we evaluated different program analysis and testing tools. Our tool was also implemented by a major soft- ware company for C++ and used by a team of developers to gener- ate benchmarks that enabled them to reproduce a bug in less than four hours.


2017 IEEE International Conference on Imaging, Vision & Pattern Recognition (icIVPR) | 2017

Clustering-based Bangla spell checker

Prianka Mandal; B. M. Mainul Hossain

Detecting spelling errors and correcting those errors automatically is a great research challenge. Developing a precise spell checker for Bangla language which detects spelling errors and provides suggestions for correcting those errors, is quite difficult because of the complex rules of Bangla spelling. In this paper, a clustering-based spell checking technique is proposed for Bangla language that reduces both search space and search time. Therefore, it improves the performance of a spell checker. The proposed spell checker can handle both typographical errors and phonetic errors. To evaluate the proposed spell checking technique, we use 2,450 misspelled words and the result shows that the proposed approach performs better for checking and correcting spelling errors. The success rate of proposed spell checker is 99.8%. We compare our spell checking technique with two Bangla spell checkers, Avro and Puspa and the proposed system provides relatively better results.


foundations of software engineering | 2013

REDACT: preventing database deadlocks from application-based transactions

B. M. Mainul Hossain; Mark Grechanik; Ugo A. Buy; Haisheng Wang

In this demonstration, we will present a database deadlocks prevention system that visualizes our algorithm for detecting hold-and-wait cycles that specify how resources (e.g., database tables) are locked and waited on to be locked during executions of SQL statements and utilizes those cycles information to prevent database deadlocks automatically.


international conference on performance engineering | 2015

Enhancing Performance And Reliability of Rule Management Platforms

Mark Grechanik; B. M. Mainul Hossain

RulE Management Platforms (REMPs) enable software engineers to represent programming logic as conditional sentences that relate statements of facts. A key benefit of REMPs is that they make software adaptable by burying the complexity of rule invocation in their engines, so that programmers can concentrate on business aspects of highly modular rules. Naturally, rule-driven applications are expected to have excellent performance, since REMP engines should be able to invoke highly modular rules in parallel in response to asserting different facts. In reality, it is very difficult to parallelize rule executions, since it leads to the loss of reliability and adaptability of rule-driven applications. We created a novel solution that is based on obtaining a rule execution model that is used at different layers of REMPs to enhance the performance of rule-driven applications while maintaining their reliability and adaptability. First, using this model, possible races are detected statically among rules, and we evaluate an implementation of our abstraction of algorithms for automatically preventing races among rules. Next, we use the sensitivity analysis to find better schedules among simultaneously executing rules to improve the overall performance of the application. We implemented our solution for JBoss Drools and we evaluated it on three applications. The results suggest that our solution is effective, since we achieved over 225% speedup on average.


Eurasip Journal on Image and Video Processing | 2017

DTCTH: a discriminative local pattern descriptor for image classification

Md. Mostafijur Rahman; Shanto Rahman; Rayhanur Rahman; B. M. Mainul Hossain; Mohammad Shoyaib


Advances in Technology Innovation | 2017

A CNN Based Approach for Garments Texture Design Classification

S.M. Sofiqul Islam; Emon Kumar Dey; Md. Nurul Ahad Tawhid; B. M. Mainul Hossain

Collaboration


Dive into the B. M. Mainul Hossain's collaboration.

Top Co-Authors

Avatar

Mark Grechanik

University of Illinois at Chicago

View shared research outputs
Top Co-Authors

Avatar

Christoph Csallner

University of Texas at Arlington

View shared research outputs
Top Co-Authors

Avatar

Ishtiaque Hussain

University of Texas at Arlington

View shared research outputs
Top Co-Authors

Avatar

Kunal Taneja

North Carolina State University

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Sangmin Park

Georgia Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Ugo A. Buy

University of Illinois at Chicago

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Haisheng Wang

University of Illinois at Chicago

View shared research outputs
Researchain Logo
Decentralizing Knowledge