Learning Objectives:
To observe software testing and maintenance practice through empirical study
Project
Each group chooses one of the three kinds of projects:
empirical quantitative study using open-source software repositories, commercial qualitative study, or research project.
Empirical Study
The class will split up into project groups, some of the groups focusing on open-source software
projects and some focusing on commercial software projects. The goal is to gather, analyze and
present results on testing and maintenance in practice. Each group will focus on gathering
different kinds of data.
You may also choose as an alternative to this project, to do a research project in testing or maintenance, from a
list
of potential projects.
Deadline
Tues, 4/10: First draft of Question, Importance, and Methodology
Fri, 4/13: Revised Question, Importance and Methodology writeup
Mon, 4/23: Progress Report
Mon, 4/30: Progress Report
Mon, 5/7: Writeup of Implementation, Data, Results, Analysis put together with Earlier Writeup
Fri, 5/11: Electronic Poster draft
Finals Slot: Final poster printed, Poster Presentation and Final Version of Complete Report
Open-Source Quantitative Study
The Steps:
- Choose a partner, 2 partners, or work by yourself.
- Create a google doc that is shared with the instructor and your group members.
- Develop an overall open question you want to investigate about programmer behavior during software evolution.
Write a few paragraphs introducing your question and justifying the importance of providing evidence toward
answering the question. What is learned by answering the question and how might that information be used to improve
something (i.e., improve software development process, help educating students, provide direction for developing tools to help, analyze the feasibility of some kind of tool/change in process...).
Describe a situation or two that would benefit from knowing that information.
- Get feedback and acceptance of the question by the instructor.
- Outline a methodology for your study:
- What data will you collect? How/why do you think this data will help answer the question? What limitations do
you see in this data answering the question?
- How will you collect the data? What will you do to automate that process as much as possible to increase the
amount of data you can collect for a stronger study?
- What subjects will you gather the data on? What software projects? How many? How selected? Any
restrictions/characteristics of the projects that you will use?
- What do you have to implement for your methodology? How will you implement it?
- How will you analyze your gathered data? Any calculations to be made? Graphs to be created?
- Get feedback and acceptance of the methodology by the instructor.
- Develop and test any implementations you need to gather data.
- Gather your data.
- Analyze your data.
- Write your analysis.
- Get feedback and acceptance by the instructor.
- Create a professional poster on your study.
- Finalize your google doc writeup of your study.
- Present your poster at the class poster session.
Commercial Qualitative Study
The Steps:
- Choose a partner, 2 partners, or work by yourself.
- Create a google doc that is shared with the instructor and your group members.
- Develop an overall open question you want to investigate about programmer behavior during software evolution.
Write a few paragraphs introducing your question and justifying the importance of providing evidence toward
answering the question. What is learned by answering the question and how might that information be used to improve
something (i.e., improve software development process, help educating students, provide direction for developing
tools t
o help, analyze the feasibility of some kind of tool/change in process...).
Describe a situation or two that would benefit from knowing that information.
- Get feedback and acceptance of the question by the instructor.
- Outline a methodology for your study:
- What populations of human subjects do you want to target? Where are you going to recruit these people? How many
people do you want in the study? How will you select the people to participate? Do you want the population from
diverse backgrounds, institutions/companies, job positions,gender,nationality...?
- What means will you use to gather information from the humans? Interviews? Surveys? Online? In-person?
- What will your questions be? How will the questions provide information toward your open question?
- How will you test out your question wording for non-bias (leading the human who answers them)?
- How/when will you conduct your interview/survey?
- Do you need other people involved to help you?
- How will you analyze your gathered data? Any calculations to be made? Graphs to be created? Qualitative or
quantitative?
- Get feedback and acceptance by the instructor.
- Develop and test your interview/survey instruments on a small set of local people.
- Conduct your interviews/surveys to gather your data.
- Analyze your data.
- Write your analysis.
- Get feedback and acceptance by the instructor.
- Create a professional poster on your study.
- Finalize your google doc writeup of your study.
- Present your poster at the class poster session.
Research Project
The Steps:
- Choose a partner, 2 partners, or work by yourself.
- Choose a research project from the description on sakai wiki.
- Discuss the project with the instructor.
- Follow the general steps of the research project outline.
- Create a professional poster on your research project.
- finalize your google doc writeup of your research.
- Present your poster at the class poster session.
Grading Criteria:
- Potential contribution of study results to learning about the state of the practice
- Independent problem solving and creative thinking throughout the study design, implementation and analysis
- Quality of implementations
- Quality of data collection: extensiveness, thoroughness
- Quality of data analysis: depth of analysis, organization, how related to open question
- Quality of poster, report, and poster presentation
- Quality of discussions with instructor
- Participation as a group member
- Timeliness of submissions