L. Williams’s research while affiliated with Microsoft and other places

What is this page?


This page lists works of an author who doesn't have a ResearchGate profile or hasn't added the works to their profile yet. It is automatically generated from public (personal) data to further our legitimate goal of comprehensive and accurate scientific recordkeeping. If you are this author and want this page removed, please let us know.

Publications (22)


Organizing Committee
  • Conference Paper

December 2007

·

9 Reads

N. Nagappan

·

L Williams

·

M. Vouk

·

J. Osborne

In industrial practice, information on the software field quality of a product is available too late in the software lifecycle to guide affordable corrective action. An important step towards remediation of this problem lies in the ability to provide an early estimation of post-release field quality. This paper evaluates the software testing and reliability early warning for Java (STREW-J) metric suite leveraging the software testing effort to predict post-release field quality early in the software development phases. The metric suite is applicable for software products implemented in Java for which an extensive suite of automated unit test cases are incrementally created as development proceeds. We validated the prediction model using the STREW-J metrics via a two-phase case study approach which involved 27 medium-sized open source projects, and five industrial projects. The error in estimation and the sensitivity of the predictions indicate the STREW-J metric suite can be used effectively to predict post-release software field quality.


A lightweight process for change identification and regression test selection in using COTS components

March 2006

·

38 Reads

·

19 Citations

Various regression test selection techniques have been developed and have shown fault detection effectiveness. The majority of these test selection techniques rely on access to source code for change identification. However, when new releases of COTS components are made available for integration and testing, source code is often not available. In this paper, we present a lightweight integrated-black-box approach for component change identification (I-BACCI) process for selection of regression tests for user/glue code that uses COTS components. I-BACCI is applicable when component licensing agreements do not preclude analysis of the binary files. A case study of the process was conducted on an ABB product that uses a medium-scale internal ABB software component. Five releases of the component were examined to evaluate the efficacy of the proposed process. The result of the case study indicates this process can reduce the required number of regression tests by 54% on average.


System test case prioritization of new and regression tests

December 2005

·

273 Reads

·

170 Citations

Test case prioritization techniques have been shown to be beneficial for improving regression-testing activities. With prioritization, the rate of fault detection is improved, thus allowing testers to detect faults earlier in the system-testing phase. Most of the prioritization techniques to date have been code coverage-based. These techniques may treat all faults equally. We build upon prior test case prioritization research with two main goals: (1) to improve user-perceived software quality in a cost effective way by considering potential defect severity and (2) to improve the rate of detection of severe faults during system-level testing of new code and regression testing of existing code. We present a value-driven approach to system-level test case prioritization called the prioritization of requirements for test (PORT). PORT prioritizes system test cases based upon four factors: requirements volatility, customer priority, implementation complexity, and fault proneness of the requirements. We conducted a PORT case study on four projects developed by students in advanced graduate software testing class. Our results show that PORT prioritization at the system level improves the rate of detection of severe faults. Additionally, customer priority was shown to be one of the most important prioritization factors contributing to the improved rate of fault detection.


Providing test quality feedback using static source code and automatic test suite metrics

December 2005

·

29 Reads

·

31 Citations

N. Nagappan

·

L Williams

·

J. Osborne

·

[...]

·

A classic question in software development is "How much testing is enough?" Aside from dynamic coverage-based metrics, there are few measures that can be used to provide guidance on the quality of an automatic test suite as development proceeds. This paper utilizes the software testing and reliability early warning (STREW) static metric suite to provide a developer with indications of changes and additions to their automated unit test suite and code for added confidence that product quality will be high. Retrospective case studies to assess the utility of using the STREW metrics as a feedback mechanism were performed in academic, open source and industrial environments. The results indicate at statistically significant levels the ability of the STREW metrics to provide feedback on important attributes of an automatic test suite and corresponding code.


Teaching an active-participation university course in software reliability and testing

December 2005

·

11 Reads

·

3 Citations

A large percentage of software development costs are spent on software reliability and testing. However, many practicing software engineers and graduate students in computer science have never taken a course in software reliability or software testing. A graduate-level software engineering course at North Carolina State University provides instruction in these topics to better prepare current and future software engineers for the software reliability and testing challenges. The course takes place in a laboratory setting such that students can learn testing and reliability theory and apply this theory immediately



An initial study of a lightweight process for change identification and regression test selection when source code is not available

December 2005

·

24 Reads

·

17 Citations

Various regression test selection techniques have been developed and have shown to improve testing cost effectiveness via improving efficiency. The majority of these test selection techniques rely on access to source code for change identification. However, when new releases of COTS components are made available for integration and testing, source code is often not available to guide in regression test selection. In this paper we describe a lightweight integrated-black-box approach for component change identification (I-BACCI) process for selection of regression tests for user/glue code that uses COTS components. I-BACCI is applicable when component licensing agreements do not preclude binary code analysis. A case study of the process was conducted on an ABB product that uses a medium-scale internal ABB software component. Six releases of the component were examined to evaluate the efficacy of the proposed process. The result of the case study indicates that this process can reduce the required regression tests by 40% on average.


FIGURE 1 
How and Why Collaborative Software Development Impacts the Software Engineering Course
  • Conference Paper
  • Full-text available

