Testing and Code Quality

In the context of software engineering, software quality refers to two related but distinct notions: Software functional quality; Software structural quality.

Includes knowledge areas

Integration Testing

Integration testing is used to test a group of individual modules, components, or pieces of units. The main purpose of Integration testing is to find bugs when two or more modules are integrated. To check how two or more modules, components, or a different piece of code are will work together.

E2E Testing

Unlike unit testing, which focuses on individual modules and classes, end-to-end (e2e) testing covers the interaction of classes and modules at a more aggregate level - closer to the kind of interaction that end-users will have with the production system.

Unit testing

The main objective of unit testing is to isolate written code to test and determine if it works as intended. A unit test typically comprises three stages: plan, cases, and scripting, and the unit test itself.

Debugging, Profiling, Optimization

There are a few libraries that help you with Python development: the debugger enables you to step through code, analyze stack frames and set breakpoints etc., and the profilers run code and give you a detailed breakdown of execution times, allowing you to identify bottlenecks in your programs. Auditing events provide visibility into runtime behaviors that would otherwise require intrusive debugging or patching.

Linters and Formatters

It is worth spending a little bit of extra time to set up formatting and linting tools that will help keep your code clean and enforce good development practices. In Python there a few of them: PyLint, flake8, MyPy, pyflake, black, etc.

Test coverage tools (CoveragePy)

Coverage measurement is typically used to gauge the effectiveness of tests. It can show which parts of your code are being exercised by tests, and which are not. Coverage.py is a tool for measuring code coverage of Python programs.

High load testing

Load testing is a great way to grab insights about how your application runs under heavy load, how all services interact, and to plan production capacity accordingly.

Test Automation

Test automation is the practice of running tests automatically, managing test data, and utilizing results to improve software quality. Automated testing is well-suited for large projects, projects that require testing the same areas over and over, and projects that have already been through an initial manual testing process.

Test Driven Development

“Test-driven development” refers to a style of programming in which three activities are tightly interwoven: coding, testing (in the form of writing unit tests) and design (in the form of refactoring).

BDD (Behavior-Driven Development)

In software engineering, behavior-driven development (BDD) is an agile software development process that encourages collaboration among developers, quality assurance testers, and customer representatives in a software project. BDD is an extension to the TDD concept, but instead of testing your code you are testing your product, and specifically that your product behaves as you desire it to.

Is a part of:

Python

Explore

Heading

HeadingHeading

The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.

Static and dynamic content editing

A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!

How to customize formatting for each rich text

Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.