Suleman Mahmood

dblp:183/4729 · also Muhammad Suleman Mahmood · DBLP profile ↗
← Back
7ranked-venue papers
3as first author
1since 2021 · last 2021
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 5 · 1 first-authorHuman-computer interaction and ubiquitous computing · 2 · 2 first-author · 1 since 2021

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
2 papers
Software testing · 78% Program analysis · 16% Software maintenance and evolution · 6%
Databases, data mining, and information retrieval
1 paper
Data models and query languages · 100%

Topics — the 7 heaviest of 7, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Software testing
regression testing
0.312018
Evaluating test-suite reduction in real software evolution · ISSTA 2018
Software testing › test suite evaluation
test effectiveness evaluation
0.312018
Evaluating test-suite reduction in real software evolution · ISSTA 2018
Software testing › regression testing
test suite reduction
0.312018
Evaluating test-suite reduction in real software evolution · ISSTA 2018
Program analysis
symbolic execution
0.212016
Symbolic execution of stored procedures in database management systems · ASE 2016
Software testing
unit testing
0.212016
Symbolic execution of stored procedures in database management systems · ASE 2016
Software maintenance and evolution
software evolution
0.112018
Evaluating test-suite reduction in real software evolution · ISSTA 2018
Data models and query languages › database programming
stored procedures
0.112016
Symbolic execution of stored procedures in database management systems · ASE 2016

Methods — techniques the papers use, named apart from their topics

