Download presentation
Presentation is loading. Please wait.
Published byMabel Ford Modified over 9 years ago
1
Testing Especially Unit Testing
2
V-model Wikipedia: http://en.wikipedia.org/wiki/V-Model_(software_development)http://en.wikipedia.org/wiki/V-Model_(software_development)
3
Verification & Validation Verification Phases Requirements analysis System Design Architecture Design Module Design Validation Phases Unit Testing Integration Testing System Testing User Acceptance Testing
4
Types (or Stages) of Testing (Validation) Developer Testing Normal testing by the developer / programmer – to see it do work Independent and Stakeholder Testing Independent Testing denotes the test design and implementation that it is most appropriate for someone independent from the team of developers to do. Unit Tests Systematic automatic test of a unit (testing from a black box view) – our focus Integration Test integration testing is performed to ensure that the components in combination do work (e.g. that classes across packages do work) System Test System testing is done when the software is functioning as a whole. Do the whole system works Acceptance Test The users do the testing and accepting as a final test action prior to deploying the software. Check that all use-cases and all non-functional requirements work
5
Unit testing White box testing where you check all programming lines have been executed with an accepted result Black box testing where you check all methods have been executed and all parameter boundaries have been checked – of cause again with an accepted result
6
Black-box (UPedu) input argument Normal values from each equivalence class. Values on the boundary of each equivalence class. Values outside the equivalence classes. Illegal values. output argument Normal values from each equivalence class. Values on the boundary for each equivalence class. Values outside the equivalence classes. Illegal values.
7
Set up test-cases Follow / Fill out schema Test case # Description of test case Expected value Passed succesfully 1...
8
Example - Person Constrains: ID a number between 1000-99999 Name a text which is not null and at least 4 character long Phone a number of 8 digits
9
Test case # Description of test caseExpected value Passed successfully 1Default constructorObject created 2Set ID – value 999ArgumentException 3Set ID – value 1000ID == 1000 4Set ID – value 99999ID == 99999 5Set ID – value 100000ArgumentException 6Set ID – value 5678ID == 5678 7Set ID – value -5ArgumentException 8Set Name – value nullArgumentException 9Set Name – value empty (“”)ArgumentException 10 Set Name – value not empty but less than 4 value “123” ArgumentException 11 Set Name – value not empty and 4 value “1234” Name == “1234” 12Set Name – value not empty and 15 value “123456789012345” Name == “123456789012345”
10
13Set Phone – value 9999999ArgumentException 14Set Phone – value 10000000Phone == 10000000 15Set Phone – value 99999999Phone == 99999999 16Set Phone – value 100000000ArgumentException 17Set Phone – value 56781234Phone == 56781234 18Set Phone – value -5ArgumentException 19Constructor(2222,”Susanne”,12345678) ID == 2222 Name == “Susanne” Phone == 12345678 20Constructor(00999,”Susanne”,12345678)ArgumentException 21Constructor(2222,null,12345678)ArgumentException 22Constructor(2222,”Per”,12345678)ArgumentException 23Constructor(2222,”Susanne”,1234567890)ArgumentException
11
Model Driven Development> Identify New Functionality Write TestRun Test Implement Functionality and Refactor Pass Fail
12
Running tests in Visual Studio [TestMethod] public void convertToInt() { } public static int convertToInt(string binaryNumber) { throw new NotImplementedException(); }
13
A class that needs to be implemented public class BinaryHelper { public static bool greaterThan(string p1, string p2) { throw new NotImplementedException(); } public static bool smallerThan(String p1, String p2) { throw new NotImplementedException(); }
14
Unit tests [TestClass] public class BinaryHelperTest { [TestMethod] public void greaterThanTest() { } [TestMethod] public void smallerThan() { }
15
Tool to generate first part of Unit Test Unit Test Generator – to download and install Link: http://visualstudiogallery.msdn.microsoft.com/45208924-e7b0-45df- 8cff-165b505a38d7 http://visualstudiogallery.msdn.microsoft.com/45208924-e7b0-45df- 8cff-165b505a38d7 For more information: http://vsartesttoolingguide.codeplex.com/releases/view/102290
17
The Assert class Method NameDEscription AreEqual(Object, Object)Verifies that two specified objects are equal. The assertion fails if the objects are not equal. (Overwritten with allprimitive datatypes) AreNotEqual(Object, Object)Verifies that two specified objects are not equal. The assertion fails if the objects are equal.(Overwritten with allprimitive datatypes) AreSame(Object, Object)Verifies that two specified object variables refer to the same object. The assertion fails if they refer to different objects. AreNotSame(Object, Object)Verifies that two specified object variables refer to different objects. The assertion fails if they refer to the same object.
18
The Assert class continued Method NameDEscription IsFalse(Boolean)Verifies that the specified condition is false. The assertion fails if the condition is true. IsTrue(Boolean)Verifies that the specified condition is true. The assertion fails if the condition is false. IsNull(Object)Verifies that the specified object is null. The assertion fails if it is notnull. IsNotNull(Object)Verifies that the specified object is not null. The assertion fails if it isnull. http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.testtools.unittesting.assert.aspx
19
Mock objects
20
Test Student Class
21
Using Mock objects
22
Moq4 A mock object framework for MStest
23
Moq4 example public void CompleteCourseTest() { // setup mock activity var c = new Mock (); c.Setup(m => m.GetName()).Returns("Programming"); c.Setup(m => m.getECTS()).Returns(15); // test with mock activity Student s = new Student(); Assert.IsTrue(s.EnrollActivity(c.Object)); }
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.