SlideShare una empresa de Scribd logo
1 de 34
Programming workshop
5:15 pm
Student program
Pycharm
jetbrains.com/pycharm
jetbrains.com/student
Intellij IDEA
jetbrains.com/idea
PhpStorm
jetbrains.com/phpstorm
And the list goes on…
Workshop samples code
https://github.com/aganezov/java-samples.git
What is TDD?
Test-driven development (TDD) is a software development
process that relies on the repetition of a very short development cycle:
first the developer writes an (initially failing) automated test case that
defines a desired improvement or new function, then produces the
minimum amount of code to pass that test, and finally refactors the
new code to acceptable standards. Kent Beck, who is credited with
having developed or 'rediscovered’ the technique, stated in 2003 that
TDD encourages simple designs and inspires confidence.
Wikipedia
What is TDD?
Test-driven development (TDD) is a software development
process that relies on the repetition of a very short development cycle:
first the developer writes an (initially failing) automated test case that
defines a desired improvement or new function, then produces the
minimum amount of code to pass that test, and finally refactors the
new code to acceptable standards. Kent Beck, who is credited with
having developed or 'rediscovered’ the technique, stated in 2003 that
TDD encourages simple designs and inspires confidence.
Wikipedia
What is TDD?
Test-driven development (TDD) is a software development
process that relies on the repetition of a very short development cycle:
first the developer writes an (initially failing) automated test case that
defines a desired improvement or new function, then produces the
minimum amount of code to pass that test, and finally refactors the
new code to acceptable standards. Kent Beck, who is credited with
having developed or 'rediscovered’ the technique, stated in 2003 that
TDD encourages simple designs and inspires confidence.
Wikipedia
What is TDD?
Test-driven development (TDD) is a software development
process that relies on the repetition of a very short development cycle:
first the developer writes an (initially failing) automated test case that
defines a desired improvement or new function, then produces the
minimum amount of code to pass that test, and finally refactors the
new code to acceptable standards. Kent Beck, who is credited with
having developed or 'rediscovered’ the technique, stated in 2003 that
TDD encourages simple designs and inspires confidence.
Wikipedia
See the test fail and then test pass
See the test fail and then test pass
See the test fail and then test pass
See the test fail and then test pass
Helps you find bugs in your test code!!!
Different types of tests
• Unit tests
• (Incremental) Integration tests
• API tests
• System testing
• End-to-end testing
Different types of tests
• Unit tests
• (Incremental) Integration tests
• API tests
• System testing
• End-to-end testing
• Regresstion testing
• Acceptance testing
• Stress / Perfromance testing
• Usability testing
• Install / unistall testing
• Compatibility testing
• Alpha / Beta testing
Unit testing
Unit testing
Xkcd.com
Unit testing
Intuitively, one can view a unit as the smallest testable part
of an application. In procedural programming, a unit could be
an entire module, but it is more commonly an individual
function or procedure. In object-oriented programming, a unit
is often an entire interface, such as a class, but could be an
individual method.
Wikipedia
Unit testing
Unit testing finds problems early in the development cycle. This
includes both bugs in the programmer's implementation and flaws
or missing parts of the specification for the unit.
Unit testing
• Separate common SetUp /
TearDown approach for test
refactoring
• Keep each test oracle
to focused on only the result
necessary to validate the test
• Treat you test code with the
same respect you would treat
your production code
• DO test reviews
DO DO NOT
• Make tests / class
state depend on the previously
executed tests
• Test implementation details
• Create slow running tests
• Create Interdependent tests
Integration testing
Integration testing
Simply, test that different component parts of your system
integrate correctly - for example - maybe you simulate a
web service request and check that the result comes
back. I would generally use real (ish) static data and
mocked dependencies to ensure that it can be
consistently verified.
Integration testing
1.Big Bang
2.Bottom Up
3.Top Dowm
Integration testing
Testing takes place from the
bottom of the control flow
upwards. Components or
systems are substituted by
drivers.
istqbexamcertification.com
Integration testing
• In this approach development
and testing can be done
together so that the product
or application will be
efficient and as per the
customer specifications
pros cons
• We can catch the Key interface
defects at the end of cycle
• It is required to create the
test drivers for modules at
all levels except the top
control
Bottom Up
Integration testing
Testing takes place from top to
bottom, following the control
flow or architectural structure
(e.g. starting from the GUI or
main menu). Components or
systems are substituted by
stubs
istqbexamcertification.com
Integration testing
• The tested product is very consistent
because the integration testing is
basically performed in an environment
that almost similar to that of reality
• Stubs can be written with lesser time
because when compared to the drivers
then Stubs are simpler to author.
pros cons
• Basic functionality is tested
at the end of cycle
Top Down
Acceptance testing
Acceptance testing
Acceptance tests are created from user stories. The
customer specifies scenarios to test when a user story has been
correctly implemented. A story can have one or many acceptance
tests, what ever it takes to ensure the functionality works.
Acceptance tests are black box system tests. Each acceptance test
represents some expected result from the system. Customers are
responsible for verifying the correctness of the acceptance tests
and reviewing test scores to decide which failed tests are of
highest priority.
Acceptance testing
Wikipedia
Acceptance testing
Wikipedia
Important notes
• Trust your tests
• Keep your tests maintainability
• Make your test readabile
Important notes
• Testing can not be done before knowing what the project
is in general. While test can be isolated, knowledge
about the system still must be present.
• Must be a constant skeptic. Don’t be a believer. Try to
screw everything with the test as much as you can. Do
everything you want, just don’t believe.
• Pseudocode might be wrong due to over simplification.
Next JetBrains GWU meeting
“VCS – Git – Part I”
December 3, 5:00 – 7:00 pm SEH room 2000
Facebook
https://www.facebook.com/groups/jetbrains.gwu/
Twitter
https://twitter.com/JetBrains_GWU
Email
jetbrains.gwu@gmail.com
aganezov@gwu.edu

