• Nu S-Au Găsit Rezultate

Cursul 9 – 18 Aprilie [email protected] - UAIC

N/A
N/A
Protected

Academic year: 2023

Share "Cursul 9 – 18 Aprilie [email protected] - UAIC"

Copied!
64
0
0

Text complet

(1)

Cursul 9 – 18 Aprilie [email protected]

(2)

Din Cursurile trecute…

Design Patterns

Creational Patterns

Structural Patterns

Behavioral Patterns

Alte tipuri de Design Patterns

Quality Assurance

Software Testing

Testing Methodologies

Testing process

Manual Testing vs Automatic Testing

(3)

GOF = ?

Creational Patterns

Structural Patterns

Behavioral Patterns

(4)

Abstract Factory

Builder

Factory Method

Prototype = ?

Singleton

(5)

Adapter

Bridge

Composite

Decorator

Façade

Flyweight = ?

Proxy

(6)

Help, multi level filter

(7)

Customer, waiter, cook

(8)

Musical notes

(9)

Remote control

(10)

Control tower

(11)

Memento:

Undo and restore operations in most software

Database transactions

State

Network connection

(12)

Excel graphs, News Agency

(13)

Standard calculator, Robot

(14)

Games, Travel Agency

(15)

Car elements visitor

(16)

Concurrency Patterns - deal with multi-threaded programming paradigm

Single Threaded Execution – Prevent concurrent calls to the method from resulting in concurrent

executions of the method

Scheduler - Control the order in which threads are scheduled to execute single threaded code using an object that explicitly sequences waiting threads

Producer-Consumer - Coordinate the asynchronous production and consumption of information or

objects

(17)

Testing Patterns 1

Black Box Testing - Ensure that software satisfies requirements

White Box Testing - Design a suite of test cases to exhaustively test software by testing it in all

meaningful situations

Unit Testing - Test individual classes

Integration Testing - Test individually developed classes together for the first time

System Testing - Test a program as a whole entity

(18)

Testing Patterns 2

Regression Testing - Keep track of the outcomes of testing software with a suite of tests over time

Acceptance Testing – Is done to ensure that delivered software meets the needs of the customer or

organization that the software was developed for

Clean Room Testing - People designing software should not discuss specifications or their

implementation with people designing tests for the software

(19)

Distributed Architecture Patterns

Mobile Agent - An object needs to access very large volume of remote data => move the object to the data

Demilitarized Zone - You don’t want hackers to be able to gain access to servers

Object Replication - You need to improve the throughput or availability of a distributed

computation

(20)

Transaction patterns -

Ensure that a

transaction will never have any unexpected or inconsistent outcome. Design and implement

transactions correctly and with a minimum of effort

Distributed computing patterns

Temporal patterns -

distributed applications to function correctly, the clocks on the computers

they run on must be synchronized. You may need to access pervious or future states of an object.

The values of an object’s attributes may change over time

Database patterns

(21)

Refers to planned and systematic production

processes that provide confidence in a product's suitability for its intended purpose.

A set of activities intended to ensure that products satisfy customer requirements

QA cannot absolutely guarantee the production of quality products, unfortunately, but makes this more likely

Two key principles characterize QA:

"fit for purpose" - the product should be suitable for the intended purpose, and

"right first time" - mistakes should be eliminated

(22)

Price Time

Quality

(23)

“The process of exercising or evaluating a system by manual or automated

means to verify that it satisfies specified requirements or to identify differences

between expected and actual results.”

(IEEE Standard Glossary, 1983)

(24)

(SQA) consists of a means of monitoring the software engineering processes and methods used to ensure quality

May include ensuring conformance to one or more standards, such as ISO 9000 or CMMI

SQA encompasses the entire software

development process, which includes processes such as

software design, coding, source code control, code reviews, change management, configuration management, and release

management

(25)

ISO 9000 is a family of standards for quality management systems

Some of the requirements in ISO 9001 (from ISO 9000 family) include

a set of procedures;

monitoring processes;

keeping adequate records;

checking output for defects;

regularly reviewing individual processes;

facilitating continual improvement

(26)

An empirical investigation conducted to provide information about the

quality of the product or service under test, with respect to the context in which it is intended to operate

.

Allow the business to

appreciate and understand

the risks at implementation of the software

Test techniques include the process of

executing a program or application with the intent of finding software bugs

The process of validating and verifying that a software program/application/product meets the business and technical requirements that guided its design and development

(27)

Can be implemented at any time in the development process

However the most test effort is employed after the requirements have been defined and coding process has been completed

