Nathan's Brain
  • Introduction
  • Incubator
  • American Sign Language
  • Art
  • Behavior Change
    • Akrasia
      • Beeminder
      • Procrastination
  • Career
  • Civil Discourse
  • Communication
  • Computer Science
    • Artificial Intelligence
  • Creativity
    • Writing
  • Design
    • Color
    • Design Process
    • Stock
    • Web Design
  • Economics
  • Engineering
  • Entrepreneurship
    • Customer Development
    • Marketing
      • Newsletter Publishing
    • Pricing
  • Environment
    • Energy
    • Transportation
  • Failure & Vulnerability
  • Freelancing
    • Estimating
  • Futurism
  • Governance & Politics
    • Representation & Voting
  • Health
  • Humane Tech
    • Phone Usage
  • Infotainment
  • Linguistics
  • Minimalism
  • Personal Finance
    • FIRE Movement
    • Investing
  • Productivity
    • Attention Management
    • Audio for Focus
    • Automation
    • Task Management
    • Time Management
  • Programming Languages
    • JavaScript
      • Snippets
    • PHP
    • Python
      • Development Environments
      • Package Management & Distribution
  • Psychology
  • Quantified Self
    • Experience Sampling Method
  • Rationality
    • Bayes' Theorem
    • Cognitive Biases
  • Religion
    • Adventism
  • Remote Work
  • Research
    • Note Taking
  • Science
  • Self-Study
    • Accessibility & Usability
    • Algorithms
    • Artificial Intelligence
    • Cryptography
    • Data Science
    • Design Patterns
    • Freelancing
    • Functional Programming
    • Game Development
    • Graphic Design
    • Grid Layout
    • Microservices
    • PWAs
    • SaaS
    • Software Craft
    • Software Management
    • Statistics
    • SVG
    • UI Design
    • Web Animation
  • Software Development
    • API Design
    • Collaboration
    • Command Line
    • git
    • Integrated Development Environments
    • Knoxville Scene
    • Paradigms
    • Refactoring
    • Self-Care
    • Testing
  • Technology History
    • People
    • Timeline
  • Web Development
    • Accessibility & Usability
    • APIs
    • Browsers
    • Content Management Systems
    • CSS
    • Email
    • Frameworks
      • React
    • Libraries
    • No Code & Low Code
    • Performance
    • Serverless
    • Static Sites
    • Testing
    • Twig
    • Type
Powered by GitBook
On this page
  • Approval Tests
  • Integration Testing
  • Mutation Testing
  • Production Testing
  • Property-based Testing
  • Testable Architecture
  • Test-Driven Development
  • Testing Legacy Code
  1. Software Development

Testing

PreviousSelf-CareNextTechnology History

Last updated 3 years ago

- “Faker is a PHP library that generates fake data for you. Whether you need to bootstrap your database, create good-looking XML documents, fill-in your persistence to stress test it, or anonymize data taken from a production service, Faker is for you.” #php

- "generate massive amounts of fake data in the browser and node.js" #js

- "🐶 Git hooks made easy"

- “A metasyntactic variable is a specific word or set of words identified as a placeholder in computer science and specifically computer programming. … Metasyntactic variables used commonly across all programming languages include foobar, foo, bar, baz, qux, quux, quuz, corge, grault, garply, waldo, fred, plugh, xyzzy, and thud.[1][3] Wibble, wobble, wubble, and flob are also used in the UK.”

- "The biggest and most supportive global software testing community! Join the Ministry of Testing community - a great place to learn all things testing, connect with others interested in software quality, and contribute to the advancement of the software testing craft!"

/ - "Static analysis tools for all programming languages, build tools, config files and more."

#video

/ - "Read short guide: "

#article - “I am unit testing a class with a property whose value changes often, depending on communication it receives from another component. If the class does not receive any communication for 5 seconds, the property reverts to a default value. … How would you test to be sure that this property has the proper value when simulating various communication conditions?” #q&a

#article - "Cucumber reads executable specifications written in plain text and validates that the software does what those specifications say."

Approval Tests

#article - "Tests are a form of the . That is why, in an agile world where software never "stabilizes", tests can quickly move from being a pillar of quality to a burden and hindrance to change. Approval Testing mitigates this risk by removing the need for explicit assertions and instead managing changes to the system behaviour. Read this article to find out how it can help you 1) create automated tests more quickly ;2) have them test more thoroughly and 3) have them adapt much more easily than you ever thought was possible, also when a large amount of functionality is under test."