Más contenido relacionado

La actualidad más candente

La actualidad más candente (19)

Getting started with Test Driven Development
Getting started with Test Driven DevelopmentGetting started with Test Driven Development
Getting started with Test Driven Development
 
TDD (Test Driven Design)
TDD (Test Driven Design)TDD (Test Driven Design)
TDD (Test Driven Design)
 
Test-Driven Development In Action
Test-Driven Development In ActionTest-Driven Development In Action
Test-Driven Development In Action
 
Agile test practices
Agile test practicesAgile test practices
Agile test practices
 
Why Unit Testingl
Why Unit TestinglWhy Unit Testingl
Why Unit Testingl
 
TDD Basics with Angular.js and Jasmine
TDD Basics with Angular.js and JasmineTDD Basics with Angular.js and Jasmine
TDD Basics with Angular.js and Jasmine
 
#1 unit testing
#1 unit testing#1 unit testing
#1 unit testing
 
Unit testing
Unit testing Unit testing
Unit testing
 
Software Quality via Unit Testing
Software Quality via Unit TestingSoftware Quality via Unit Testing
Software Quality via Unit Testing
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Functional & Performance Test Automation with CI
Functional & Performance Test Automation with CI Functional & Performance Test Automation with CI
Functional & Performance Test Automation with CI
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Software Testing, Everyone's responsibility
Software Testing, Everyone's responsibilitySoftware Testing, Everyone's responsibility
Software Testing, Everyone's responsibility
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
iOS Test-Driven Development
iOS Test-Driven DevelopmentiOS Test-Driven Development
iOS Test-Driven Development
 
2016 10-04: tdd++: tdd made easier
2016 10-04: tdd++: tdd made easier2016 10-04: tdd++: tdd made easier
2016 10-04: tdd++: tdd made easier
 
An Introduction to Test Driven Development
An Introduction to Test Driven Development An Introduction to Test Driven Development
An Introduction to Test Driven Development
 
A Concise QA Process
A Concise QA Process A Concise QA Process
A Concise QA Process
 
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile wayContinuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
 

Destacado (11)

Mf0013 internal audit & control
Mf0013 internal audit & controlMf0013 internal audit & control
Mf0013 internal audit & control
 
Revisi karakteristik transistor
Revisi karakteristik transistorRevisi karakteristik transistor
Revisi karakteristik transistor
 
暑假活動設計
暑假活動設計暑假活動設計
暑假活動設計
 
