matryca śledzenia - traceability matrix
DESCRIPTION
Wprowadzenie do matrycy śledzenia i dlaczego nie opłaca się automatyzacja śledzenia post factum. Plus przykłady matryc. Prezentacja z WrotQA. Język: mieszany [PL / EN]TRANSCRIPT
Traceability matrix
2
• Radek Smilgin
W testowaniu od 2002 roku
Tester, test manager, konsultant
Twórca testerzy.pl i mistrzostw w testowaniu
Fan testowania eksploracyjnego i testowania w agile
[zdjecie wikipedia: http://pl.wikipedia.org/wiki/Plik:Charles_Darwin_01.jpg]
• Ile przypadków testowych napisać
dla wymagania napisanego w języku naturalnym?
Wstęp
• Wymaganie– Aby korzystać z funkcjonalności użytkownik musi
stworzyć konto do systemu• […] należy zdefiniować nazwę użytkownika i hasło
– […] ilość znaków w nazwie użytkownika musi zawierać się w przedziale <8;30>
» […] wielkość znaków nie ma znaczenia, znaki dopuszczalne to: „a,b,c…x,y,z”; „0,1,2, …8,9”; „_, -, .”
• […] znaki „_, -, .” nie mogą występować na początku ani na końcu nazwy użytkownika
Wstęp
• Dane testowe:– […] aaaaaaaa, aaaaaaab, aaaaaaac […]
– około 3,5 biliona kombinacji do przetestowania
Wstęp
• Metoda: śledzalność– Policzyć– Zoptymalizować– Wyliczyć ryzyko związane z nie testowaniem wszystkiego
Wstęp
Dokument /idea Półprodukty Produkt
Koncepcja produktu Prototyp
Oprogramowanie
Specyfikacja wymagań Plany, specyfikacja testowa, specyfikacja kodowania
Specyfikacja kodowania Pośrednie wersje oprogramowania
Specyfikacja testowa Raporty błędów i testy poprawek
Informacja o jakości oprogramowania
Połączenie = przejrzystość
Requirement
Function
Specificati
on
Design
Specificati
on
Source Code
FilesTest Cases
Modification of Auto Load Process
BRD section 6.5.8
LLD section 3.1
SCW2FORCE.PRG
Test Case No.: 1 to 10 (Reference: 1099_Reporting_ Test_Record.Doc)
Modification of Force Balance Process
BRD section 6.5.8
LLD section 3.2
W2FORCE.PRG Test Case No.: 1 to 10 (Reference: 1099_Reporting_ Test_Record.Doc
Połączenie = przejrzystość
Połączenie = przejrzystość
Śledzenie w inżynierii wymagań
Śledzenie w testowaniu
TC
REQ.
Śledzenie w projekcie
ENV.
TC
BUILD
REQ.
CODE
BUG
Automatyczne śledzenie?
d1 d1.1
Automatic Traceability Software
Traceability matrix
Coverage report
Quality report
(ontology, semantic,
dictionary)
Automatyczne śledzenie?
• Search:– Web crawling (spider)– Indexing – storing information
• Processing• Calculating relevancy or / and human input• Retrieving
– Searching – list of matching pages or documents
PageRank: We assume page A has pages T1...Tn which point to it (i.e., are citations). The parameter d is a damping factor which can be set between 0 and 1. We usually set d to 0.85. There are more details about d in the next section. Also C(A) is defined as the number of links going out of page A. The PageRank of a page A is given as follows:
PR(A) = (1-d) + d (PR(T1)/C(T1) + ... + PR(Tn)/C(Tn))
Automatyczne śledzenie?
• Analyse words and sentences in the document (s)– Nouns– Verb– Adjective / Adverb
• Analyse structure of information in the document (s)• Example:
„ImportantLess Important
Not really important”
Automatyczne śledzenie?
• Information Retrieval (IR) - podobieństwo pomiędzy dokumentem i zapytaniem:
– Gdzie • d – wektor dokumentu• q- wektor zapytania
Automatyczne śledzenie?
• Ontology:– Structure (example)
• Class Customer• […]
– Any Legal-Entity that participates in at least one of: » the Actual-Customer relationship with respect to some Sale, » the Potential-Customer relationship with respect to some Potential-Sale, » the Specified-Potential-Customer Relationship with some Sale-Offer .
– Slots:» Has-Need:
– Implication Axioms for Customer:(=> (Customer ?X) (Or (Exists (?Sale) (Actual-Customer ?Sale ?X))
(Exists (?Potential-Sale) (Potential-Customer ?Potential-Sale ?X)) (Exists (?Sale-Offer) (Specified-Potential-Customer ?
Sale-Offer ?X))))
Automatyczne śledzenie?
Automatyczne śledzenie?
MożliweNieopłacalne
Przykład 1
Przykład 2 (Mirek)
W1 (silnik) W2 (dioda) W3 (sygnał)
P1 (silnik 1) x x x
P2 (silnik 2) x x x
P3 (silnik 3) x x x
P4 (silnik 4) x x x
W1: "Po włączeniu przełącznika odpowiadającego za dany silnik - silnik ma się włączyć"W2: "Po włączeniu danego silnika - ma się zapalić dioda w kabinie, przypisana do danego silnika"W3: "Po włączeniu danego silnika - ma zostać wysłany sygnał na magistralę informujący o włączeniu danego silnika"
Krok 1: włącz przełącznik od silnika "1"Krok 2: sprawdź, czy silnik "1" został włączonyKrok 3: sprawdź, czy zapaliła się dioda od
silnika "1"Krok 4: sprawdź, czy został wysłany sygnał dla
silnika "1"
Krok 1 (włączenie)
Krok 2 (silnik?)
Krok 3 (dioda?)
Krok 3 (sygnał?)
P1 (silnik 1) OK OK OK OK
P2 (silnik 2) OK OK OK NOK
P3 (silnik 3) OK OK OK OK
P4 (silnik 4) OK OK OK OK
DATA2012-03-06
2012-03-07
2012-03-08
2012-03-09
2012-03-13
2012-03-14
2012-03-16
2012-03-19
2012-03-21
2012-03-23
Użytkownik
User - edycja profilu - zmien hasło x x 0 0 1 1 0 1 1 1
User - edycja profilu - usuń konto x x 0 1 1 1 1 1 0 0
User - edycja profilu - edytowalny link do profilu x x x x x x x x x x
User - edycja profilu - lista memów x x 0 0 1 1 1 1 1 0
User - rejestracja 1 1 1 1 1 1 0 1 1 1
User - przypomnij hasło x x 1 1 1 1 1 1 1 1
User - logowanie 1 1 1 1 1 1 1 1 1 1
User - edycja profilu - zmień email x x x 1 1 1 1 1 0 1
Usunięcie firstname, lastname, dodanie rok urodzenia x x x x x x 1 1 1 1
Przypominanie hasła dla nazwy użytkownika. x x x x 1 1 1 1 1 1
Zmiana Rejestracji - Mechanizm zaproszen x x x x x x x x 0 1
Prośba o rejestrację x x x x x x x x 1 1
Przykład 3
Dziękuję za uwagę!
Pytania? Odpowiedzi!
Pytania po : [email protected]
testerzy @testerzy radoslaw.smilgin