Skip to main content

Minimal test cases to catch bugs in the Calendar Date to Day convertor

 

Here’re the fields and respective input values against which the Date to Day convertor can be tested (left-side-table):

Month Day Year       Month Day Year
1 1 2010       2 28 2010
2 2 2011       4 29 2011
3 3 2012   image   12 30 2012
4 4           31  
5 5            
6 6            
7 7            
8 8            
9 9            
10 10            
11 11            
12 12            
  13            
14            
15            
16            
17            
18            
19            
20            
21            
22            
23            
24            
25            
26            
27            
28            
29            
30            
31            

However, to break the software, a smaller set of values is sufficient enough!

We can apply Boundary Value Analysis method at the upper end of days range to consider:

  1. 1 case of a month having max 30 days
  2. 1 case of a month having max 31 days
  3. 2 cases for the month of February (max 28, 29 days)

Thus, our set of values reduces to the second table shown above. Here we have randomly picked months 4, 12 and 2 respectively.

Let’s take a closer look!

image

To consider both positive and negative test scenarios, we consider:

  1. An even numbered year (2010)
  2. An odd numbered year(2011)
  3. A leap year(2012)

Now even this reduced set of values for Year, Month and Days of Month can lead to an overwhelming set when we consider the possible combinations that can be used to input data in the form. The number would be

= (Number of Month Values) * (Number of Year Values) * (Number of Day Value)

= 3 * 3 * 4

= 36

However, there’s a more efficient scientific technique available!

So, let’s feed the reduced set of data to the All Pairs program from satisfice.com

Here’s the raw set of test cases derived by the program:

Month Day Year
2 28 2010
4 28 2011
12 28 2012
2 29 2011
4 29 2010
12 29 2010
2 30 2012
4 30 2010
12 30 2011
4 31 2012
2 31 2010
12 31 2011
~2 29 2012

Categorize it:

Test generation method Month Day Year Test type
Program generated 2 28 2010 +ive
Program generated 4 28 2011 not required
Program generated 12 28 2012 not required
Program generated 2 29 2011 -ve
Program generated 4 29 2010 not required
Program generated 12 29 2010 not required
Program generated 2 30 2012 -ve
Program generated 4 30 2010 +ve
Program generated 12 30 2011 not required
Program generated 4 31 2012 -ve
Program generated 2 31 2010 -ve
Program generated 12 31 2011 +ve
Program generated ~2 29 2012 consider as additional case for Month value 2 only
Additional cases 2 29 2012 +ve

Filter it:

Test generation method Month Day Year Test type
Program generated 2 28 2010 +ive
Program generated 2 29 2011 -ve
Program generated 2 30 2012 -ve
Program generated 4 30 2010 +ve
Program generated 4 31 2012 -ve
Program generated 2 31 2010 -ve
Program generated 12 31 2011 +ve
Additional cases 2 29 2012 +ve

Execute these and report the bugs!

Comments

Popular posts from this blog

Microsoft Test Manager – FUEL for test automation

(this is a follow-up post to this one:  http://sudiptopaul.blogspot.com/2011/12/using-aspnet-page-state-and-theme-to.html ) Traditionally Test Management and Test Automation tools have been remotely related to each other. Microsoft’s Test Manager changes this - Manual Testers contribute effectively by creating action recordings for each test Common portions of test steps can now be grouped into what is called as Shared Steps – again manual tester can create independent action recordings for these Test Manager enables these action recordings to serve as active inputs to test automation – separate class is created for each test case, and a reusable function for each shared step This is very elegant as it saves the test automation engineer an amount of time required to refactor common portions of longish test path recordings The Manual Tester gets to contribute in the Keyword definition phase – an important thing to do, because they are the subject matter experts! Here’...

Hello World in iPhone

meines erstes iphone Programm - Gemacht durch Code

Using ASP.net Page state and theme to create Color effects on buttons – a Disco UI

  About the app - how the UI color effects juggle:   The non-crossing activities for a specific button – Button_Red   Click here for the “VS2010 Web Developer Express” code for reference.   After building the app, one can choose to deploy the web app to IIS rather than the default VS Development server. Deployment is only a few steps: 1) Build the release version of the app 2) Build the deployment package: A deployment package is created as a zip file: 3) Open the IIS Manager and import this app package Follow the wizard to deploy the package as a web app.   Run the app and here’s how the website looks:   This post will have a follow-up post on the Microsoft Test Manager and CUIT for a testing perspective!