Använd vänsterpil och högerpil för att navigera

Eller Ctrl+P för att skriva ut till PDF (eller på papper)

Nyckelord i metodsignaturer

Möjliga kombinationer

Föreläsning 26

Testning

Två typer av testning

Två typer av automatisk testning

White-box testing

Black-box testing

Körning av tester

Exempelkod att testa

  1. public int FindLargest(int[] numbers) {
  2. int largest = 0;
  3. foreach (int x in numbers) {
  4. if (x < largest) {
  5. largest = x;
  6. }
  7. }
  8. return largest;
  9. }

Simpelt test

  1. public void TestFindLargest() {
  2. int[] numbers = {1, 2, 3};
  3. int result = FindLargest(numbers);
  4. Assert.AreEqual(3, result);
  5. }

Fixad kod

  1. public int FindLargest(int[] numbers) {
  2. int largest = 0;
  3. foreach (int x in numbers) {
  4. if (x > largest) {
  5. largest = x;
  6. }
  7. }
  8. return largest;
  9. }

Vad ska hända här?

  1. public void TestFindLargestNegative() {
  2. int[] numbers = {-1, -2, -3};
  3. int result = FindLargest(numbers);
  4. Assert.AreEqual(-1, result);
  5. }

Fixad kod

  1. public int FindLargest(int[] numbers) {
  2. int largest = 0;
  3. bool found = false;
  4. foreach (int x in numbers) {
  5. if (x > largest || !found) {
  6. largest = x;
  7. found = true;
  8. }
  9. }
  10. return largest;
  11. }

Vad ska hända här?

  1. public void TestFindLargestEmpty() {
  2. int[] numbers = {};
  3. int result = FindLargest(numbers);
  4. Assert.AreEqual(..., result);
  5. }

Vad ska hända här?

  1. public void TestFindLargestPerson() {
  2. Person[] people = new Person[] {
  3. new Person { Name = "Bruce", Height = 185 },
  4. new Person { Name = "Diana", Height = 170 },
  5. new Person { Name = "Clark", Height = 185 }
  6. };
  7. Person result = FindLargestPerson(people);
  8. Assert.AreEqual(..., result);
  9. }

Syfte med tester

Antal tester

Struktur på test

Terminologi