In XP…

(28)

Testarea Software NU este o fază

Este un proces care trebuie integrat în toate fazele

construcţiei produsului software

Există documente de testare asociate la fiecare fază a

dezvoltării

(29)

De a localiza şi preveni bugs cât mai curând posibil

De a efectua toate Testele

corespunzător Cerinţelor, într-un mod cât mai eficient şi mai economic

De a aduce produsul software la un

nivel de calitate cât mai ridicat (pentru client)

Testarea nu e doar pentru Software!

Este pentru toate componentele ce vor

fi livrate clientului

(30)

Comunicarea deficitară sau Blocajele de comunicare

Înţelegerea deficitară

Presiunea Timpului

Nivelul Programatorului este Scăzut

(31)

Comunicare Deficitară

(32)

32

(33)

Cerinţe definite Incomplet

Modelare Ambiguă sau Insuficientă

Erori de Programare

50%

30%

20%

(34)

0 20 40 60 80 100

Cerinţe Modelare Impl. Test. Int. Test.sist. Client

(35)

Găsirea târzie a bugs un cost

cât mai mare pentru a le fixa

(36)

CERINŢE MODELARE IMPLEM. TESTARE CLIENT

(37)

Profesionalismul în testare constă în

abilitatea de a selecta numărul minim

de cazuri de testare eficientă ce va fi

capabil să verifice numărul maxim de

funcţii ale sistemului

(38)

Niciodată

Când numărul de erori găsite într-un ciclu de testare este mai mic decât un număr stabilit

Când nu mai sunt găsite defecte critice şi majore

Când timpul a expirat

(39)

Echipa de Test

Mediul de Testare

Procese

de Test Testware

Designs Acquires Configures Utilizes Support

Provides a Platform

for the operation of

Determine the usage of

Designs Acquires Configures

Utilizes Support

Create Articulates

Trains Applies Internalize

(40)

Diferenţa dintre testare SW şi debug SW

Nivele de Test

Metode de Testare

Conţinutul Testării

Testare Manuală vs Testare Automată

(41)

Testare

•Verificarea respectării cerinţelor

•De regulă e făcută de o entitate externă şi neutră

•Este un proces

planificat şi controlat

Debug

•Verificarea validităţii secţiunilor

•E făcută de programator

•E un proces aleator

(42)

Unitate sau Debug

Modul/Sub-Sistem

Integrare

Sistem

Acceptare

(43)

Testarea unei funcţii, a unui program, a unui ecran, a unei funcţionalităţi

Se face de către programatori

Predefinită.

Rezultatele trebuie documentate

Se folosesc simulatoare pentru Input şi Output

(44)

Testarea funcţionării unor module în acelaşi timp

Testarea coexistenţei

Se execută de către programatori sau de către testeri analişti

Testare pre-planificată

Rezultatele se documentează

(45)

System testing of software or hardware is

testing conducted on a complete, integrated

system to evaluate the system's compliance with its specified requirements.

System testing falls within the scope of black box testing

System testing is a more limiting type of testing;

it seeks to detect defects both within the "inter- assemblages" and also within the system as a whole.

(46)

White Box

Black Box

Gray Box

Graphical user Interface Testing

Acceptance Testing

Regression Testing

(47)

END DO

(48)

The tester has access to the internal data structures and algorithms

Types of white box testing

api testing - Testing of the application using Public and Private APIs

code coverage - creating tests to satisfy some criteria of code coverage

fault injection methods

mutation testing methods

static testing - White box testing includes all static testing

(49)

Input Output

Spec

"like a walk in a dark labyrinth without a flashlight,"

(50)

Specification-based testing

Black box testing methods include: equivalence partitioning, boundary value analysis, all-pairs testing, fuzz testing, model-based testing,

traceability matrix, exploratory testing and specification-based testing.

(51)

This involves having access to internal data structures and algorithms for purposes of

designing the test cases, but testing at the user, or black-box level

Manipulating input data and formatting output do not qualify as "grey-box," because the input and output are clearly outside of the "black-

box" that we are calling "the software under test."

(52)

In computer science, GUI software testing is the process of testing a product that uses a

graphical user interface, to ensure it meets its written specifications.

The variety of errors found in GUI applications:

Data validation, Incorrect field defaults, Mandatory fields, not mandatory, Wrong fields retrieved by queries, Incorrect search criteria

Field order, Multiple database rows returned, single row expected

Currency of data on screens, Correct window modality?

Control state alignment with state of data in window?

(53)

