Develop internal training material for python testing

I want to develop internal training content for writing good python unit and integration tests. There are three deliverables for this project:

* A longform document describing and exploring the subject matter in depth

* A 20 minute presentation walking through the content and examples

* An interactive tutorial / workshop applying the concepts in the document to concrete examples, with some automated evaluation based on coverage and hidden implementation bugs. This may be done either as a jupyter notebook, a dockerised training repository, an interactive webpage or similar, but ideally there should not be any backend necessary.

Familiarity with the subject matter is required, but I will be available to help develop and edit the content. The examples will walk through a simple microservices stack utilising the following python technologies:

* Flask HTTP server

* This interprets a REST query, validates the input and then dispatches the query to a microservice via a thrift RPC call

* Apache Thrift mid-layer microservice

* This implements permission checks and aggregates and interprets data into a series of database requests in one of the two data layers described below

* SQLAlchemy query constructed within the same service

* Translating a thrift request to a similarly-structured SQLAlchemy query

* Via another thrift microservice that uses mysql connector and raw SQL as a DAO service

A skeleton describing the content is provided below. It may be incomplete - if there is anything else to cover, please expand it or alter it. Please note that the examples do not have to be written from scratch - some existing skeleton code exists, just focus on the test structure and content.

Testing Best practices

* Test only public methods/functions

* Test only the external behaviour of a class or module, otherwise you are just making the implementation details harder to change

* Writing descriptive tests

* Each test should have a docstring describing the property being validated

* Quick note on TDD

* Keep tests DRY and isolated

* Test code is code too - share mocks and setup methods and keep it clean

* Avoid complex code in tests

* Tests need to be obviously correct - if you’re doing a lot of computation in a test, it is too complex.

* Data providers

* Don’t hard-code data, use data providers. This makes tests generalisable as property tests, too

* Golden Tests

* Quick note on hypothesis

* Avoid mocks & a note on DI

* Mocks are fragile - avoid them where you can. Your functions should be as much of a black box to your tests as possible. DI-like patterns help with this.


* Mock at the service boundaries

* This tests as much of the real behaviour of your code as possible.

* Wrap your service boundaries with an adapter that isolates your code from the interface of the external system.

* Python mock library

* Basic usage, common pitfalls, examples, etc

* How to write good mocks

* Unit tests vs Integration tests

* What’s the difference? Why would you use either?

* When not to test

* Type systems and other static tooling

* Coverage vs defensiveness

* Enforcing Contracts

Test runners

* Nosetests, pytest

* Skipping tests, selecting tests, command line arguments, data providers[d][e][f]

* Coverage

* If it’s not covered, do you need it?

Tools: Pytest watch, pdb (and ptpdb), vscode integrations

Testing in the example stack

* Flask

* creating and using the flask mocks

* A simple test

* Thrift

* Using a local thrift server mock

* Pure python

* Testing a simple permission check


* Testing using a local mysql instance

* SQLAlchemy

* Same as above, but with sqlalchemy set up

Advanced testing

* Hypothesis[g] and Property based testing / state machine testing

Skills: Python, Software Testing, Technical Writing, Test Strategy Writing, Software Development

See more: python training for beginners, learning python, python training online free, python certification, python training certification, python training in person, python training near me, python tutorial, training material accent, etech inc training material, internet marketing training material, seo training material, voice accent training material pdf, software develop page marketing material, develop logo training company, clutch lining testing machine, java course training material, business objects training material, free training material voice accent, business object training material

About the Employer:
( 4 reviews ) Sydney, Australia

Project ID: #23763478

16 freelancers are bidding on average $257 for this job


I have Bachelors in Electrical Engineering and holds Masters degree in Energy Systems Engineering with strong research background. I have 6 years experience of programming and have been extensively working on python fo More

$350 AUD in 7 days
(56 Reviews)

i am professional in content writing. i will do my best.I am working in the field of writing for the last 10 years. I have managed 5000+ papers with a 100 percent result rate for my clients on different forums includin More

$10 AUD in 1 day
(90 Reviews)

"Hi, Hope you are doing well! Thanks for sharing your project requirement with us. It will be our great pleasure to work on your project. I have checked your requirement, yes we can do it, because we already work on si More

$150 AUD in 7 days
(33 Reviews)

Feel fee to contact me for Develop internal training material for python testing .Shoot me message to discuss further more details .We provide the comments,images,videos,demos and live sessions in order to help the cl More

$300 AUD in 7 days
(25 Reviews)

Hi Client High-quality & Fast-delivery is promised! As a highly skilled full stack developer and I can help you perfectly. I am very confident with my skills and I'd like to help your business by doing my best. My clie More

$300 AUD in 3 days
(3 Reviews)

I have decided of experience in Python testing , specially web application testing. If awarded I be will deliver on time

$160 AUD in 7 days
(2 Reviews)

Dear Sir, We are interested in this project. For knowing more about us, please visit [login to view URL] We have Experience in Front Technologies like HTML, CSS, and JavaScript programming and var More

$500 AUD in 30 days
(1 Review)

Dear client. Thank for reading my bid. I have just read your requirement at carefully. I 'm a full stack and full time developer. Especially, I like Java, C, C++, VB.Net, Python, QT and C# languages because these are m More

$500 AUD in 5 days
(1 Review)

-------- Pro Python/ Technical Writing/ Software Testing/ Software Development/ Test Strategy Writing Expert! -------- Hi,dear It is very attracting my mind because I'm very interested in your project and also, have r More

$50 AUD in 7 days
(1 Review)

Hello, Thank you for giving me a chance to participate in this interview process. I am an experienced Software Test Engineer having excelled experience in Functional Testing, Load Testing, Penetration Testing, Test Au More

$450 AUD in 15 days
(0 Reviews)

Hi there! I have read through and perfectly understood the available instruction for your project. My diverse skill set perfectly matches the project. It is my strong belief that you will be a very happy client after More

$10 AUD in 1 day
(0 Reviews)

Hello, I've just gone through job description carefully and am interested. I have rich experience in these fields. I am working in these fields for years, so I have enough confidence with these kinds of projects. If yo More

$255 AUD in 7 days
(0 Reviews)

Hello Greetings from Hudson Agile Technologies LLC – A New Jersey Firm. Entity ID – 0450219485 We are head quartered in 317, George Street, 3rd Floor, New Brunswick, NJ, 08901 We are a Software Technology Outsourc More

$255 AUD in 7 days
(0 Reviews)

Hello, I am gone through your requirement. I would like to prepare internal training material for your organisation. I am having 18 years of QA (unit | functional | integration | system | load | performance | etc test) More

$255 AUD in 7 days
(0 Reviews)
$283 AUD in 10 days
(0 Reviews)

I am a trained python tester who would be able to create training material on python with the knowledge I have in creating different templates and [login to view URL] include relevant programs as needed Relevant Skills and More

$283 AUD in 10 days
(0 Reviews)