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’...

Experimenting with Visio and VBScript

This diagram is created:               using this code:                                                                         Copy the code: Option Explicit Dim strVSDPath, filesys Dim vsoApplication, vsoDocument, vsoPages, vsoPage Dim vsoMaster1, vsoMaster2, vsoStencil Dim vsoShape1, vsoShape2, vsoConnector1 Dim itr Const visAutoConnectDirDown = 2     'Connect down. Const visAutoConnectDirLeft = 3     'Connect to the left. Const visAutoConnectDirNone = 0     'Connect without relocating the shapes. Const visAutoConnectDirRight = 4     'Connect to the right. Const visAutoConnectDirUp = 1         'Connect up....

Study of an AngularJS application: Feeding Excel based data into an SVG Flowchart with AngularJS and NodeJS

Reference article Implementing a Flowchart with SVG and AngularJS Source code from original article is here .   Customization goals a) Feed the SVG flowchart nodes from excel datasheet b) Understand a bit of the AngularJS and NodeJS client-server communication c) Learn javascript debugging on server side as well as client side using VS Code editor As a beginner to AngularJS-NodeJS, the customization is based on a partial study of the original article .   Most challenging challenge as a dummy There was a space of time when I thought I was publishing the server side JSON data to the same URL as the front-end html page. And then trying to debug it and not knowing why: in one case the data was coming from the server side only, while in the other case it was coming from mocked data on client side. Kept on looking for whether data was getting lost, or did I need routing. There were debug sessions where both server side and client side individually appear...