symbolic execution · 0.5automated test generation · 0.5fault seeding · 0.3empirical study · 0.3
YearPublicationVenuePosition
2021 A Modular Assessment for Cache Memories
abstract
We construct and evaluate a modular assessment for students' knowledge about CPU cache memories. Caches play a key role in improving performance in modern computing. They are difficult for students to learn, but we have little conceptual or empirical evidence about why. Building on prior frameworks, we propose six underlying knowledge components that we believe students need to robustly evaluate how a cache can affect the performance of code on a processor. We constructed a modular assessment using these components that can be used as a diagnostic instrument to find the concepts students are struggling to understand. Because different institutions teach caches at varying depths of detail, individual modules of the assessment can be used by instructors and researchers as appropriate for their context. We evaluated the assessment using a combination of Classical Test Theory, Exploratory Factor Analysis, and Confirmatory Factor Analysis. Our results suggest that the assessment is reliable and can be used modularly to assess various components of students' knowledge about caches, though future work needs to be done to evaluate the validity of these modules at different institutions. This assessment can help instructors and researchers design more precisely targeted instructional interventions to help students learn caches. The creation of similar modular assessments may help us in improving instruction in other difficult topics in computing.
Suleman Mahmood, Geoffrey L. Herman
SIGCSE1
2020 Caches as an Example of Machine-gradable Exam Questions for Complex Engineering Systems
abstract
This Innovative Practice Full Paper presents a framework for generating computer-based exams for complex engineering systems (such as cache memories) that can be machine graded while still offering partial credit for students. Complex multi-faceted engineering systems often require long, multi-part problems to fully assess students' understanding of those systems. Cache memories represent one such system in computer architecture courses. Traditionally, we assessed students' understanding of caches using comprehensive, multipart questions in a paper-based exam. Grading these exams was time-consuming and relied on subjective grading. To cope with rising enrollment, we sought to address these issues by developing machine administered and gradable exams that did not heavily rely on multiple-choice questions or exact numerical responses. Additionally, this system needed to provide partial credit, a common expectation of our students. We developed a cache simulator to use as a back-end for our questions. We used the simulator to develop exam questions and new homework assignments to help students practice cache memory concepts. To give students access to fair partial credit, we allowed multiple submissions for the exam questions with limited feedback. We also awarded partial credit for answers within certain tolerance of the correct answer. The partial credit awarded reduced as deviation from the correct answer increased. Consequently, students could correct minor mistakes or propagating errors which are common reasons for awarding partial credit. To evaluate the effect of the switch from paper-based to computerized exam, we ported questions from one of our paper-based exams to a computerized exam. We evaluated the differences in student performance on paper-based version and the computerized version of the questions and found mixed results with students performing comparably or better than the paper-based exam on the computer-based exam. We also surveyed students about their experience with the computer-based exam. Students overwhelmingly indicated a preference for the computer-based exam. We believe that ideas from our work can be used to automate generation, administration, and grading of complex multi-part questions in engineering disciplines beyond computer architecture.
Suleman Mahmood, Geoffrey L. Herman
FIE1
2020 Extending symbolic execution for automated testing of stored procedures
Maryam Abdul Ghafoor, Suleman Mahmood, Junaid Haroon Siddiqui
Softw. Qual. J.2
2019 Comparing Mutation Testing at the Levels of Source Code and Compiler Intermediate Representation
abstract
Mutation testing is widely used in research for evaluating the effectiveness of test suites. There are multiple mutation tools that perform mutation at different levels, including traditional mutation testing at the level of source code (SRC) and more recent mutation testing at the level of compiler intermediate representation (IR). This paper presents an extensive comparison of mutation testing at the SRC and IR levels, specifically at the C programming language and the LLVM compiler IR levels. We use a mutation testing tool called SRCIROR that implements conceptually the same mutation operators at both levels. We also employ automated techniques to account for equivalent and duplicated mutants, and to determine minimal and surface mutants. We carry out our study on 15 programs from the Coreutils library. Overall, we find mutation testing to be better at the SRC level: the SRC level produces much fewer mutants and is thus less expensive, but the SRC level still generates a similar number of minimal and surface mutants, and the mutation scores at both levels are very closely correlated. We also perform a case study on the Space program to evaluate which level's mutation score correlates better with the actual fault-detection capability of test suites sampled from Space's test pool. We find the mutation score at both levels to not be very correlated with the actual fault-detection capability of test suites.
Farah Hariri, August Shi, Vimuth Fernando, Suleman Mahmood, Darko Marinov
ICST4
2018 Evaluating test-suite reduction in real software evolution
abstract
Test-suite reduction (TSR) speeds up regression testing by removing redundant tests from the test suite, thus running fewer tests in the future builds. To decide whether to use TSR or not, a developer needs some way to predict how well the reduced test suite will detect real faults in the future compared to the original test suite. Prior research evaluated the cost of TSR using only program versions with seeded faults, but such evaluations do not explicitly predict the effectiveness of the reduced test suite in future builds.
August Shi, Alex Gyori, Suleman Mahmood, Peiyuan Zhao, Darko Marinov
ISSTA3
2016 Effective Partial Order Reduction in Model Checking Database Applications
abstract
Distributed applications, in particular web applications, often depend on a centralized database. The results of database operations depend on the state of database at that time and often also on the order of execution of operations performed by concurrent clients. Verification of such applications requires modeling all these possible orders so that the user can determine which are incorrect orderings and can prevent them with transactions or business logic. However, straightforward exploration leads to state space explosion. Partial order reduction prunes orderings that are equivalent to other orderings already explored. We present a novel technique of Effective Partial Order Reduction (EPOR) for model checking software of Java applications sharing database state. EPOR improves upon prior work by performing a more precise analysis and supports many more operations. The key idea behind EPOR is that monitoring the effect of database operations inside database implementation gives a more precise view of operation dependencies than what can be achieved from an external view. Like prior work, EPOR also relies on Java Pathfinder model checker for model checking Java application. However, unlike prior work, there is additional instrumentation inside the database that enables our precise analysis and allows supporting more constructs. Our results improve upon prior work by achieving significant reduction in number of states explored and thus enables more effective model checking of database applications with concurrent operations.
Maryam Abdul Ghafoor, Suleman Mahmood, Junaid Haroon Siddiqui
ICST2
2016 Symbolic execution of stored procedures in database management systems
abstract
Stored procedures in database management systems are often used to implement complex business logic. Correctness of these procedures is critical for correct working of the system. However, testing them remains difficult due to many possible states of data and database constraints. This leads to mostly manual testing. Newer tools offer automated execution for unit testing of stored procedures but the test cases are still written manually.
Suleman Mahmood, Maryam Abdul Ghafoor, Junaid Haroon Siddiqui
ASE1