¡GoConqr estrena diseño! Cuéntanos qué te parece.

Apuntes

Software Testing

Jermaine Tucker Software Engineering Inglés 4 páginas

Contenido del apunte (4)

Página 1

Learning Objectives

Week 1: You will learn the basics of testing, the "what" of tests. What tests are and how to build them, with some hands-on tutorials on building your first set of executable tests.

Week 2: You will learn about the "why" of testing. What types of testing processes and techniques exist? How do we know what to use and when? And, how do we know our tests are any good?

Week 3: You will learn the process of testing. How do I organize the testing and document the results? How do I document and track defects that we (or our users) find in the software we build?

Week 4: Lastly, you will tackle the idea of Test Doubles, concepts that allow you to test your code without waiting. Instead of waiting for other code that your code relies upon to be built, we can "pretend" that the code is built, using some interesting software to mimic the behavior we rely on. This allows us to test our own code in isolation (proving our own code is right) without waiting for others (or future you) to build the other parts of the system. This will be a very hands-on module, putting into practice everything you've learned up to this point.

Página 2

Introduction

What is the the main point of this video?

Why do we test?

Cost of Software Failure?

1.1T

a life

Verification: are we building the software right?

Validation: are we building the right product?

Techniques for Getting Software Right

Inspections

Design discussion

static analysis

Testing

Runtime verification

Goal: to assure the software meets user's needs.

why focus on software testing?

only defect detection that can check the whole system

compiler,

process,

devices,

linker,

loader,

etc.

acceptance criteria

good way of documenting expected behavior

Testing is always incomplete.

make testing effective despite being incomplete.

Analysis Square

left = pessimistic

simplistic program analysis

Sound static analysis

model checking temporal properties

theorem proving

right = optimistic

typical testing

unsound static analysis

coverage testing

tool assisted automated testing

top = perfect verification of any property

bottom = precise analysis of simple property

java type checking

Página 3

why is software testing challenging?

the problem with software testing is that it only samples a set of possible behaviors.

unlike physical systems, which are continuous, software systems are discontinuous--there is no sound basis for extrapolating from tested to untested cases. So, we need to consider all possible states of the system.

testing from scale:

unit test

integration test

system test

purpose:

functional testing

performance testing

security testing

usability testing

availability testing

process:

Test first: TDD

write the tests before the code

write code to pass the test

Test after:

check whether existing code passes test

Iteration

either way, you will spend time retesting

Página 4

What is a test?

Software Under Test

Anatomy of Test

Setup - place into the ready-to test state

Invocation - execution of single

Assessment - act of observing the behavior of SUT

Teardown - clean up such as closing connections, close open file handles.

Información

Descripción
Software Engineering Apunte sobre Software Testing, creado por Jermaine Tucker el 22/06/2022.
Creado por
Jermaine Tucker
Visitas
0
Valoración

Escríbenos

¿Sobre qué es tu mensaje?

¿Qué te parece el nuevo diseño?

¿Te gusta?