Gangehi Open Source Project
Gangehi Open Source ProjectGangehi Open Source Project
Gangehi Open Source Project
 
Integradora bloque 3 equipo 9
Integradora bloque 3 equipo 9Integradora bloque 3 equipo 9
Integradora bloque 3 equipo 9
 
Professional Work
Professional WorkProfessional Work
Professional Work
 
Integradora bloque 3 equipo 9
Integradora bloque 3 equipo 9Integradora bloque 3 equipo 9
Integradora bloque 3 equipo 9
 
ισοτητα τριγωνων
ισοτητα τριγωνωνισοτητα τριγωνων
ισοτητα τριγωνων
 
Global Rubber Testing Equipment Market: Trends, Opportunities and Forecasts (...
Global Rubber Testing Equipment Market: Trends, Opportunities and Forecasts (...Global Rubber Testing Equipment Market: Trends, Opportunities and Forecasts (...
Global Rubber Testing Equipment Market: Trends, Opportunities and Forecasts (...
 
SBM (1)
SBM (1)SBM (1)
SBM (1)
 
El peix irisat
El peix irisatEl peix irisat
El peix irisat
 

Similar a Test Driven Development

Similar a Test Driven Development (20)

Lecture 21
Lecture 21Lecture 21
Lecture 21
 
Tdd
TddTdd
Tdd
 
Software presentation
Software presentationSoftware presentation
Software presentation
 
An Introduction to Unit Testing
An Introduction to Unit TestingAn Introduction to Unit Testing
An Introduction to Unit Testing
 
Software testing ppt
Software testing pptSoftware testing ppt
Software testing ppt
 
Agile Testing - What is it?
Agile Testing - What is it?Agile Testing - What is it?
Agile Testing - What is it?
 
Agile Testing
Agile Testing  Agile Testing
Agile Testing
 
Tools for Software Testing
Tools for Software TestingTools for Software Testing
Tools for Software Testing
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Automated testing overview
Automated testing overviewAutomated testing overview
Automated testing overview
 
Testing Angular
Testing AngularTesting Angular
Testing Angular
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Week 14 Unit Testing.pptx
Week 14  Unit Testing.pptxWeek 14  Unit Testing.pptx
Week 14 Unit Testing.pptx
 
TDD Workshop UTN 2012
TDD Workshop UTN 2012TDD Workshop UTN 2012
TDD Workshop UTN 2012
 
Test driven development and unit testing with examples in C++
Test driven development and unit testing with examples in C++Test driven development and unit testing with examples in C++
Test driven development and unit testing with examples in C++
 
An Introduction to Unit Test Using NUnit
An Introduction to Unit Test Using NUnitAn Introduction to Unit Test Using NUnit
An Introduction to Unit Test Using NUnit
 
Agile Acceptance testing with Fitnesse
Agile Acceptance testing with FitnesseAgile Acceptance testing with Fitnesse
Agile Acceptance testing with Fitnesse
 
Software Engineering (Testing Overview)
Software Engineering (Testing Overview)Software Engineering (Testing Overview)
Software Engineering (Testing Overview)
 
Beginners overview of automated testing with Rspec
Beginners overview of automated testing with RspecBeginners overview of automated testing with Rspec
Beginners overview of automated testing with Rspec
 
Unit testing & TDD concepts with best practice guidelines.
Unit testing & TDD concepts with best practice guidelines.Unit testing & TDD concepts with best practice guidelines.
Unit testing & TDD concepts with best practice guidelines.
 

Último

Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 

Último (20)

WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 

Test Driven Development

  • 4. What is TDD? Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: first the developer writes an (initially failing) automated test case that defines a desired improvement or new function, then produces the minimum amount of code to pass that test, and finally refactors the new code to acceptable standards. Kent Beck, who is credited with having developed or 'rediscovered’ the technique, stated in 2003 that TDD encourages simple designs and inspires confidence. Wikipedia
  • 5. What is TDD? Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: first the developer writes an (initially failing) automated test case that defines a desired improvement or new function, then produces the minimum amount of code to pass that test, and finally refactors the new code to acceptable standards. Kent Beck, who is credited with having developed or 'rediscovered’ the technique, stated in 2003 that TDD encourages simple designs and inspires confidence. Wikipedia
  • 6. What is TDD? Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: first the developer writes an (initially failing) automated test case that defines a desired improvement or new function, then produces the minimum amount of code to pass that test, and finally refactors the new code to acceptable standards. Kent Beck, who is credited with having developed or 'rediscovered’ the technique, stated in 2003 that TDD encourages simple designs and inspires confidence. Wikipedia
  • 7. What is TDD? Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: first the developer writes an (initially failing) automated test case that defines a desired improvement or new function, then produces the minimum amount of code to pass that test, and finally refactors the new code to acceptable standards. Kent Beck, who is credited with having developed or 'rediscovered’ the technique, stated in 2003 that TDD encourages simple designs and inspires confidence. Wikipedia
  • 8.
  • 9. See the test fail and then test pass
  • 10. See the test fail and then test pass
  • 11. See the test fail and then test pass
  • 12. See the test fail and then test pass Helps you find bugs in your test code!!!
  • 13.
  • 14. Different types of tests • Unit tests • (Incremental) Integration tests • API tests • System testing • End-to-end testing
  • 15. Different types of tests • Unit tests • (Incremental) Integration tests • API tests • System testing • End-to-end testing • Regresstion testing • Acceptance testing • Stress / Perfromance testing • Usability testing • Install / unistall testing • Compatibility testing • Alpha / Beta testing
  • 18. Unit testing Intuitively, one can view a unit as the smallest testable part of an application. In procedural programming, a unit could be an entire module, but it is more commonly an individual function or procedure. In object-oriented programming, a unit is often an entire interface, such as a class, but could be an individual method. Wikipedia
  • 19. Unit testing Unit testing finds problems early in the development cycle. This includes both bugs in the programmer's implementation and flaws or missing parts of the specification for the unit.
  • 20. Unit testing • Separate common SetUp / TearDown approach for test refactoring • Keep each test oracle to focused on only the result necessary to validate the test • Treat you test code with the same respect you would treat your production code • DO test reviews DO DO NOT • Make tests / class state depend on the previously executed tests • Test implementation details • Create slow running tests • Create Interdependent tests
  • 22. Integration testing Simply, test that different component parts of your system integrate correctly - for example - maybe you simulate a web service request and check that the result comes back. I would generally use real (ish) static data and mocked dependencies to ensure that it can be consistently verified.
  • 24. Integration testing Testing takes place from the bottom of the control flow upwards. Components or systems are substituted by drivers. istqbexamcertification.com
  • 25. Integration testing • In this approach development and testing can be done together so that the product or application will be efficient and as per the customer specifications pros cons • We can catch the Key interface defects at the end of cycle • It is required to create the test drivers for modules at all levels except the top control Bottom Up
  • 26. Integration testing Testing takes place from top to bottom, following the control flow or architectural structure (e.g. starting from the GUI or main menu). Components or systems are substituted by stubs istqbexamcertification.com
  • 27. Integration testing • The tested product is very consistent because the integration testing is basically performed in an environment that almost similar to that of reality • Stubs can be written with lesser time because when compared to the drivers then Stubs are simpler to author. pros cons • Basic functionality is tested at the end of cycle Top Down
  • 29. Acceptance testing Acceptance tests are created from user stories. The customer specifies scenarios to test when a user story has been correctly implemented. A story can have one or many acceptance tests, what ever it takes to ensure the functionality works. Acceptance tests are black box system tests. Each acceptance test represents some expected result from the system. Customers are responsible for verifying the correctness of the acceptance tests and reviewing test scores to decide which failed tests are of highest priority.
  • 32. Important notes • Trust your tests • Keep your tests maintainability • Make your test readabile
  • 33. Important notes • Testing can not be done before knowing what the project is in general. While test can be isolated, knowledge about the system still must be present. • Must be a constant skeptic. Don’t be a believer. Try to screw everything with the test as much as you can. Do everything you want, just don’t believe. • Pseudocode might be wrong due to over simplification.
  • 34. Next JetBrains GWU meeting “VCS – Git – Part I” December 3, 5:00 – 7:00 pm SEH room 2000 Facebook https://www.facebook.com/groups/jetbrains.gwu/ Twitter https://twitter.com/JetBrains_GWU Email jetbrains.gwu@gmail.com aganezov@gwu.edu