November 2005

·

117 Reads

·

12 Citations

Proceedings - Frontiers in Education Conference

This paper presents the results of an initial quantitative investigation to assess a variety of factors that potentially affect the collaborative software development experience. This research was conducted with 119 students in two undergraduate software engineering classes at North Carolina State University. A survey was administered where students could reflect on their collaborative experiences. We analyzed these factors for interrelationships as well as for correlations with performance in the course, grade point average, and SAT scores. Our findings support the components of the proposed Social Interaction Model of Pair Programming. The substantiation of the Social Interaction Model of Pair Programming values suggests that they should be considered in course planning. We also find that work ethic and self-perceived programming ability positively correlate with GPA

Download



Citations (21)


... In Pair Work, two learners work together on an assignment; this can improve both grades and satisfaction. This is usually called Pair Programming [12,13], but can be used for other work. Typically one learner (the driver) uses the computer or other equipment, while the other (the navigator) observes, offers suggestions, and provides direction; periodically the learners swap roles. ...

Reference:

Analysis of Active Learning Activities Transitions & Patterns in Process Oriented Guided Inquiry Learning (POGIL)
On pair rotation in the computer science course
  • Citing Article
  • January 2004

... In [16] an experiment was conducted with 24 professionals and the final applications developed using TDD passed 18-50% more external tests than the applications developed with TL. Other investigations involving case studies of industrial projects [18][19][20][21] consistently report that TDD provided significant improvements to application quality. It is interesting to note that it is the studies of industrial projects "in the wild" that provide the most consistent findings regarding application quality improvement with TDD. ...

Test-driven development as a defect-reduction practice
  • Citing Article
  • January 2003

... Other approaches to automated TCP involve the use of requirements specifications [3], [8], [9], system models [10], test case execution history in previous runs [11]- [13], mutation testing [14], [15], cost-awareness information such as the severity of faults and the costs of test case executions [3], [12], [16], test case distance metrics based on their execution profiles [6], [17], [18], or differences between different versions of the software under test (SUT) [19]. More recently, Busjaeger and Xie reduced the TCP problem to that of learning to rank [20]. ...

System test case prioritization of new and regression test cases
  • Citing Article
  • January 2005

... The original model assumed that there is a correspondence between user stories and their automated acceptance test cases. Subsequent interviews with XP practitioners [9] revealed that developers tend to aggregate a minimal set of acceptance test cases, each used to satisfy several of the customer's user stories. Therefore, developing a mapping between user stories and acceptance test cases does not appear to be practical. ...

On the Feasibility of Using Operational Profiles to Determine Software Reliability in Extreme Programming
  • Citing Article
  • January 2004

... Bu işleyiş tarzı öğretmene yöneltilen soru sayısını azaltmaktadır (Ferzli, Wiebe, & Williams, 2002). Ayrıca, eşli programlamada bireysel programlamaya kıyasla öğretmenlerin değerlendirmesi gereken ürün sayısı yarı yarıya azalmaktadır. ...

Paired programming project: focus groups with teaching assistants and students
  • Citing Article

... On the one hand, collaborative programming can reduce students' fear of programming difficulties and increase their programming confidence (Li, Liu, and Tseng 2024). On the other hand, collaborative programming can enhance work efficiency and enable students to engage more quickly in programming learning through peer supervision and encouragement (Tsai et al. 2023;Williams and Kessler 2003). However, novice students' lack of higher-order programming logic led to difficulties during the programming problem understanding, decomposition and algorithm construction, preventing them from achieving high-quality collaborative programming (Ouyang, Dai, and Chen 2022). ...

Pair Programming Illuminated
  • Citing Chapter
  • January 2002

... Programming performance was measured as time and quality. Layman et al. (2005) investigated that students who are in general more self-confident regarding their programming skills do perform better than less self-confident students in programming tasks. ...

How and Why Collaborative Software Development Impacts the Software Engineering Course

Proceedings - Frontiers in Education Conference

... It also poses a challenge to maintain or achieve sufficient fault detection ability while selecting only a subset of test cases for regression testing (Skoglund & Runeson, 2005). Several studies have proposed techniques to select test cases for regression testing (Pasala & Bhowmick, 2005;Mao & Lu, 2005;Zheng et al., 2006;Legunsen et al., 2016;Skoglund & Runeson, 2005). Change Based testing (CB) is one approach for performing test case selection. ...

A lightweight process for change identification and regression test selection in using COTS components
  • Citing Conference Paper
  • March 2006

... Tahir et al. [62] have investigated challenges in the selection and implementation of dynamic metrics, which may explain why dynamic metrics have been used less frequently. Several studies have investigated the effectiveness of using in-process metrics collected during testing [63,64] to predict post-release software quality with promising results. The included secondary studies have not considered using inprocess metrics during testing. ...

Providing test quality feedback using static source code and automatic test suite metrics
  • Citing Conference Paper
  • December 2005

... Therefore, there is no software system that is failure-free, which is why the reliability requirements should be included in any software development contract. Software reliability is measured based on the maximum allowable rate of failure and can represent an entire system or one or more of its parts [9]- [11]. ...

How Should Software Reliability Engineering Be Taught?
  • Citing Conference Paper
  • December 2005