TDD is a software development technique where test cases are written before production code to specify desired behavior. It involves writing a test that fails, then producing the minimum amount of code to make it pass, and refactoring the code to improve design. This process helps improve code quality, catch bugs early, and drive code design. BDD is a style of TDD that focuses on writing tests in a natural language format describing desired behavior. Frameworks like Jasmine provide tools for writing BDD-style tests in JavaScript.
A brief introduction to test for the non-tester. Can be used for both business and development, although it is primarily focused on developers and persons interested in becoming testers.
We presented this library at Java Developer Conference Cairo 2012. The purpose of this library is to provide developers with the capability to do Data Driven Testing on Android.
A brief introduction to test for the non-tester. Can be used for both business and development, although it is primarily focused on developers and persons interested in becoming testers.
We presented this library at Java Developer Conference Cairo 2012. The purpose of this library is to provide developers with the capability to do Data Driven Testing on Android.
Audrys Kažukauskas - Introduction into Extreme ProgrammingAgile Lietuva
Extreme Programming might not be a silver bullet, but in software development it is almost that. Managers get all the bells and whistles you would expect from an agile process, whilst developers are equipped with a set of principles and practices, which almost inevitably improve the codebase and enable frequent delivery of quality software. In fact, many teams, which use other software development processes (Scrum, for instance) eventually end up adopting quite a few XP practices. I'll give you an introduction into XP, share my experiences and provide references to XP material for learning more about XP.
Capability Building for Cyber Defense: Software Walk through and Screening Maven Logix
Dr. Fahim Arif who is the Director R&D at MCS, principal investigator and GHQ authorized consultant for Nexsource Pak (Pvt) Ltd) discussed the capability of building cyber defense in the Data Protection and Cyber Security event that was hosted recently by Maven Logix. In his session he gave the audience valuable information about the life cycle of a cyber-threat discussing what and how to take measures by performing formal code reviews, code inspections. He discussed essential elements of code review, paired programming and alternatives to treat and tackle cyber-threat
Enter the mind of an Agile Developer, BSG shares with you how we do software development and how to embed agile methodologies into your development process.
Introduction to the fundamentals of eXtreme programming (XP). XP is a software development approach which stresses on improving software quality and respond according to changing business requirements.
Learn how Acceptance Test Driven Development (ATDD) provides the process for capturing detailed requirements as acceptance criteria and turn them into as test cases before development begins using Behavior Driven Development (BDD). The BDD approach and Gherkin format is the language used to create easy to understand and actionable scenarios that map from the functional level to the components and units. We will discuss the different approaches to TDD including a realistic approach leveraging BDD to a purest standpoint where TDD use the tests to drive the design of the application. Finally understand how the tools in Visual Studio and Team foundation Server to support BDD such as SpecFlow (Cucumber in .NET), Refactoring tools, and Test Cases in MTM.
Agile testing principles and practices - Anil KaradeIndicThreads
Traditional test processes are not adaptive to extensive changes in software. Agile process emphasizes on ability to adapt to changing business needs, customer collaboration, integrated teams and frequent delivery of business values. Agile is an umbrella term that describes a variety of methods including XP and Scrum.
The talk will discuss pitfalls of the traditional testing process. Traditional testing process happens very late in the SDLC Where as Agile process focuses on test-first approach. The talk will explain benefits of going agile. Principles and practices of agile process will be discussed and agile methodologies Scrum and Extreme Programming will be discussed in detail. Purpose of Scrum, its effectiveness, timings and managing the scrum will be discussed. Some of the practices for XP like Pair Programming, Test Driven Development will be discussed. The Talk will also cover the QA role in agile world. The talk will cover the implementation issues while shifting from traditional to agile process. Talk will also include an interactive game for illustration of concepts.
Not every continuous delivery initiative starts with someone saying "drop everything. Let's do DevOps." Sometimes you have grow your practice incrementally. And sometimes, you don’t set out to grow a practice at all-- you are just fixing problems with your process, trying to make things better.
I'll walk through a case study of how our team worked on an exemplar project for the Department of Defense to show that agile could work in a decidedly waterfall culture. I’ll also discuss techniques and tools we used to bring a DevOps mindset and continuous delivery practices into an environment that wasn't already Agile.
I'll talk about how we were able to start in development, where we had the most control, with a "let's starting being Agile" initiative and working on "why is continuous integration important?" From there, we tackled one problem after another, each time making the release a little easier and a little less risky. We incrementally brought our practices through other environments until the project was confidently delivering working, QA-tested, security-tested releases that were ready for production every two weeks. I’ll discuss the journey we took and the tools we used to get to build quality into our product, our releases, and our release process.
This session is aimed at people that are trying to adopt agile and continuous delivery, but might be worried that it can’t work in their particular environment due to the enterprise, the culture, or the regulations that surround them.
Audrys Kažukauskas - Introduction into Extreme ProgrammingAgile Lietuva
Extreme Programming might not be a silver bullet, but in software development it is almost that. Managers get all the bells and whistles you would expect from an agile process, whilst developers are equipped with a set of principles and practices, which almost inevitably improve the codebase and enable frequent delivery of quality software. In fact, many teams, which use other software development processes (Scrum, for instance) eventually end up adopting quite a few XP practices. I'll give you an introduction into XP, share my experiences and provide references to XP material for learning more about XP.
Capability Building for Cyber Defense: Software Walk through and Screening Maven Logix
Dr. Fahim Arif who is the Director R&D at MCS, principal investigator and GHQ authorized consultant for Nexsource Pak (Pvt) Ltd) discussed the capability of building cyber defense in the Data Protection and Cyber Security event that was hosted recently by Maven Logix. In his session he gave the audience valuable information about the life cycle of a cyber-threat discussing what and how to take measures by performing formal code reviews, code inspections. He discussed essential elements of code review, paired programming and alternatives to treat and tackle cyber-threat
Enter the mind of an Agile Developer, BSG shares with you how we do software development and how to embed agile methodologies into your development process.
Introduction to the fundamentals of eXtreme programming (XP). XP is a software development approach which stresses on improving software quality and respond according to changing business requirements.
Learn how Acceptance Test Driven Development (ATDD) provides the process for capturing detailed requirements as acceptance criteria and turn them into as test cases before development begins using Behavior Driven Development (BDD). The BDD approach and Gherkin format is the language used to create easy to understand and actionable scenarios that map from the functional level to the components and units. We will discuss the different approaches to TDD including a realistic approach leveraging BDD to a purest standpoint where TDD use the tests to drive the design of the application. Finally understand how the tools in Visual Studio and Team foundation Server to support BDD such as SpecFlow (Cucumber in .NET), Refactoring tools, and Test Cases in MTM.
Agile testing principles and practices - Anil KaradeIndicThreads
Traditional test processes are not adaptive to extensive changes in software. Agile process emphasizes on ability to adapt to changing business needs, customer collaboration, integrated teams and frequent delivery of business values. Agile is an umbrella term that describes a variety of methods including XP and Scrum.
The talk will discuss pitfalls of the traditional testing process. Traditional testing process happens very late in the SDLC Where as Agile process focuses on test-first approach. The talk will explain benefits of going agile. Principles and practices of agile process will be discussed and agile methodologies Scrum and Extreme Programming will be discussed in detail. Purpose of Scrum, its effectiveness, timings and managing the scrum will be discussed. Some of the practices for XP like Pair Programming, Test Driven Development will be discussed. The Talk will also cover the QA role in agile world. The talk will cover the implementation issues while shifting from traditional to agile process. Talk will also include an interactive game for illustration of concepts.
Not every continuous delivery initiative starts with someone saying "drop everything. Let's do DevOps." Sometimes you have grow your practice incrementally. And sometimes, you don’t set out to grow a practice at all-- you are just fixing problems with your process, trying to make things better.
I'll walk through a case study of how our team worked on an exemplar project for the Department of Defense to show that agile could work in a decidedly waterfall culture. I’ll also discuss techniques and tools we used to bring a DevOps mindset and continuous delivery practices into an environment that wasn't already Agile.
I'll talk about how we were able to start in development, where we had the most control, with a "let's starting being Agile" initiative and working on "why is continuous integration important?" From there, we tackled one problem after another, each time making the release a little easier and a little less risky. We incrementally brought our practices through other environments until the project was confidently delivering working, QA-tested, security-tested releases that were ready for production every two weeks. I’ll discuss the journey we took and the tools we used to get to build quality into our product, our releases, and our release process.
This session is aimed at people that are trying to adopt agile and continuous delivery, but might be worried that it can’t work in their particular environment due to the enterprise, the culture, or the regulations that surround them.
Test Driven Development - a Practitioner’s PerspectiveMalinda Kapuruge
Guest lecture at Swinburne University of Technology, Melbourne. We introduced TDD concepts to students. We also did a live interactive demo with students to understand benefits of TDD.
Finally, we discussed benefits as well as pitfalls from a practitioner's point of view.
What is practice, Examples, Best practices that developers should follow. Useful tools that every developer should carry and useful GitHub repositories.
Pair programming and introduction to TDDArati Joshi
These are slides used in a workshop on TDD. Slides explain more about different types of pair programming techniques when to use each, what is TDD and how to start thinking about TDD as mindset change.
Understanding TDD - theory, practice, techniques and tips.Malinda Kapuruge
My talk at the Swinburne University on 09/10/2019. Presented to students as part of the series, Development Projects - Tools and Practices.
Level: Beginner
One of most exciting engineering challenges today is building a reliable self-driving car or driving support system. Today's vehicles offer a huge variety of sensors that can feed any algorithm with enough data to provide a pretty solid driving support experience. On top of this, despite some differences, smartphones sensors are robust enough to provide a rich set of environmental information. During this presentation, we'll discover how to implement computer vision solutions on Android with OpenCV, and how to mash-up device and vehicle data to build a driver assistant solution with open source technologies.
No matter which technology you use, your software should be able to efficiently handle user interaction and data streams to satisfy all requested use cases.
In order to manage the fast growth of data sources and interaction paradigms, we must shift to a non-blocking and sequential programming paradigm--which can be solved through Reactive Programming.
In Reactive Programming, everything can be seen as a sequence of events. In conjunction with function composition, Reactive Programming is a powerful tool to leverage readability, maintainability, and testability on any layer of your software.
During this session, we'll dive into Reactive Programming and, with the help of the Reactive Extensions API, discover how to translate use cases and acceptance criteria in a stream of events across multiple platforms.
Everybody knows Javascript is single-threaded and that it shares this same thread with other browser-related processes such as painting and compositing. There are several techniques to implement pseudo multithreading in JavaScript; however, during this talk we will focus our attention on how to use and debug the Service Worker API. Our end goal is to explore practical use cases in order to simplify the process to render complex user interfaces and transitions in a browser.
When used properly, the TDD (Test Driven Development) cycle is one of the most effective ways to improve the efficiency of a team and overall code quality. However, most of the time, misuse of this powerful technique brings unsatisfactory results. During this talk we’ll explore how to identify “testing smells” and how to prevent bad tests that negatively impact the design and architecture of a Web app.
We’ll investigate some real world mobile app examples in JavaScript, Swift, and Java for Android that threaten to eat us alive!