aboutsummaryrefslogtreecommitdiff
path: root/src/ase.md
diff options
context:
space:
mode:
Diffstat (limited to 'src/ase.md')
-rw-r--r--src/ase.md754
1 files changed, 0 insertions, 754 deletions
diff --git a/src/ase.md b/src/ase.md
deleted file mode 100644
index 5618803..0000000
--- a/src/ase.md
+++ /dev/null
@@ -1,754 +0,0 @@
-# Q1. Software Process Model - Waterfall
-## What is software engineering a response to?
-- Increasing system complexity.
-- Failure to use software engineering methods.
-
-There are no universal notations, methods or techniques for software engineering.
-This is because different types of software require different approaches.
-
-There are cases where software projects or software can fail.
-
-### Increasing system complexity
-As new software technology helps us to build bigger, more complicated systems, the requirements change.
-
-Systems need to be developed and delivered faster meaning more complicated systems are required.
-This means more requirements for the systems.
-
-### Failure to use software engineering methods
-It is easy to develop programs without using software engineering techniques... BUT
-This can result in more expensive software development and less reliable, readable systems.
-To solve this issue, more education and training is required on these techniques.
-
-## Software engineering process activities
-### Software specification
-This is where the clients and the developers define the software that should be produced.
-This is where the software is limited in terms of what is should be.
-
-### Software development
-This is where the software is designed and programmed.
-
-### Software validation
-This step ensures that the software does what the client requested.
-
-### Software evolution
-When software is modified to meet client's or the market's new requirements.
-
-## What is a software process model
-A software process model is a set or related activities that leads to a software product.
-An abstract descriptions of high level software processes.
-These can be used to explain different approaches to software development.
-These can be interpreted as frameworks that can be expanded and personalized to create more specific software engineering processes.
-
-### Waterfall model
-The model takes the fundamental software process activities.
-Seperate process phases:
-- Requirement specification
-- Software design
-- Implementation
-- Test
-
-### Incremental/iterative development
-This approach combines the activities with specification, development and validation.
-The system is developed in a series of versions (increments)
-Each version adds some functionality on top of the previous version.
-
-### Integration and configuration
-This approach depends on the availability of reusable components or systems.
-The systemdevelopment process focuses on configuring these components to be used in new contexts and integrate them with the system.
-This lets you reuse code from previous projects and save time and money.
-
-## Waterfall model
-Activities are done in a sequence.
-Handover of workproducts between phases and milestones are used to monitor progress.
-Waterfall model is an example of a plan-driven process.
-You are supposed to have all of the process activities and phases planned out before you start development.
-The phases in the model directly reflect the fundamental development activities.
-
-### Requirements analysis and definition
-The systems services, limits and goal and made concrete through consulting with the users.
-They are then defined in detail and are used as the system specification.
-
-### System and software design
-The overall system architecture is established in this phase.
-Identify and describe the fundamental system abstractions and their relations (UML)
-
-### Implementation and unit testing
-The design is implemented in the indivivual program parts.
-The design is tested to verify that it meets the specification.
-
-### Integration and system testing
-The individual program parts are integrated and the whole system it tested.
-The software is delivered to the client.
-
-### Operation and maintenance
-The system is now installed and in use.
-The system is maintained to any issuse that weren't found earlier.
-The system is improved over time.
-
-## When should you consider using waterfall?
-For software that needs to be flexible while it is being developed.
-
-### Embedded systems
-The software must interface with hardware.
-In this case the hardware is not flexible, thus the software must be.
-
-### Critical systems
-When total security is a requirement of the specification and design.
-These systems must have finite specifications and design documents.
-
-### Large software systems
-Part of a larger system being developed by several parties.
-This makes finite specifications extremely necessary.
-
-## How can I decide on waterfall? - analyse home ground
-When one phase ends another begins.
-Steps come ordered and don't allow for going back and redoing parts. (waterfall flows only down)
-When the requirements are mostly unchanging.
-
-### Plan driven versus agile processes?
-Activities in sequence versus all activities at the same time.
-Agile development is very flexible and the requirements may be constantly changing.
-
-## Incremental model
-You can iterate within increments and the increments can be planned.
-You work within fixed time slots and update the project backlog continuously.
-Incremental is an agile process, where you end with multiple versions that you can show the clients as the project progresses.
-This allows for the client to come with feedback along the way.
-
-## Integration and configuration
-Development risk is reduced by reuse but there is the risk of not being able to make the desired changes at all or in the time frame.
-Most projects have some level of code reuse.
-This is often informal.
-This reuse requires looking for the existing code, changing them to meet the requirements and integrating them with the new code.
-
-# Q2. Software Process Model - Incremental/iterative
-The incremental development is based on the idea that:
-1. Develop in prototypes.
-2. Get feedback from the users and others.
-3. Develop over multiple versions until the required system is produced.
-
-Incremental development is the most common approach to developing applications and software.
-
-## Can it be both plandriven and agile?
-Yes, it can be either one or a mix of both.
-
-### Plan-driven approach
-Identify the system increments in advance.
-A predictable waterfall plan is split into parts.
-
-### Agile approach
-The early increments are identified.
-The later increments depend on progress and the clients priorities.
-You work in fixed timeframes and update the full project backlog as you go.
-
-### Agile-manifest (balance/mix)
-Focus on the individuals and teamwork rather than the processes and tools.
-Good software comes before comprehensive documentation.
-Work with the client instead of using contract work.
-Deal with changes instead of sticking to the plan.
-
-## What are advantages of incremental?
-
-1. Development costs are reduced
-The amount of analysis and documentation that has to be redone is much less than waterfall.
-
-2. It is easier to get client feedback
-The clients can comment on demonstrations of the different versions and see the progress.
-
-3. Earlier delivery of new software
-New features can be made available even if they are not fully completed.
-
-## What disadvantages are there?
-
-1. The project is not visible
-Managers can have difficulty measuring progress.
-It would be a waste of resources to produce documents that reflect the different versions.
-
-2. The system structure can get messy over time
-Changes lead to messy code.
-It gets increasingly difficult to add new functions to a system.
-Large, complex systems with large teams struggle with incremental for this reason.
-Large systems need a stable architecture.
-Responsibility of the different teams needs to be clear with respect to this architecture.
-This has to be done in advance.
-
-# Q3. Software Process Model - Integration and configuration
-## What are the phases?
-### Requirements specification
-The inital requirements are suggested
-They don't need to be developed in more detail.
-They should include short descriptions of important requirements and desired functionality.
-
-### Software discovery and evaluation
-With the overview of the requirements, components are searched for that provide the necessary functionality.
-
-### Requirements refinement
-The requirements are polished with the knowledge of the reusable components that were found.
-
-### Application system configuration
-If an application that meets the requirements is available, it is configured for use in the new system.
-
-## Advantages/disadvantages
-This model reduces the amount of software that must be developed.
-This in turn, reduces the costs and risks.
-
-You usually don't have control of the software that is being reused.
-This can include for example how and when new version are released and how the functionality is changed.
-
-# Q4. Comparison of plandriven and agile including Homeground
-## What is the difference between plandriven and agile?
-### Plandriven
-Plandriven means the desired result can be predicted.
-Plandriven = waterfall.
-Plandriven is an approach where the development process is planned in detail.
-A project plan is created that registers the work that needs to done, who should do it the development plan and the work tools.
-Managers use this plan to support project decisions and as a way to measure progress.
-This is a traditional approach to software development.
-
-### Agile
-Agile expects changes and frequent user inspection to get the best results.
-Agile = Iterative, more detailed Scrum and XP
-Agile methods are iterative, the software is developed and delivered in stages.
-These versions are not planned in advance but are chosen underway.
-Decisions on what should be included in a version depend on the clients priorities.
-
-## How does Böhm/Turner define primary factors?
-### Application
-#### Agile
-Goal: to handle changes in the project.
-Small teams.
-Environment is turbulent and fast-paced, project focused.
-
-#### Plandriven
-Goal: predictability, stability and security.
-Larger teams and projects.
-Environment: stable, few changes, organisation focused.
-
-### Management (onsite, qualitative control, tacit knowledge)
-#### Agile
-Customer relations: dedicated clients on site, focused on prioritised changes
-Planning and control: qualitative control. Who and how doensn't matter as long as it gets done.
-Communications: Tacit knowledge. People do things without needing much explanation or discussion.
-
-#### Plan-driven
-Customer relations: More formal and infrequent. Focused on contract decisions.
-Planning and control: Documented plans, quantitative control. It is important to know who does what.
-Communications: Explicit. Plans must be discussed and verbalized and shared with the others.
-
-### Technical
-#### Agile
-Requirements: can withstand unpredictability.
-Development: simple design, small increments, refactoring is assumed to be cheap.
-Test: Test cases define the requirements.
-
-#### Plan-driven
-Requirements: Formal project, user interface, quality, predictable requirements.
-Development: Comprehensive design, larger intervals, refactoring is costly.
-Test: Documented testplans and procedures.
-
-### People
-Cockburn characteristics can describe a programmers personality.
-One type may be more favourable than another depending on agile/plan-driven approach.
-
-## 5 axis on the Home Ground Decision tool
-- Criticality: impact of defects
-- Personell: average cockburn type
-- Dynamism: % requirement change per month
-- Culture: % thriving on chaos vs. order
-- Size: # of personnel
-
-## What is continuous integration and how does it relate to agile?
-As soon as the work on a task is complete, it is integrated into the whole system.
-After such integration, all the unit tests must pass.
-Continuous integration uses tools to automate the process.
-Depends on unit tests.
-Does NOT remove the need for tests.
-
-## Prototype development
-
-- Prototype plan: establish objectives
-- Outline definition: define functionality
-- Executable prototype
-- Evaluation report
-
-# Q5. Key features of SCRUM
-Openness of all work.
-Respect each other.
-Focus on the common goal.
-Courage for difficult decisions.
-Duty to the common goal.
-
-3 roles.
-5 events.
-3 artifacts.
-
-## Assets
-- Scrum board
-- Project burndown
-- Sprint burndown
-
-## Three pillars
-Transparency: Everyone knows what needs to be done and who is doing what.
-Inspect: Keep an eye on where we are heading (daily meetings).
-Adapt: Change if it is necessary.
-
-## Core values
-Commitment: to reach the sprint goal.
-Focus: on what needs to be done in the sprint.
-Openness: Communication is key, don't hide issuse.
-Respect: for each other
-Courage: to do the right thing
-
-## Typical errors
-Scrum master is a manager.
-No communication with the client.
-New tasks are added to the sprint backlog in the middle of a sprint.
-
-## Daily SCRUM
-Inspect progress towards the sprint goal.
-Adjust the backlog accordingly.
-Update (how far are we?)
-Short meeting (15 min)
-Tell the others if you need help.
-
-## Sprint planning
-Work together with the whole SCRUM team for sprints.
-Look in the backlog.
-Make a sprint backlog. (this can't be changed from the outside)
-
-## Sprint review
-Check development status.
-Sprint review max 4 hours with sprints of 4 weeks.
-The client participates along with the team.
-Only talk about what has been done.
-Dialogue, no presentation.
-Update the backlog.
-
-## Sprint retrospective
-For increasing quality and effictivity.
-What went well/bad?
-How can this be improved for the future?
-
-## Roles
-### Product owner
-Stakeholder contact
-Updates/prioritises the product backlog
-Can be a person dedicated to the client
-The goal is the maximise product value
-Can delegate but is responsible
-
-### SCRUM master
-Ensure everyone is keeping in-line with SCRUM
-Not the management leader
-Ensure the team is effective
-Deal with the teams blockages
-
-### Developers
-They own the backlog
-Programmers, UI, UX and so on
-
-# Q6. Key features of XP - eXtreme Programming
-## What is XP?
-An agile, incremental development method with focus on:
-- Collaboration
-- Quick and early software creation
-- Skillfull development practices
-XP takes all the 'good things' the extreme. (testing, pair programming).
-
-The customre should be available full time for the use of the XP team.
-In XP, the customer is a member of the dev team and is responsible for bringing requirements.
-
-Pair programming: developers work in pairs, checking each other's work to ensure quality.
-
-## Qualities of XP that fit to SCRUM
-Pair-programming.
-Writing unittests before the code (with the help of TDD).
-Partners often have to integrate their code (use continuous integration).
-Refactor as often as possible.
-Collective ownership of code.
-Customer on-site, user stories, planning game, ...
-
-### What does XP and SCRUM have in common?
-Work should be done incrementally/iteratively.
-Teamwork, transparency, communication and prioritisation are crucial.
-Requirements are broken down into bite-size pieces.
-There is overlap with the roles. (XP client and SCRUM's product owner)
-
-## What values are XP based on according to Larman?
-Communication, simplicity, feedback, courage.
-
-### Communication
-Pair programming
-Customer on-site
-Acceptance test
-Daily standup (short meetings)
-
-### Simplicity
-Teams implement exactly what was asked for. Nothing more.
-Strive for simple designs and quality code.
-
-### Feedback
-Early and frequent feedback is crucial.
-Feedback can come from unittests, team members and the client.
-Continuous integration.
-Acceptance test that the client performs.
-Short sprints.
-
-### Courage
-Developers should be honest.
-Don't make excuses for issuse.
-Don't be afraid to make big changes.
-
-## How is XP extreme?
-E.g. If tests are good, do them all the time.
-Takes all good things, and places them at the core of the process.
-
-## Name some key practices in XP?
-Unit test, pair review, customer on-site, continuous integration, testing, early test, unit test, TDD.
-
-## What is a user story?
-Brief feature request, a promise for conversation.
-Written on a card with criteria for confirmation on the back.
-
-## Story maps - User story mapping
-To see the bigger picture of the user stories.
-To understand how things are now and to imagine how they could be.
-Visualize the stories you tell about your software.
-
-Story maps consist of:
-* User
- - a card that tells a story about a type of person, doing something to reach a goal.
-* Activities
- - Jobs done by similar people to reach a time
-* Backbone
- - Activies and jobs on a higher goal tier, give the user story structure.
- - This is a big goal, that the little goals are attached to.
-* User tasks
- - Short, concise sentences that explain the goal.
-* Sub-tasks
- - Break down more complicated goals.
-* Release slices
- - Identify tasks. The smallest number of tasks that allow specific users to reach their goal.
-
-Story map process has 4 levels
-
-## What is the format a user story?
-"As a <user> I want <feature> so that <why>".
-Who, what, why.
-
-## How does XP describe Lifecycle for a System?
-Exploration, planning, iterations to first release, productionizing, maintenance.
-
-## What is the iteration called in XP?
-Iteration
-
-# Q7. Product Planning: Requirements Elicitation, Product Vision, Product Roadmap
-## What main requirement activities are there?
-Elicitation and analysis of needs.
-Specification of requirements.
-Validation of requirements.
-
-## Elicitation and analysis of needs
-There are two fundamental approaches to Requirement Elicitation:
-1. Interview, where people talk about what they are doing.
-2. Observation or etnography, where you observe how people do their work and which technologies they use and so on.
-
-Use a mix of interview and observation to gather information.
-This can be used to find the requirements that form the basis of further discussion.
-
-## Requirement specification
-Is a process in which you write down user and system requirements into a document.
-Ideally, these requirements should be clear, consistent, complete and easy to understand.
-User requirements should be written in natural language and supplemented with dialogue and tables in the document.
-System requirements can also be written in natural language, but other notations, graphs, maths, etc can also be used. (state machines, automata)
-
-## Requirement validation
-Is the process of controlling of ensuring that the system requirements will are really what the client wants.
-There are different checks that can be used to validate the requirements.
-
-1. Validity checks:
-Check if the requirements reflect the users real needs.
-User needs can change over time, so this is an important thing to keep track of.
-
-2. Consistency checks:
-Requirements should not conflict with others.
-
-3. Completeness checks:
-The requirement specification should be comprehensive for every function and the limits that the client wants.
-
-4. Realism checks:
-Using knowledge on existing systems, control the requirements to ensure that they fit within the budget and time-frame.
-
-5. Verifiability:
-You should be able to create tests that verify whether or not a requirement is met.
-
-## Requirement validation techniques
-1. Requirement reviews
-Requirements are analyzed systematically by a team of judges, to check for mistakes or conflicts.
-
-2. Prototyping
-Develop executable models of the system and verify with the client that it meets their expectations.
-
-3. Test-case generation
-Tests can be designed along with requirements instead of after the fact.
-If it is difficult to design tests for a requirement, that can mean the requirement is unrealistic.
-
-## What are the steps in elicitation?
-1. Discovery & Classification
-This is the process of interacting with the stakeholders to find their requirements.
-
-2. Categorization
-Take the unstructured list of requirements and group related requirements together.
-
-3. Prioritization & Negotiation
-Conflicts can arise when there are multiple stakeholders.
-Prioritize the most important requirements, through negotiation, discussions, compromises and meetings.
-
-4. Documentation
-Here the requirements are documented.
-
-## Why is it difficult to elicit requirements?
-Many stakeholders with conflicting needs.
-Stakeholders speak their own "language".
-Lack of communication because things are assumed to be "obvious".
-
-## What is a recognized way to communicate requirements?
-Stories, Scenarios.
-
-## How are requirements documented in Waterfall and in SCRUM, in Product Planning?
-Waterfall: Verify the requirement specificatino with strict change management.
-SCRUM: Product vision and product backlog, are discussed and updated every sprint.
-Product Planning: Product vision, release plans and/or product roadmaps.
-XP: User Stories.
-
-## How are requirements negotiated with stakeholders in Waterfall and SCRUM?
-Waterfall: Be up front in the requirements phase - state it now or it will be difficult later on.
-SCRUM: Ongoing refinement of product backlog with stakeholders, say what is most important now, we will continue.
-XP: Customer on-site.
-
-# Q8. Product Refinement and Forecasting: User story mapping, personas, stakeholders, product backlog
-## What is a persona?
-User personas are a useful technique to describe users of your product.
-A fictional character with a name, picture, relevant characteristics, behavior, opinions and a goal.
-Different people can have different goals.
-Understand a personas goal is useful for creating a product that is meaningful to the users.
-
-## What is a user story?
-Short description on a type of user, a goal and a reason.
-
-## Where do we use the terms: Product Feature, Epic, User story?
-Product Feature: Corresponds to an Epic.
-Epic: A collection of related user stories.
-User story: Breakdown of an Epic.
-
-## What is a user journey?
-The experiences a person has, when interacting with the software.
-
-## What are the key characteristics of a product backlog?
-This is to do list of items a SCRUM team must tackle.
-- Software requirements.
-- User stories.
-- Descriptions of supplementary tasks that are needed, such as architecture definition or user documentation.
-
-# Q9. Risk Management
-A risk is a potential problem.
-The possibility of loss or damage.
-Risk Management: project leaders must evaluate the risks that can affect a project, monitor them, and handle them when problems arrise.
-
-## Example of risk categories
-1. Uncertainty, project, technical, business.
-2. Keyperson from team dies, a supplier is not delivering as promissed.
-
-## Categories of risk
-### Project risks
-Risks that threaten the project plan.
-Time will be wasted and costs will rise.
-
-### Technical risks
-Architectural design.
-Arrises because problems can be harder to solve than expected.
-Vagueness in the specification.
-Project gets older and starts to decay.
-
-### Business risks
-Market risk. What if no one uses the product?
-Strategic risk. We don't need that new component after all.
-Sales risk. How the fuck do we sell this?!
-Management risk. The top management don't support the project anymore.
-Budget risks. Budget or personnel is lost.
-
-## How do you do risk analysis?
-Risk analysis and management are actions, that help a software team understand and handle uncertainty.
-It is a good idea to identify risks.
-Evaluate the probability of risks.
-Estimate the impact of a risk and form a reaction plan for if the risk actually happens.
-
-## Identify risks and calculate risk exposure and describe consequence.
-Risk exposure = probability * loss, describe consequence.
-Probability < 100%. If p = 100% then it's an issue.
-
-Prioritize according to risk exposure, establish cut-line.
-Deal with the risks above the line, accept the ones below.
-
-Establish for each risk above the cut-line (RMMM: Risk Mitigation, monitor, management)
-### Mitigate
-We want to prevent the risk from becoming an issue.
-We can reduce the probability.
-Or try to reduce the associated loss.
-Risk exposure = probability * loss.
-
-### Manage
-For when a risk has become a loss, try to minimize the loss.
-This assumes the mitigation activity was unsuccessful.
-This is done by the project leader.
-
-### Monitor
-Observe how risks change over time.
-How the probabilities, loss, or the environment, change over time.
-
-## How are risk management part of project management
-### Waterfall / plan-driven
-Risk and risk plans are part of the plans in project management.
-Development of others plans to contribute to identification of risk.
-It is planned.
-
-### Agile - inspect and adapt is reduction to produce the right product
-Daily SCRUM: Do you have any impediments?
-Sprint review: Inspects risk related to product and stakeholder.
-Sprint retrospective: Adresses risks related to how the team works.
-
-## What are Böhms primary risks?
-Personal shortcomings, unrealistic schedule, wrong function...
-
-# Q10. How is quality defined?
-## Software quality attributes
-### Nonfunctional requirements
-Safety, security, reliability, complexity, adaptability, testability, understandability, efficiency, usability, etc...
-
-### Functional requirements
-- Requirement Specification (waterfall)
-- Product backlog and User Stories (agile)
-
-## What is quality?
-Quality is evaluated aesthetically, symbolically and functionally
-Quality can be either objective or subjective.
-Quality may not always be obvious.
-
-## Definition of quality
-Quality is a reflection of one or more peoples evaluation of the compliance of a product or service with their expectations.
-Quality can be broken into three types of categories:
-1. Product quality.
-2. Process quality.
-3. Quality of expectations.
-
-Quality tradeoffs are unavoidable.
-Quality consists of:
-- Quality assurance: plan or design processes to prevent bad quality.
-- Quality control: track that work products meet quality standards.
-
-## Why invest or pay for Quality Management?
-Cost of not doing it is bad quality - fixing errors.
-
-Direct cost of error correction:
-- Loss. (effort)
-- Wasted work. (for users of the program)
-- Maintenance usually has larger costs than development.
-
-Indirect cost of error correction
-- Follows from poor quality (unsatisfied users)
-- Has potentially severe consequences (losing customers)
-
-Quality Management reduces these costs significantly.
-
-## Validation (fit for use)
-Are we building a system that is fit for use?
-Compliance with the users expectations and experiences?
-
-## Verification (requirement specification being met)
-Do we pass all tests and requirements?
-Are we building a system with all the requirements implemented?
-Unit/integration tests
-
-## Techniques for verification and validation
-Testing: of programmes and prototypes.
-Review: of specifications, documentation and programs.
-
-## Is it verification or validation?
-A user must participate in order to validate.
-Verification focuses on the compliance to the specifications and a client usually doensn't participate.
-
-## V-model
-
-# Q11. Test and review
-Tests are a set of practices that support verification and validation.
-The purpose is to ensure a program does what it is supposed to, and to discover errors before delivery.
-This is done by making sure the progrm meets the requirements and by finding incorrect or undesirable behaviour.
-Verification: Unit test, component test.
-Validation: prototype test, user acceptance test.
-
-## What is peer review?
-Evaluation of work of one or more people with similar skills (peers).
-Mostly in the form of documents but can also be analysis of code.
-
-## What is the difference between review and test?
-Review is static, and there is no interaction between errors found in review.
-Tests are dynamic and errors can come as side-affects of an initial errors.
-Reviews (inspections) and tests are complementary to quality techniques.
-Both should be used under the verification and validation process.
-Inspections can control compliance with a specifications but not with the clients or users actual requirements.
-(Unless the user participates in the review. Prototypes are preferred for user participation)
-Inspecions cannot control non-functional properties such as performance, usability, etc.
-
-## When is review good?
-For documents, designs, architectures, plans, etc.
-
-## When is test good?
-For functionality and dynamic use of the program.
-
-## What is the V-Model
-A model that shows the connection between tests at different levels and primary activities that drive the tests.
-
-## Name tests at different levels:
-Unit test, component test, integration test, system test, user acceptance test.
-
-Unit test: confirm valid and invalid input.
-Integration test: confirm that interfaces are compatible and work as expected.
-Acceptance test: validate fit for use, exploratory test.
-
-## When is test done?
-Plan driven: in the end (often a dedicated test-team aspart of QA)
-Agile: all the time (test competence on the team, accept criteria on story, automated test, TDD)
-
-# Q12. Configuration Management and DevOps
-## What is DevOps, how can you define it?
-DevOps is a method for both development and operation.
-DevOps is a development method for IT systems that connects different activities in projects.
-DevOps is a culture, that focuses on the entire software productions life cycle.
-The goal is to remove barriers between development and operation teams, to be able to react quickly to the users needs.
-It is also defined by The Three Ways:
-1. Flow.
-2. Feedback.
-3. Continuous Learning.
-
-## What is the purpose of Continuous Integration?
-When the code is checked, it is automatically integrated with the system.
-Speed up the rate of delivery and run tests constantly.
-Bsed on tools to automate the process.
-Depends on a suite of unit tests.
-Does NOT eliminate the need for testers.
-
-## What is the purpose of Continuous Testing?
-Continuous Testing in DevOps is a type of software test that involves testing at all stages of a develoments lifecycle.
-The goal is the continuously evaluate the quality of the software.
-
-## What is the purpose of Continuous Delivery and Deployment?
-### Continuous Delivery
-Ensure that code can be implemented securely.
-Ensure that the business and service application function as expected and deliver every change to production.
-
-### Continous Deployment
-Ensure that tests are automated and that every change is automatically implemented in production.
-Makes the development and release process faster and more robust.
-
-Automated access to well defined environments.
-Tools like Docker for containerization or Virtual Machines.