A black-box testing performed on a system prior to its delivery

In software development, acceptance testing by the system provider is often distinguished from acceptance testing by the customer (the user or client) prior to accepting transfer of ownership.

In such environments, acceptance testing

performed by the customer is known as user acceptance testing (UAT).

This is also known as end-user testing, site (acceptance) testing, or field (acceptance) testing.

(54)

Regression testing is any type of software testing which seeks to uncover software regressions.

Such regressions occur whenever software functionality that was previously working correctly, stops working as intended.

Typically regressions occur as an unintended consequence of program changes.

Common methods of regression testing include re-running previously run tests and checking

whether previously fixed faults have re-emerged

(55)

Definirea structurii testării

Se împarte sistemul într-o structură ierarhică

Se descriu resursele necesare pentru testare

Se planifică testarea

Împărţirea în paşi se face ţinând cont de cerinţe

Se descrie ce va fi testat pentru componente şi funcţii

Descrie CUM să testăm sistemul

(56)

constructori

set, get

toString

(57)
(58)
(59)
(60)

Se găsesc rapid problemele

Se câştigă timp când e nevoie să repetăm

testele

Procesul de scriere a codului e mult mai flexibil

Reduce volumul de testare manuală

Dezvoltarea software devine previzibilă şi repetabilă

Rezolvă problemele de interfaţă: scrierea

corectă a textelor, mesajelor, aranjarea corectă în pagină, în ordinea care trebuie, sunt vizibile, etc.

Realizarea Scenariilor de

test poate fi o treabă de

durată şi anevoioasă şi

implică o cunoaştere

temeinică a întregului

sistem

(61)

Convenţiile de programare sunt importante deoarece:

80% din timpul alocat unei componente software este întreţinere

Foarte rar un produs software este întreţinut pe toată durata folosirii lui de către aceeaşi

persoană

Convenţiile de cod îmbunătăţesc lizibilitatea produsului, şi permite inginerilor software să înţeleagă rapid un program nou

(62)

Folosirea fără rezerve a Comentariilor: ce fac procedurile, ce reprezintă variabilele,

explicarea paşilor algoritmului, etc.

Folosirea numelor sugestive pentru variabile si proceduri

Scrierea modulara a proiectului

Folosirea perechilor de tip set/get, start/stop, adauga/sterge, salvare/incarcare

(63)

C++:

◦ http://www.chris-

lott.org/resources/cstyle/

◦ http://geosoft.no/development/cppstyle.

html

Java:

◦ http://java.sun.com/docs/codeconv/

◦ http://geosoft.no/development/javastyle

.html

(64)

Behavioral Patterns: http://www.oodesign.com/behavioral- patterns/

Pattern Synopses2,3:

http://www.mindspring.com/~mgrand/pattern_synopses2.htm http://www.mindspring.com/~mgrand/pattern_synopses3.htm

Software Quality Assurance:

http://satc.gsfc.nasa.gov/assure/agbsec3.txt

Software Testing:

http://en.wikipedia.org/wiki/Software_testing

GUI Software Testing:

http://en.wikipedia.org/wiki/GUI_software_testing

Regression Testing:

http://en.wikipedia.org/wiki/Regression_testing

Junit Test Example:

http://www.cs.unc.edu/~weiss/COMP401/s08-27- JUnitTestExample.doc

Referințe

DOCUMENTE SIMILARE

Figure 2 depicts the overview of our investigation: learn- ing software testing concepts (testing using Agile or Session Based Test Management methodologies, Exploratory

The determination of electrode welding features was done by testing in order to establish the welding behaviour, testing to determine the degree of penetration on welding and test

In the case of the samples containing 10 % of TNs and 3 and 6 % of CNTs, respectively, one can notice that the percolation is shifting to higher frequencies when the

“Real” customer profitability analysis goes far beyond sales and gross profit analysis by customer - real customer profitability analysis drives customer profitability to

• Întoarce o valoare nenulă dacă indicatorul end-of- file este setat pentru fp. int

This paper reports on research focused entirely on a hybrid PV/T system, in order improve performance of PV by reducing the temperature effect and evaluate the PV/T system with

In this paper, we present Resource Snapshot Model (RSM) for resource modeling in both levels. We propose a non-restarting scheduling algorithm in the inter-transaction level and

The challenge of safe transmission of the collection of wireless energy to the cognitive Internet of Medical Things (IoMT).. The primary-transmitter (PT) can listen to

The formation of the sperm when compared with the control group and the fourth group shows the normal testes structure with the seminiferous tubules, as well as an