Software Development (CSC 321 2016F) : Outlines

Outline 15: Test-Driven Development


Held: ,

Back to Outline 14 - Codes of Ethics. On to Outline 16 - Legacy Code.

Summary

We consider issues in writing correct code, particularly test-driven development and ways to identify code that is likely to have errors.

Related Pages

Overview

Administrivia

Upcoming Work

Good Things to Do

See http://www.cs.grinnell.edu/~rebelsky/s2d@g/

Refresher: Incorrect code

What does this program try to do?

class TimeSetter
  def self.convert(d)
    y = 1980
    while (d > 365) do
      if ((y % 400 == 0) || (y % 4 == 0) && (y % 100 != 0))
        if (d > 366)
          d -= 366
          y += 1
        end
      else
        d -= 365
        y += 1
      end
    end
    return [y,d]
  end
end

What is wrong with this program?

How would we find it?

How would we fix it?

Loop invariants

Global Surveillance

"I would like to discuss the idea of global surveillance and where to draw the line. It's a grey area for me and I'd like to get more opinions on it."