Notizen
Software Testing
Inhalt der Notizen (4)
Seite 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.
Seite 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
Seite 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
Seite 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.
Informationen
- Beschreibung
- Software Engineering Notiz am Software Testing, erstellt von Jermaine Tucker am 22/06/2022.
- Erstellt von
- Jermaine Tucker
- Aufrufe
- 0
- Bewertung