Testing in Agile Software Development
Testing in Agile Software Development
Development
To Do WIP Done
These are the user stories Rajesh & Pooja are working on
for Shopping Cart Page features in current Sprint:
Let’s Identify some Acceptance
Tests/Criteria for these User Stories
Pooja starts testing the Shopping Cart Page
€5.60
€95.00
{Wikipedia}
Benefits of test
automation!!
Speed
Reliability
Repeatability
Test Coverage
The Agile Testing Pyramid
The top tier will the least automated tests because this Manual
level is usually composed of UI tests that are expensive Tests
to write or maintain and that often require human
control (over visual aspects for instance)
Cons:
Very costly (including operating cost)
Additional features not available easily and they cost a lot
Limited help/user Community
Proprietary programming language
and limited sense of achievement
Meet ARDUINO, an open
source electronics prototyping
platform
ARDUINO
Pros:
Cheap
Supports 100s third party components
Endless possibilities
Help/User Community
Gives great sense of achievement ☺
Cons:
Does not give out of the box features, you need to build..
Sometimes time consuming and need greater understanding of
electronics and mechanics
Major commercial testing tools
Tool Name Area Description Scripting/Programming
Languages
HP QuickTest Pro Functional Testing Market leading functional testing VBScript
tool. Supports various technologies
including Web, Java, .NET, Standard
Windows, Silverlight, Oracle,
Mainframe etc.
IBM Rational Functional Functional Testing Supports Standard Windows, Java, Java, VB.NET
Tester .NET and Mainframe Applications
SmartBear TestComplete Unit, Functional Second largest selling tool. Supports VBScript, C#
Testing, Load & Standard Windows, Java, .NET
Performance Applications
Testing
Microsoft Visual Studio Test Unit, Functional & Recently launched tool from C#, VB.NET
Professional Load Testing, Test Microsoft. Supports complete testing
Management life cycle for Standard Windows, Web
& .NET Applications
Major free & open source testing tools
Tool Name Area Description Scripting/Programming
Languages
xUnit (JUnit, NUnit. dbUnit) Unit Testing, API Supports major development Java, C# etc. (planform
Testing platforms specific variants available)
Selenium Functional Testing Supports Web Applications Java, C#, Python, Perl, Ruby
Refactor Green
package com.tests;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@Before
public void setUp() throws Exception {
}
@Test
public void testGetDiscount() {
fail("Not yet implemented");
}
@After
public void tearDown() throws Exception {
}
}
package com.shoppingcart;
public CalcDiscount()
{
}
public double getDiscount(double total, int discount_level)
{
}
package com.tests;
import junit.framework.Assert;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.shoppingcart.CalcDiscount;
@Before
public void setUp() throws Exception {
}
@Test
public void testGetDiscount() {
Assert.assertEquals(10, cd.getDiscount(100.00,10),0);
}
@After
public void tearDown() throws Exception {
}
}
package com.shoppingcart;
public CalcDiscount()
{
}
public double getDiscount(double total, int discount_level)
{
double discount;
discount = total * discount_level / 100;
return discount;
}
}
package com.tests;
import junit.framework.Assert;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.shoppingcart.CalcDiscount;
@Before
public void setUp() throws Exception {
}
@Test
public void testGetDiscount() {
Assert.assertEquals(10, cd.getDiscount(100.00,10),0);
}
@After
public void tearDown() throws Exception {
}
}
Unit testing done...
Rajesh is Happy!!
Now let's fix
functional testing!!
What's Selenium?
• Selenium is most famous open source tool for
functional system & acceptance testing for web
applications
❑Acceptance Tests
❑Unit Tests
❑Beta Tests
❑Performance Tests
Quiz
Test automation helps in increasing test
coverage? True or False?
❑True
❑False
Quiz
Following is not an Unit Testing Framework?
❑JUnit
❑dbUnit
❑QuickTest Pro
❑pyUnit
Quiz
The refactor part in Red-Green-Refactor signifies
what?
❑Functional Tests
❑Unit Tests
❑Acceptance Tests
❑System Tests
Q&A
Thanks!!