- "Unit testing asserts can be difficult to use. Approval tests simplify this by taking a snapshot of the results, and confirming that they have not changed."

- "ApprovalTests for python"

Integration Testing

Mutation Testing

Production Testing

Property-based Testing

Testable Architecture

Test-Driven Development

Testing Legacy Code

- JavaScript. "The web has evolved. Finally, testing has too. Fast, easy and reliable testing for anything that runs in a browser."

- #php

#article - “Mutation testing is a method of software testing in which program or source code is deliberately manipulated, followed by suite of testing against the mutated code. The mutations introduced to source code are designed to imitate common programming errors. A good unit test suite typically detects the program mutations and fails automatically.”

- Java mutation testing

/ - "Scientist-like library for Node.js in TypeScript"

- JavaScript

- Node.js

- PHP

- Python

- Ruby

- #php

- " is a Python library for creating unit tests which are simpler to write and more powerful when run, finding edge cases in your code you wouldn’t have thought to look for. It is stable, powerful and easy to add to any existing test suite." #python

- #javascript

- #php

- “The programmer provides a specification of the program, in the form of properties which functions should satisfy, and QuickCheck then tests that the properties hold in a large number of randomly generated cases.” #haskell

- “ScalaCheck is a library written in Scala and used for automated property-based testing of Scala or Java programs. ScalaCheck was originally inspired by the Haskell library QuickCheck, but has also ventured into its own.” #scala

- #scala

#article - "A major problem with unit tests is to make sure that they are robust in the face of a changing system. One of the most common problems programmers have with unit tests is the so-called smell. Every time you attempt to refactor your code, tests break."

#video

#video

#article - "Maintainability, not only of your production code, but also of your test code, is important, and the DRY principle is just as applicable here."

#video - "You've been bitten by the testing bug, are thoroughly test infected. Excellent! You're undoubtedly producing more robust, less buggy software faster and at lower cost. Now it’s time to think about what makes unit tests even better. We’ll discuss flakiness, debuggability, reproducibility, speed, specificity, independence, timing, and other characteristics of effective unit tests. Examples will be in Java and JUnit, but the principles apply generally to all languages and test frameworks."

- "As well as being a great way to learn some Python, it is also a good way to get a taste of Test Driven Development (TDD)."

- "This project contains my custom workflow for test-driven development in Haskell and serves as documentation for me."

#video - "Javascript has evolved into an ecosystem with many choices and multiple paradigms of programming. In this session Roy will show how test driven development can still work and be applied to backend and frontend situations using ES2015 as well as the core concepts of TDD and why it can be helpful in your day to day job."

#video - "You've been bitten by the testing bug, are thoroughly test infected. Excellent! You're undoubtedly producing more robust, less buggy software faster and at lower cost. Sadly, it wasn't always this way. You're saddled with a large legacy of untested code. Test first development is not an option. Nonetheless unit testing, JUnit, and test driven development can still dramatically improve your maintenance tasks. Learn strategies for retrofitting test frameworks onto existing code, and developing a test suite for code that never had one before."

Faker
faker.js
Husky
Metasyntactic variable
Ministry of Testing
mre
awesome-static-analysis
The Science of Unit Testing
unicornity
katas
Learning Test Driven Development with TDD Katas
Unit testing with timeouts
What is Cucumber?
Approval Testing: Agile Testing that Scales
specification of the software
Approval Tests
GitHub
ApprovalTests.Python
cypress
Infection
Mutation Testing
Pitest
TrueWill
tzientist
https://github.com/ziyasal/scientist.js
https://github.com/trello/scientist
https://github.com/daylerees/scientist
https://github.com/joealcorn/laboratory
https://github.com/github/scientist
Eris
Hypothesis
Hypothesis
JSVerify
PhpQuickCheck
QuickCheck
ScalaCheck
ScalaTest
Auto-mocking Container by Mark Seemann
Fragile Test
Dependency Injection basics- Fun Fun Function
Inversion of Control - Fun Fun Function
SUT Factory by Mark Seemann
Effective Unit Testing by Eliotte Rusty Harold
gregmalcolm / python_koans
Test-driven development with Haskell
Understanding TDD with Modern JavaScript
Testing Legacy Code Elliotte by Rusty Harold