This presentation is a part of the COP2271C college level course taught at the Florida Polytechnic University located in Lakeland Florida. The purpose of this course is to introduce Freshmen students to both the process of software development and to the Python language.
The course is one semester in length and meets for 2 hours twice a week. The Instructor is Dr. Jim Anderson.
A video of Dr. Anderson using these slides is available on YouTube at:
http://youtu.be/bCp1fbAd56k
This presentation is a part of the COP2271C college level course taught at the Florida Polytechnic University located in Lakeland Florida. The purpose of this course is to introduce Freshmen students to both the process of software development and to the Python language.
The course is one semester in length and meets for 2 hours twice a week. The Instructor is Dr. Jim Anderson.
A video of Dr. Anderson using these slides is available on YouTube at:
http://youtu.be/rFt5kdQNKBg
This presentation has been prepared to share knowledge about JetBrains UpSource tool usage on HTML project for back-end developers. Also code review process description has been provided to share good/bad experience of code review procedure.
This presentation is a part of the COP2271C college level course taught at the Florida Polytechnic University located in Lakeland Florida. The purpose of this course is to introduce Freshmen students to both the process of software development and to the Python language.
The course is one semester in length and meets for 2 hours twice a week. The Instructor is Dr. Jim Anderson.
A video of Dr. Anderson using these slides is available on YouTube at:
http://youtu.be/rFt5kdQNKBg
This presentation has been prepared to share knowledge about JetBrains UpSource tool usage on HTML project for back-end developers. Also code review process description has been provided to share good/bad experience of code review procedure.
Documenting Code - Patterns and Anti-patterns - NLPW 2016Søren Lund
How do we document code? A good solution is to create self-explanatory code; this somewhat eliminates the need to document the code. We still need some very basic documentation. Code comments are one form of documentation, that is often misused. This talk is about self-explanatory code, the documentation we need and code comment patterns and anti-patterns.
You want to improve your software skills. That’s a given. You may be a mentor or a manager who needs to improve the knowledge sharing among your software developers across different projects. Code Reviews can do just that while improving code quality in your projects. Code Review not only builds developer team spirit but also offers new ways to improve a software solution. You’ll walk away from this session with in-depth understanding of Code Review to strengthen your team.
How do we document code? A good solution is to create self-explanatory code; this somewhat eliminates the need to document the code. We still need some very basic documentation. Code comments are one form of documentation, that is often misused. This talk is about self-explanatory code, the documentation we need and code comment patterns and anti-patterns.
Many developers know that they should be writing tests for their apps. However, it’s often hard to know how to get started or to convince your manager that you should be spending half of your time writing and maintaining test code. In this talk, you will learn how you can integrate testing into your day-to-day workflow and you’ll learn why a good test suite will not cost you a lot of time. Instead, it should end up saving you time. And as you know, the manager loves it when you manage to save time. You will understand how TDD works, how to integrate the important bits of TDD and how to build a high-quality test suite that is a pleasure to maintain. To round things out, you will also learn about Xcode 11’s new test plans feature and how you can use it to make your test suite even better!
Lessons Learned in Test Automation From ZombielandMatt Barbour
This presentation will tell you how to apply the rules for surviving the zombie apocalypse to surviving your own zombie apocalypse - end to end testing on real devices.
https://www.youtube.com/watch?v=9IShc6tfj2E
"Software architecture...Yes, on tests!" by Annarita De Biase, Miro Barsocchi, Camillo Quatrini
How many times have you thought it was unuseful to spend time in order to make tests as much usable, maintainable and automated as possible? This question is the nightmare of developers and testers. Here, we would like to introduce a new architecture that, potentially, is able to reach a general agreement, by using technologies you all know but strutctured in a different way, that is using microservices. We will talk about previous good and bad experiences, our current solution and a lot of kittens.
London SDET Meetup (April 2016) - M&S Digital Test JourneyRichard Chernanko
A presentation discussing the transition M&S Digital has been on over the last few years, with a key emphasis on how testing has played a key role. Content includes the initial approach to testing (after M&S Digital decided to "do agile"), lessons learnt to date, and the current test approach M&S Digital is implementing.
Documenting Code - Patterns and Anti-patterns - NLPW 2016Søren Lund
How do we document code? A good solution is to create self-explanatory code; this somewhat eliminates the need to document the code. We still need some very basic documentation. Code comments are one form of documentation, that is often misused. This talk is about self-explanatory code, the documentation we need and code comment patterns and anti-patterns.
You want to improve your software skills. That’s a given. You may be a mentor or a manager who needs to improve the knowledge sharing among your software developers across different projects. Code Reviews can do just that while improving code quality in your projects. Code Review not only builds developer team spirit but also offers new ways to improve a software solution. You’ll walk away from this session with in-depth understanding of Code Review to strengthen your team.
How do we document code? A good solution is to create self-explanatory code; this somewhat eliminates the need to document the code. We still need some very basic documentation. Code comments are one form of documentation, that is often misused. This talk is about self-explanatory code, the documentation we need and code comment patterns and anti-patterns.
Many developers know that they should be writing tests for their apps. However, it’s often hard to know how to get started or to convince your manager that you should be spending half of your time writing and maintaining test code. In this talk, you will learn how you can integrate testing into your day-to-day workflow and you’ll learn why a good test suite will not cost you a lot of time. Instead, it should end up saving you time. And as you know, the manager loves it when you manage to save time. You will understand how TDD works, how to integrate the important bits of TDD and how to build a high-quality test suite that is a pleasure to maintain. To round things out, you will also learn about Xcode 11’s new test plans feature and how you can use it to make your test suite even better!
Lessons Learned in Test Automation From ZombielandMatt Barbour
This presentation will tell you how to apply the rules for surviving the zombie apocalypse to surviving your own zombie apocalypse - end to end testing on real devices.
https://www.youtube.com/watch?v=9IShc6tfj2E
"Software architecture...Yes, on tests!" by Annarita De Biase, Miro Barsocchi, Camillo Quatrini
How many times have you thought it was unuseful to spend time in order to make tests as much usable, maintainable and automated as possible? This question is the nightmare of developers and testers. Here, we would like to introduce a new architecture that, potentially, is able to reach a general agreement, by using technologies you all know but strutctured in a different way, that is using microservices. We will talk about previous good and bad experiences, our current solution and a lot of kittens.
London SDET Meetup (April 2016) - M&S Digital Test JourneyRichard Chernanko
A presentation discussing the transition M&S Digital has been on over the last few years, with a key emphasis on how testing has played a key role. Content includes the initial approach to testing (after M&S Digital decided to "do agile"), lessons learnt to date, and the current test approach M&S Digital is implementing.
Agile Software Development and Test Driven Development: Agil8's Dave Putman 3...agil8 Ltd
David Putman of agil8’s training and consulting team discussed the anti-patterns observed in organisations introducing technical practices into their Agile software development teams, and how to avoid them.
This presentation was made at agil8’s Community Event for past students, clients, colleagues and agil8 associates on 30 October 2014.
The Engines of Software Development: Testing and Test Driven DevelopmentLemi Orhan Ergin
This talk in GittiGidiyor/eBay is about the followings:
1) How to write testable code
2) Multi level testing
3) Continuous Integration
4) Test driven development
5) Testing Legacy Software
This is a basic level robot framework presentation. You can install robot framework without any problem and start your first test with this presentation.
Brief introduction to Test Automation Frameworks, Acceptance Testing and ATTD using Testerone – custom made solution based on RobotFramework and it’s extensive libraries for Selenium’s and AutoIT’s support.
Bring the test cases closer to business people, leave the technical stuff to technical staff using simple business-to-tech excel sheet (map) for collaboration. Complete the solution by controlling everything using Jenkins CI server.
The presentation on Expanding test horizons with Robot Framework was done during #ATAGTR2017, one of the largest global testing conference. All copyright belongs to the author.
Author and presenter : Kushan Amarasiri
This presentation is a part of the COP2271C college level course taught at the Florida Polytechnic University located in Lakeland Florida. The purpose of this course is to introduce Freshmen students to both the process of software development and to the Python language.
The course is one semester in length and meets for 2 hours twice a week. The Instructor is Dr. Jim Anderson.
A video of Dr. Anderson using these slides is available on YouTube at: https://www.youtube.com/watch?v=c2CTDm19Lpg
Learn about the benefits of writing unit tests. You will spend less time fixing bugs and you will get a better design for your software. Some of the questions answered are:
Why should I, as a developer, write tests?
How can I improve the software design by writing tests?
How can I save time, by spending time writing tests?
When should I write unit tests and when should I write system tests?
Testing is not something that traditional PHP developers are being familiar with. This session introduces the needs and means for testing, and the test-driven development model to create rock-solid PHP applications.
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...Levi Shapiro
Letter from the Congress of the United States regarding Anti-Semitism sent June 3rd to MIT President Sally Kornbluth, MIT Corp Chair, Mark Gorenberg
Dear Dr. Kornbluth and Mr. Gorenberg,
The US House of Representatives is deeply concerned by ongoing and pervasive acts of antisemitic
harassment and intimidation at the Massachusetts Institute of Technology (MIT). Failing to act decisively to ensure a safe learning environment for all students would be a grave dereliction of your responsibilities as President of MIT and Chair of the MIT Corporation.
This Congress will not stand idly by and allow an environment hostile to Jewish students to persist. The House believes that your institution is in violation of Title VI of the Civil Rights Act, and the inability or
unwillingness to rectify this violation through action requires accountability.
Postsecondary education is a unique opportunity for students to learn and have their ideas and beliefs challenged. However, universities receiving hundreds of millions of federal funds annually have denied
students that opportunity and have been hijacked to become venues for the promotion of terrorism, antisemitic harassment and intimidation, unlawful encampments, and in some cases, assaults and riots.
The House of Representatives will not countenance the use of federal funds to indoctrinate students into hateful, antisemitic, anti-American supporters of terrorism. Investigations into campus antisemitism by the Committee on Education and the Workforce and the Committee on Ways and Means have been expanded into a Congress-wide probe across all relevant jurisdictions to address this national crisis. The undersigned Committees will conduct oversight into the use of federal funds at MIT and its learning environment under authorities granted to each Committee.
• The Committee on Education and the Workforce has been investigating your institution since December 7, 2023. The Committee has broad jurisdiction over postsecondary education, including its compliance with Title VI of the Civil Rights Act, campus safety concerns over disruptions to the learning environment, and the awarding of federal student aid under the Higher Education Act.
• The Committee on Oversight and Accountability is investigating the sources of funding and other support flowing to groups espousing pro-Hamas propaganda and engaged in antisemitic harassment and intimidation of students. The Committee on Oversight and Accountability is the principal oversight committee of the US House of Representatives and has broad authority to investigate “any matter” at “any time” under House Rule X.
• The Committee on Ways and Means has been investigating several universities since November 15, 2023, when the Committee held a hearing entitled From Ivory Towers to Dark Corners: Investigating the Nexus Between Antisemitism, Tax-Exempt Universities, and Terror Financing. The Committee followed the hearing with letters to those institutions on January 10, 202
How to Make a Field invisible in Odoo 17Celine George
It is possible to hide or invisible some fields in odoo. Commonly using “invisible” attribute in the field definition to invisible the fields. This slide will show how to make a field invisible in odoo 17.
Read| The latest issue of The Challenger is here! We are thrilled to announce that our school paper has qualified for the NATIONAL SCHOOLS PRESS CONFERENCE (NSPC) 2024. Thank you for your unwavering support and trust. Dive into the stories that made us stand out!
2024.06.01 Introducing a competency framework for languag learning materials ...Sandy Millin
http://sandymillin.wordpress.com/iateflwebinar2024
Published classroom materials form the basis of syllabuses, drive teacher professional development, and have a potentially huge influence on learners, teachers and education systems. All teachers also create their own materials, whether a few sentences on a blackboard, a highly-structured fully-realised online course, or anything in between. Despite this, the knowledge and skills needed to create effective language learning materials are rarely part of teacher training, and are mostly learnt by trial and error.
Knowledge and skills frameworks, generally called competency frameworks, for ELT teachers, trainers and managers have existed for a few years now. However, until I created one for my MA dissertation, there wasn’t one drawing together what we need to know and do to be able to effectively produce language learning materials.
This webinar will introduce you to my framework, highlighting the key competencies I identified from my research. It will also show how anybody involved in language teaching (any language, not just English!), teacher training, managing schools or developing language learning materials can benefit from using the framework.
The French Revolution, which began in 1789, was a period of radical social and political upheaval in France. It marked the decline of absolute monarchies, the rise of secular and democratic republics, and the eventual rise of Napoleon Bonaparte. This revolutionary period is crucial in understanding the transition from feudalism to modernity in Europe.
For more information, visit-www.vavaclasses.com
Francesca Gottschalk - How can education support child empowerment.pptxEduSkills OECD
Francesca Gottschalk from the OECD’s Centre for Educational Research and Innovation presents at the Ask an Expert Webinar: How can education support child empowerment?
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdfTechSoup
In this webinar you will learn how your organization can access TechSoup's wide variety of product discount and donation programs. From hardware to software, we'll give you a tour of the tools available to help your nonprofit with productivity, collaboration, financial management, donor tracking, security, and more.
Embracing GenAI - A Strategic ImperativePeter Windle
Artificial Intelligence (AI) technologies such as Generative AI, Image Generators and Large Language Models have had a dramatic impact on teaching, learning and assessment over the past 18 months. The most immediate threat AI posed was to Academic Integrity with Higher Education Institutes (HEIs) focusing their efforts on combating the use of GenAI in assessment. Guidelines were developed for staff and students, policies put in place too. Innovative educators have forged paths in the use of Generative AI for teaching, learning and assessments leading to pockets of transformation springing up across HEIs, often with little or no top-down guidance, support or direction.
This Gasta posits a strategic approach to integrating AI into HEIs to prepare staff, students and the curriculum for an evolving world and workplace. We will highlight the advantages of working with these technologies beyond the realm of teaching, learning and assessment by considering prompt engineering skills, industry impact, curriculum changes, and the need for staff upskilling. In contrast, not engaging strategically with Generative AI poses risks, including falling behind peers, missed opportunities and failing to ensure our graduates remain employable. The rapid evolution of AI technologies necessitates a proactive and strategic approach if we are to remain relevant.
A Strategic Approach: GenAI in EducationPeter Windle
Artificial Intelligence (AI) technologies such as Generative AI, Image Generators and Large Language Models have had a dramatic impact on teaching, learning and assessment over the past 18 months. The most immediate threat AI posed was to Academic Integrity with Higher Education Institutes (HEIs) focusing their efforts on combating the use of GenAI in assessment. Guidelines were developed for staff and students, policies put in place too. Innovative educators have forged paths in the use of Generative AI for teaching, learning and assessments leading to pockets of transformation springing up across HEIs, often with little or no top-down guidance, support or direction.
This Gasta posits a strategic approach to integrating AI into HEIs to prepare staff, students and the curriculum for an evolving world and workplace. We will highlight the advantages of working with these technologies beyond the realm of teaching, learning and assessment by considering prompt engineering skills, industry impact, curriculum changes, and the need for staff upskilling. In contrast, not engaging strategically with Generative AI poses risks, including falling behind peers, missed opportunities and failing to ensure our graduates remain employable. The rapid evolution of AI technologies necessitates a proactive and strategic approach if we are to remain relevant.
An Introduction To Software Development - Test Driven Development, Part 1
1. An Introduction To Software
Development Using Python
Spring Semester, 2014
Class #13:
Test Driven
Development, Part 1
2. 3 Different Types Of Testing
• Unit Testing
– Performed by developers
– Goal is to ensure that their code works correctly
• System Testing
– Performed by professional testers
– Goal is to ensure that the parts work together
• User Testing
– Performed by professional testers
– Goal is to ensure that the expected functions work
Image Credit www.fotosearch.com
3. Python Has Two Testing Tools
unittest
• Automated testing framework
• Python’s unittest module, sometimes
referred to as PyUnit, is based on the
XUnit framework design by Kent Beck
and Erich Gamma.
• The same pattern is repeated in many
other languages, including C, perl,
Java, and Smalltalk.
• The framework implemented by
unittest supports fixtures, test suites,
and a test runner to enable
automated testing for your code.
Py.test
• A mature full-featured Python testing
tool
• Provides easy no-boilerplate testing
• Scales from simple unit to complex
functional testing
• Integrates with other testing
methods and tools:
• Extensive plugin and customization
system:
4. What Would A Py.Test Script Look
Like For Homework #1?
#
# Encrypt the social security number
encryptedSS = ""
encryptedSS += socialSecurityNum[10]
encryptedSS += socialSecurityNum[9]
encryptedSS += socialSecurityNum[8]
encryptedSS += socialSecurityNum[7]
encryptedSS += socialSecurityNum[6]
encryptedSS += socialSecurityNum[5]
encryptedSS += socialSecurityNum[4]
encryptedSS += socialSecurityNum[3]
encryptedSS += socialSecurityNum[2]
encryptedSS += socialSecurityNum[1]
encryptedSS += socialSecurityNum[0]
def test_encrypted_SS ():
assert encryptedSS == ‘6270-55-461’
Image Credit www.objective.no
5. What Is Continuous Integration?
• Version control keeps track of our code
• Now we have automated tests
• We need to tie these two things together
• Continuous Integration tools do the following:
– Compile code
– Run the automated tests
– Display and mail out reports when new code is committed
to the repository
Image Credit www.guruintechnocrats.com
6. Continuous Integration In Action
Bob
1. Bob checks code into
the server
2. Version control code
notifies continuous
integration tool that there
is new code
3. Continuous integration tool
checks out the new code, compiles
it and runs all of your tests on it.
Most build tools also create a
web page and email the team to
let them know how things are
going.
7. How Many Tests Do You Need?
• Trade off: how much of the code that you test vs. the
chances of finding a bug in the part that you haven’t
tested.
• Testing the same code several different ways won’t
do you much good.
• Don’t focus on the number of tests you have, instead
focus on the coverage of your tests: % of code tested.
• Most projects aim for 85% - 90% coverage
Image Credit www.clker.com
8. What If…?
• Good software needs to work.
• How do you know that your software works?
• Even with unit testing, there is the possibility that a portion of
your code is untested.
• What if testing was a fundamental part of your software
development process?
• What if everything was done with testing in mind?
• Version Control + Continuous Integration + Automated Testing
9. New Idea: Test First, Not Last!
• Don’t try to go back and work testing into a
completed project.
• Instead, build support for testing into the project
from the start.
• New idea: Test Driven Design (TDD) – create code
with testing in mind from the start.
Pay with
Visa
Pay with
MC
Pay with
Paypal
3
3
5
Pay with Visa / MC / Paypal
10. Test First…
• The “Pay With Visa / Mastercard / PayPal” user story
is going to be broken into tasks.
• If we are going to test first, then we need to look at
our first task
• If we jump right into creating code, then we’ll be
right back where we’ve been doing testing last.
Pay with
Visa
Pay with
MC
Pay with
Paypal
3
3
5
Pay with Visa / MC / Paypal
11. Analyze The Task
• First we have to break this task down. For this task
we’ll have to:
– Represent the Order Information: We’ll have to capture
the customer’s name, what they are ordering, and the cost
– Represent the Credit Card Information: We’ll need the
credit card info, and their secret card number.
– Represent Receipt Information: We’ll have to capture the
confirmation number, the final cost, as well as the date of
the transaction.
Pay with
Visa
3
12. Create The Test First!
• Write a test case first!
• Start with the order information part of the
task.
• Use your test framework to create a test for
the “Pay with Visa” functionality.
13. Welcome To TDD!
• When you are creating test cases before you write code and
then letting those test cases drive how you create your code,
you are using Test Driven Development (TDD).
• TDD is a formal term that is used to describe the process of
testing from the outset of development.
• This means that you write every line of code specifically as a
response to your tests.
14. How To Write A Test Case
• Your first step needs to be to determine just
exactly what needs to be tested.
• Since this is fine grained testing, testing at the
unit testing level, you should start with a small
test.
• Determine what the smallest test that you
could write would be that uses the order
information that you’ll be storing as a part of
the first task?
15. Test Case Creation Secrets
• You have no code! You are writing your tests
first.
• There is no way that this test should pass the
first time that you run it.
• The test probably won’t even compile.
However, that’s ok…
• Remember, at first your test case…fails
miserably.
16. TDD Rule #1
• TDD Rule #1: Your test should always fail
before you implement any code.
• You want your tests to fail when you first write
them.
• The point of the test is to establish a
measurable success.
• Because your test is failing, now it’s clear what
you have to do to make sure that test passes.
17. Your Next Step…
• Write the simplest code just to get this test to
pass.
• This is called “… getting your tests to green.”
• Green refers to a green bar that many
automated test case runners display when all
tests pass. If any test fails, a red bar is
displayed.
• TDD Rule #2: Implement the simplest code
possible to make your test cases pass.
18. The YAGNI Principal
• Test-Driven Development is about doing the simplest thing
that you can do in order to get your test case to pass.
• Do not add anything that you MIGHT NEED in the future.
• If you do need something in the future, you’ll write a test case
for it and then you’ll write code to pass that test case.
• Focusing on small bits of code is the key to test-driven
development.
• YAGNI: “Ya ain’t going to need it”
19. 3 Steps To Test Driven Development
• Red: Your Test Fails
– Write a test to check whatever functionality you are going to write.
– It will fail because you have not yet implemented that functionality.
– This is the red stage because your testing GUI will show the test in red (failing).
• Green: Your Test Passes
– Implement the functionality to get that test to pass
– Write the simplest code possible to get the test to pass.
– This is the green stage.
• Refactor: Clean up – duplication, ugly code, old code, etc.
– After your test passes, go back in and clean up things that you noticed while
implementing your code.
– This is the refactor stage.
– Next, go on to create the next test.
Pay with
Visa
3
Pay with Visa / MC / Paypal
20. Exercise: Pay With Visa
• Represent the Order Information: We’ll have to capture the
customer’s name, what they are ordering, and the cost
– What tests can we create for the order
information task?
– What will be the minimal amount of code that we
can implement to pass these tests?
Image Credit: presstigeprinting.com
21. In TDD, Tests Drive Your
Implementation
• TDD drives your implementation all the way
through development.
• By writing tests before code, you have to focus
on the functionality right off the bat.
• What is the code that you are creating
supposed to do?
22. Good TDD Habits
• Each test should verify only one thing
– Make each test only test one thing
• Avoid duplicate test code
– Just like you avoid duplicate code, avoid duplicate tests.
• Keep your tests in a mirror directory of your source code
– You will be creating a lot of test cases
– Keep your tests in a separate subdirectory on the same level as your
source code and with the same directory structure.
– This will make life easier for your build scripts
23. Completing A Task
• You’ve got all the tests that you need and they
all pass.
• When your tests pass, move on!
• Different task, use the same process…
24. What We Covered Today
1. Test first, not last!
2. Test-Driven Development
3. TDD Rule #1: Your test
should always fail before
you implement any code.
4. TDD Rule #2: Implement
the simplest code possible
to make your test cases
pass.
Image Credit: http://www.tswdj.com/blog/2011/05/17/the-grooms-checklist/
25. What We’ll Be Covering Next Time
1. Test driven
development, Part 2
Image Credit: http://merchantblog.thefind.com/2011/01/merchant-newsletter/resolve-to-take-advantage-of-these-5-e-commerce-trends/attachment/crystal-ball-fullsize/
Editor's Notes
New name for the class
I know what this means
Technical professionals are who get hired
This means much more than just having a narrow vertical knowledge of some subject area.
It means that you know how to produce an outcome that I value.
I’m willing to pay you to do that.