Software Engineering - Final Study Guide

Réussis tes devoirs et examens dès maintenant avec Quizwiz!

What is the tool that lets you write user stories as tests in plain English?

Behavior Driven Behavior, BDD

What is FactoryBot used for?

Creates dummy instances of certain model for testing.

Why are QA teams not a replacement for good testing practices?

Infinte amounts of possible combinations makes it a waste of resources. Manual testing is unfeasible.

How does a test suite serve as living documentation?

It tests all possible combinations and runs any any new code added.

When working on an application, why is it important to consider the sad paths and not just the happy paths?

To check that right things work and wrong things are not allowed

What can we call a tests that proves we implemented a high-level feature that the customer/boss/client wants?

feature test

What is the git command to create a new branch?

git checkout -b <branch-name>

What is the git command to create and checkout a branch at the same time?

git checkout -b <feature_branch> adding '-b' creates the branch

Where are feature specs located?

/features

Where are model specs located?

/spec/models

Where are request specs located?

/spec/requests

How do we measure productivity in agile?

1. Planned-to-Done rations 2. Escaped Defects 3. Actual vs committed stories 4. Accelerating Team Velocity 5. Cycle Time

What is the best way to achieve confidence in a growing code-base?

Applying a test suite

What are some of the benefits of test-driven development?

Automated tests are the best to achieve confidence.

What is it called when we use the idea of user stories to drive the development of our application?

Behavior Driven Design (BDD)

When you open a Pull Request, what do you expect someone on your team to do?

Code Review

What is the tool that lets you simulate a browser in tests?

Cucumber

What are integration tests?

Cucumber tests, tests from end user perspective

What are some of the things that code reviewers should look for?

Design, functionality, complexity, tests, naming, comments, style, consistency

How do we amplify that confidence and achieve bigger wins in time savings and code?

Divide and conquer.

What is the collection of user stories that have not yet been completed called?

Epics.

What is the tool that allows us to expect certain things and causes a test to fail if the expectation is not met? (This tool is used in all types of Rails testing)

FactoryBot

Know the three types of major tests in Rails and what they are used for.

Feature Specs, Request Specs, Model Specs

When should you use outside-in development?

Have a good understanding of how the UI will look like and use it to drive development.

When should you not use TDD?

Have no idea what to do or how to code it, don't know how the UI will look like.

What are some of the benefits of automated testing?

Imitates a human saves time and resources

What is Cucumber and which type of testing does it help with?

Integration tests, simulation a user perspective

How does good testing practices enable confidence?

It check that the software does the right thing and not the wrong thing.

How does continuous integration help maintain a stable master branch?

It tests the master branch for code errors by conducting tests for anything that may break on merge.

What are unit tests?

Low level tests.

Why is it important to not work in master?

Master branch should represent the stable branch, adding onto it may break existing code.

What is velocity?

Measure of units of work completed in a given timeframe.

What is the type of testing used to check that models work as intended?

Model Specs

If your code is "red", meaning some of the tests failed in continuous integration, should you merge it?

No, check for test fails.

How do we validate that the requirements are correct (that we didn't misunderstand, and that it is indeed what the customer wants)?

Propose prototypes of the product.

What are the three steps to TDD and what do you do at each step?

Red, green, refactor. Write a test first covering functionality (failing test), read error message and write as little code as possible continue until the test passes (green), once you know how to pass now you clean your code and simplify (refactor)

What is it called when new code breaks old code?

Regression

What is the type of testing used to issue direct HTTP calls to the application to check whether our HTTP requests work as intended?

Request Specs

How do we write down customer requirements in Agile?

Requirements can be functions, constraints, business rules or other elements that must be present to meet the need of the intended users. If the product to be delivered is a custom-built car, the requirements defining this would be more feature-based: √ A means of propulsion √ A maintainable steering capability √ A comfortable place to sit

Why are 3x5 cards a good choice for documenting user stories?

Shifts focus from writing to talking about them, and series of conversations about them.

Why should we use continuous integration?

Smaller code changes, fault isolations, faster mean time to resolution, more test reliability, faster release rate, smaller backlog, customer satisfaction.

Be able to recognize a SMART user story.

Specific Measurable Achievable Relevant Timeboxed

What is a SMART user story?

Specific Measurable Achievable Relevant Timeboxed

Why are integration tests generally slower than unit tests?

Tests multiple combinations from the user perspective

Why are low-fidelity prototypes good for validating user stories?

They display just some of the properties of the future product.

What is one of the biggest obstacles that developers have that stops them from practicing TDD?

They don't understand what to test, not knowing they should write low-level tests first or high level tests firsts.

What is a test suite?

Unit test, module tests, integrations and acceptance tests.

Where do you go if you are unsure of how an application is supposed to work?

User Stories

When should you use inside-out development?

When you don't know what your UI will look like.

Are Cucumber tests integration tests?

Yes

Can Cucumber tests be considered acceptance tests?

Yes

Can you have many different branches at the same time?

Yes, you can have multiple branches at the same time.

What is a spike?

You don't know what you are doing yet, and you want to explore options with a quick implementation.

What is the git command to checkout a branch?

git checkout <feature_branch>

What are some of the benefits of code review?

maintain consistent coding style across the company, teaching and sharing knowledge. Gain better understanding of the code base.

What is continuous deployment?

process that takes validated Features in a staging environment and deploys them into the production environment, where they are readied for release.


Ensembles d'études connexes

N120- HESI: AQ Practice Quiz - Interventions

View Set

International Business Chapter 4

View Set

6: Qualified Plans/Federal Tax Considerations

View Set

SB Ch. 7.1-7.3: DNA Structure and Function

View Set

Chapter 14 Exam - Private Insurance Plans for Seniors

View Set

TestOut Security Pro Chapter 8-11

View Set

Chapter 46: Mgt With Gastric and Duodenal Disorders - ML8

View Set