SlideShare une entreprise Scribd logo
1  sur  19
Mad Computer Science
Testing COBOL With RSpec
Guy Royse
royseg@nationwide.com
@guyroyse
About Me
Guy Royse
Development Competency Lead
Application Development Center

LikesTDD, Pairing, Polyglot
Programming, Piña Coladas, Walks in
the Rain
Dislikes Coding
Alone, Complexity, Being Confused for
Hagrid
2
COBOL
Java
Ruby
TDD
RSpec
3
4
About COBOL

5
Completely
Obsolete
Business
Oriented
Language
6
**

** No affiliation with GEICO is intended or implied. All rights reserved.
Look both ways before crossing the street. Vote early and vote often.
7
8
9
A Simple Application
The Data

The Code

Contact
Validator

Contact

Phone

Address

Phone
Validator

Address
Validator

10
Java Data Implementation
public class Contact {
private String name;
private Phone home;
private Phone cell;
private Address address;
public String getName() {
return name
};
public void setName(String name) {
this.name = name;
}

/* etc. */
}
11
COBOL Data Implementation
01

CONTACT.
05 NAME
05 HOME-PHONE.
10 HOME-AREA-CODE
10 HOME-EXCHANGE
10 HOME-PHONE-NUMBER
05 CELL-PHONE.
10 CELL-AREA-CODE
10 CELL-EXCHANGE
10 CELL-PHONE-NUMBER
05 ADDRESS.
10 STREET
10 CITY
10 STATE
10 ZIP-CODE

PIC X(30).

PIC 9(3).
PIC 9(3).
PIC 9(4).
PIC 9(3).
PIC 9(3).
PIC 9(4).
PIC
PIC
PIC
PIC

X(30).
X(20).
X(2).
X(5).
12
Java Code Implementation
public class ContactValidator {
private PhoneValidatorphoneValidator;
private AddressValidatoraddressValidator;
public void validate(Contact contact) {
validateName(contact.getName);
phoneValidator.validate(contact.getHome());
phoneValidator.validate(contact.getCell());
addressValidator.validate(contact.getAddress());
}
private void validateName(String name) {
/* validates name */
}
}

13
COBOL Code Implementation
IDENTIFICATION DIVISION.
PROGRAM-ID. CONTACT-VALIDATOR.

PROCEDURE DIVISION USING CONTACT.
MAIN.
CALL PHONE-VALIDATOR USING HOME-PHONE.
CALL PHONE-VALIDATOR USING CELL-PHONE.
CALL ADDRESS-VALIDATOR USING ADDRESS.
PERFORM VALIDATE-NAME.
GOBACK
VALIDATE-NAME.
* VALIDATE NAME
14
15
16
Eternity
Ruby

COBOL
command.txt

input.txt

contact
spec.rb

ETERNITY
.CBL

eternity.rb

CONTACT
.CBL

output.txt

17
18
Image Credits
http://www.flickr.com/photos/justin_case/1525042316
http://www.flickr.com/photos/cbmd/2475626473
http://www.flickr.com/photos/kc-bike/2398970429
http://www.flickr.com/photos/7603557@N08/454618030
http://www.flickr.com/photos/pennuja/5386712834
http://www.flickr.com/photos/blackeycove/3997170938

19

Contenu connexe

Similaire à Mad Computer Science: Testing COBOL with RSpec

Similaire à Mad Computer Science: Testing COBOL with RSpec (11)

A Robust Open-source GEDCOM Parser
A Robust Open-source GEDCOM ParserA Robust Open-source GEDCOM Parser
A Robust Open-source GEDCOM Parser
 
SETCON'18 - Yauheni Pakala - .NET Embedding
SETCON'18 - Yauheni Pakala - .NET Embedding SETCON'18 - Yauheni Pakala - .NET Embedding
SETCON'18 - Yauheni Pakala - .NET Embedding
 
RR2 CV
RR2 CVRR2 CV
RR2 CV
 
GOTO Paris | @see Gopher
GOTO Paris | @see GopherGOTO Paris | @see Gopher
GOTO Paris | @see Gopher
 
Groovy Domain Specific Languages - SpringOne2GX 2012
Groovy Domain Specific Languages - SpringOne2GX 2012Groovy Domain Specific Languages - SpringOne2GX 2012
Groovy Domain Specific Languages - SpringOne2GX 2012
 
TDD CrashCourse Part2: TDD
TDD CrashCourse Part2: TDDTDD CrashCourse Part2: TDD
TDD CrashCourse Part2: TDD
 
GC_RESUME_2015
GC_RESUME_2015GC_RESUME_2015
GC_RESUME_2015
 
Intel_Wayne
Intel_WayneIntel_Wayne
Intel_Wayne
 
Secure pl-sql-coding
Secure pl-sql-codingSecure pl-sql-coding
Secure pl-sql-coding
 
Test Driven Development Part 2
Test Driven Development Part 2Test Driven Development Part 2
Test Driven Development Part 2
 
Write Once, Run Everywhere
Write Once, Run EverywhereWrite Once, Run Everywhere
Write Once, Run Everywhere
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 

Mad Computer Science: Testing COBOL with RSpec

Notes de l'éditeur

  1. Show of hands!
  2. When I was tasked with testing COBOL I did some Googling to find out a little bit about it. First I wanted to know how it got its name…
  3. …and who uses it…
  4. …and what it is like…
  5. These are all kinda unfair…it's a tool, a heavy toolIt's old and rusty-there is a lot of itBut…
  6. …it's actually more modern than we think.
  7. If they are the same architecture, then I can test them using the same techniques i.eTDD
  8. If they are the same architecture, then I can test them using the same techniques i.eTDD
  9. Why Ruby - lot of file IO, easy in Ruby - ruby has good testing frameworks - get some people out of their comfort zone - irony