Priorytetyzacja przypadków testowych za pomocą macierzy

Podobne dokumenty
Odwrotna analiza wartości brzegowych przy zaokrąglaniu wartości

Kumulowanie się defektów jest możliwe - analiza i potwierdzenie tezy

O pewnych problemach analizy wartości brzegowych

Testy jednostkowe Wybrane problemy testowania metod rekurencyjnych

Weryfikacja hipotez statystycznych

Zastosowanie logiki matematycznej w procesie weryfikacji wymagań oprogramowania

Testujemy dedykowanymi zasobami (ang. agile testers)

Metody iteracyjne rozwiązywania układów równań liniowych (5.3) Normy wektorów i macierzy (5.3.1) Niech. x i. i =1

Testowanie elementów programowalnych w systemie informatycznym

Zastosowanie Excela w matematyce

Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI

Nazwa Projektu. Plan testów. Wersja N.NN

Wykład z modelowania matematycznego. Zagadnienie transportowe.

REFERAT PRACY DYPLOMOWEJ

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów

Biostatystyka, # 3 /Weterynaria I/

Projekt dotyczy stworzenia zintegrowanego, modularnego systemu informatycznego wspomagającego zarządzanie pracownikami i projektami w firmie

VII. Elementy teorii stabilności. Funkcja Lapunowa. 1. Stabilność w sensie Lapunowa.

Macierze symetryczne i nasycone grupy permutacji

Jarosław Kuchta Dokumentacja i Jakość Oprogramowania. Wymagania jakości w Agile Programming

PROJEKTOWANIE. kodowanie implementacja. PROJEKT most pomiędzy specyfikowaniem a kodowaniem

TEORETYCZNE PODSTAWY INFORMATYKI

Rozkład Gaussa i test χ2

3. Macierze i Układy Równań Liniowych

Wymagania edukacyjne z informatyki dla uczniów klas VI SP nr 53 w Krakowie w roku szkolnym 2019/2020

EGZAMIN MATURALNY W ROKU SZKOLNYM 2017/2018 INFORMATYKA

Obliczenia iteracyjne

Wyszukiwanie binarne

Etapy życia oprogramowania

Dlaczego testowanie jest ważne?

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Wykład Ćwiczenia Laboratorium Projekt Seminarium Liczba godzin zajęć zorganizowanych w

ARKUSZ KALKULACYJNY MICROSOFT EXCEL cz.1 Formuły, funkcje, typy adresowania komórek, proste obliczenia.

Etapy życia oprogramowania. Modele cyklu życia projektu. Etapy życia oprogramowania. Etapy życia oprogramowania

Acceptance Test Driven Development wspierane przez narzędzie ROBOT Framework. Edyta Tomalik Grzegorz Ziemiecki

SIGMA KWADRAT. Wykorzystanie programu MS Excel do opracowań statystycznych CZWARTY LUBELSKI KONKURS STATYSTYCZNO-DEMOGRAFICZNY

Całki niewłaściwe. Całki w granicach nieskończonych

HISTOGRAM. Dr Adam Michczyński - METODY ANALIZY DANYCH POMIAROWYCH Liczba pomiarów - n. Liczba pomiarów - n k 0.5 N = N =

8. Neuron z ciągłą funkcją aktywacji.

ANALIZA HIERARCHICZNA PROBLEMU W SZACOWANIU RYZYKA PROJEKTU INFORMATYCZNEGO METODĄ PUNKTOWĄ. Joanna Bryndza

Plan Testów Systemu SOS

Zapisywanie algorytmów w języku programowania

Elementy logiki matematycznej

Elementarne metody statystyczne 9

ODRZUCANIE WYNIKÓW POJEDYNCZYCH POMIARÓW

2a. Przeciętna stopa zwrotu

Testowanie oprogramowania

RAPORT PO SPRAWDZIANIE SZÓSTOKLASISTY

Typy, klasy typów, składnie w funkcji

Behavior Driven Development (BDD)

TOUCAN Team Evaluator OPIS FUNKCJONALNOŚCI

Data Mining Wykład 5. Indukcja drzew decyzyjnych - Indeks Gini & Zysk informacyjny. Indeks Gini. Indeks Gini - Przykład

IO - Plan wdrożenia. M.Jałmużna T.Jurkiewicz P.Kasprzyk M.Robak. 5 czerwca 2006

INFORMATYKA POZIOM ROZSZERZONY

INFORMATYKA POZIOM ROZSZERZONY

Plik pobrano z Tytuł: Wzorce projektowe, cz. 2 Strategy Ostatnia aktualizacja:

SCENARIUSZ LEKCJI. TEMAT LEKCJI: Zastosowanie średnich w statystyce i matematyce. Podstawowe pojęcia statystyczne. Streszczenie.

Porównywanie populacji

Wokół Problemu Steinhausa z teorii liczb

Obliczanie niepewności rozszerzonej metodą analityczną opartą na splocie rozkładów wielkości wejściowych

Instytut Politechniczny Państwowa Wyższa Szkoła Zawodowa. Diagnostyka i niezawodność robotów

Wykorzystanie programu MS Excel do opracowań statystycznych

Automatyzacja testowania oprogramowania. Automatyzacja testowania oprogramowania 1/36

Management Systems in Production Engineering No 3(23), 2016

Iteracyjne rozwiązywanie równań

Lista 6. Kamil Matuszewski 13 kwietnia D n =

Pochodna funkcji: zastosowania przyrodnicze wykłady 7 i 8

Rachunek prawdopodobieństwa projekt Ilustracja metody Monte Carlo obliczania całek oznaczonych

Macierze - obliczanie wyznacznika macierzy z użyciem permutacji

Ćwiczenia nr 4. Arkusz kalkulacyjny i programy do obliczeń statystycznych

Funkcje dwóch zmiennych

Pojęcie funkcji. Funkcja liniowa

Szablon Planu Testów Akceptacyjnych

Definicja testu psychologicznego

Część II Uwaga: wszystkie wyniki muszą być odzwierciedleniem dołączonej komputerowej realizacji obliczeń.

Metody numeryczne w przykładach

Programowanie Współbieżne. Algorytmy

Program Analiza systemowa gospodarki energetycznej kompleksu budowlanego użyteczności publicznej

Rozdział 1. Wektory losowe. 1.1 Wektor losowy i jego rozkład

Elementy modelowania matematycznego

Testowanie hipotez statystycznych. Wnioskowanie statystyczne

Metoda eliminacji Gaussa. Autorzy: Michał Góra

Niecertyfikowany tester Plan poziomu zerowego

SIEĆ NEURONOWA DO OCENY KOŃCOWEJ PRZEDSIĘWZIĘCIA (PROJEKTU)

Mikroekonometria 5. Mikołaj Czajkowski Wiktor Budziński

PODEJMOWANIE DECYZJI W WARUNKACH NIEPEŁNEJ INFORMACJI

AKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT. Instrukcja do zajęc laboratoryjnych nr 7 TECHNOLOGIE INFORMACYJNE

Wymagania edukacyjne z informatyki dla klasy szóstej szkoły podstawowej.

Wstęp do sieci neuronowych, wykład 12 Wykorzystanie sieci rekurencyjnych w optymalizacji grafowej

Wykład 9 Testy rangowe w problemie dwóch prób

Diagnozowanie sieci komputerowej na podstawie opinii diagnostycznych o poszczególnych komputerach sieci

Dodatkowo planowane jest przeprowadzenie oceny algorytmów w praktycznym wykorzystaniu przez kilku niezależnych użytkowników ukończonej aplikacji.

EGZAMIN MATURALNY 2012 INFORMATYKA

Część II. Zadanie 3.2. (0 3)

Instrukcja wprowadzania i aktualizacji danych dotyczących realizacji wypłat w Oprogramowaniu do obsługi Świadczeń SR/SW/FA

Zarządzanie projektami. Wykład 2 Zarządzanie projektem

Zadanie 1. Suma silni (11 pkt)

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Macierze. Rozdział Działania na macierzach

1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie

Transkrypt:

Priorytetyzacja przypadków testowych za pomocą macierzy W niniejszym artykule przedstawiony został problem przyporządkowania priorytetów do przypadków testowych przed rozpoczęciem testów oprogramowania. Problem ten występuje w, gdy osoby testujące nie mają wystarczająco dużo czasu na przeprowadzenie wszystkich testów. Wówczas należy określić, które przypadki testowe (testy) są najważniejsze, które są średnio ważne, a które można pominąć, ponosząc małe ryzyko wystąpienia awarii w środowisku produkcyjnym. Praca przedstawia sposób priorytetyzacji przypadków testowych, za pomocą tabeli nazwanej macierzą raportów. Macierz tę można wykorzystać do wprowadzenia pewnych miar jakości oraz funkcjonalności wersji oprogramowania oraz umożliwienia porównań różnych wersji ze sobą. Matematyczny model problemu priorytetyzacji przypadków testowych Załóżmy, że mamy do rozwiązania problem doboru priorytetów do przypadków testowych. Niech zatem T = {t 1,, t m } będzie zbiorem wszystkich przypadków testowych, które opisują testy funkcjonalności w konkretnej wersji testowanego systemu. Definiujemy odwzorowanie: g: T {l, m, h}, (1) które przypisuje priorytety do przypadków testowych w taki sposób, że h oznacza priorytet wysoki, m średni natomiast l niski. W praktyce zawsze istnieją w systemach funkcje na tyle istotne, że muszą zadziałać zawsze. Istnieje więc potrzeba podziału zbioru T w taki sposób, że: T = T 1 T 2, T 1 T 2 =, (2) gdzie T 1 oznacza przypadki testowe z wysokim priorytetem, który nie może zostać zmieniony; T 2 jest zbiorem przypadków testowych, w których priorytety mogą być zmieniane w zależności od przyjętych kryteriów. Niech R = {R 1,, R p } będzie zbiorem raportów z testów. Dla raportu R j definiujemy odwzorowanie r j : T {0,1}, które definiuje akceptację : 1 test zaliczony (warunki akceptacji zostają spełnione), 0 test niezaliczony (warunki akceptacji nie zostają spełnione). Jeśli liczba przypadków ze stałym wysokim priorytetem jest równa s w danej iteracji (np. miesiącu) wytwarzania oprogramowania, to zbiór T 2 ma postać T 2 = {t s+1,, t m } i tylko te przypadki będą mogły mieć zmienione priorytety. Może zaistnieć sytuacja, że pewien test ze zbioru T 1 zostanie przeniesiony do zbioru T 2 z pewnych powodów, np. zmiana systemu pracy czy organizacji w firmach, dla których dedykowane jest oprogramowania. Dlatego ma sens umieszczanie przypadków ze zbioru T 1. Zgodnie z iteracyjnym modelem wytwarzania, do oprogramowania co pewien czas dochodzą nowe funkcje. Umownie przyjmujemy, że priorytety nadajemy dla przypadków testowych, które znalazły się przynajmniej w trzech raportach. Definiujemy macierz raportów A(T) = [a ij ], gdzie: a ij = r j (t i ). (3) Dla każdego wiersza z macierzy A definiujemy funkcję f: T [0,1], c: T {1,2,3, }, gdzie: p f(t i ) = a ij c(t i ). (4) j=p+1 c(t i ) 1

natomiast c(t i ) oznacza ilość wystąpień t i we wszystkich dotychczasowych raportach. Liczba p oznacza ilość wszystkich wykonanych raportów. Wprowadzenie funkcji c jest konieczne, ponieważ przypadek testowy może pojawić się w trzecim, czwartym lub późniejszym raporcie lub zostać pominięty z jakiegoś powodu w pewnym raporcie. Może się to zdarzyć na przykład, gdy nowy klient nie wymaga istnienia konkretnej funkcjonalności i nie ma czasu, żeby przetestować każdą funkcję. Funkcję f można interpretować jako miarę jakości testowanej funkcjonalności, która wprowadza pewne prawdopodobieństwo wystąpienia awarii systemu. Taka awaria może być spowodowana przez nieprawidłowe zadziałanie pewnych funkcji w nowej wersji oprogramowania. Zastosowanie macierzy raportów do rozwiązania problemu priorytetyzacji przypadków testowych Załóżmy, że należy przeprowadzić testy oprogramowania, które ma za sobą 10 iteracji wytwarzania oraz 30 testów, z czego 10 ma wysoki priorytet. Przyjmiemy również, że czas wykonania wszystkich testów jest stosunkowo długi, więc o kolejności przeprowadzenia tych testów decydowały będą ich priorytety. Raport z poprzednich testów przedstawia tabela 1. Wiersze od pierwszego do dziesiątego przedstawiają przypadki testowe ze stałym wysokim priorytetem (czyli ze zbioru T 1 ): R 1 R 2 R 3 R 4 R 5 R 6 R 7 R 8 R 9 R 10 1 1 1 1 0 1 1 0 1 0 1 2 1 1 1 1 1 1 1 1 1 1 3 0 1 1 1 1 1 1 1 1 1 4 1 1 1 1 1 0 1 1 1 0 5 1 0 1 1 1 1 0 0 1 1 6 1 1 1 0 0 0 0 1 1 1 7 1 1 1 1 1 0 1 1 1 1 8 1 1 1 1 1 1 1 1 0 0 9 1 1 1 1 0 1 0 1 1 1 10 1 0 0 1 1 1 1 1 1 1 11 0 1 1 1 1 1 1 1 1 1 12 0 1 1 1 0 1 1 1 1 0 13 1 1 1 0 1 1 0 0 1 1 14 1 0 0 0 1 1 1 1 1 1 15 1 1 1 1 1 1 1 1 1 1 16 1 0 0 1 1 1 0 1 1 1 17 1 1 1 1 1 1 1 1 1 1 18 1 1 1 1 1 0 1 0 1 1 19 1 1 1 1 0 0 1 1 1 1 20 X 0 1 1 1 1 1 1 1 1 21 X 0 0 1 1 1 1 0 1 1 22 X 1 0 1 1 1 1 1 1 1 23 X 1 1 1 1 1 1 1 1 1 24 X 0 1 0 1 1 1 1 1 1 25 X 1 1 0 1 1 1 1 1 1 26 X 1 1 0 1 1 0 1 1 0 27 X X 1 1 1 1 1 1 1 1 28 X X 1 1 1 1 0 1 1 1 29 X X X 1 0 1 0 1 1 1 30 X X X 1 1 1 0 0 0 1 Tabela 1: Macierz raportów z poprzednich dziesięciu iteracji wytwarzania oprogramowania 2

Na podstawie wzoru (4) obliczamy dla każdego wiersza wartość funkcji f, którą przedstawia następująca tabela: funkcji f 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0,7 1 0,9 0,8 0,7 0,6 0,9 0,8 0,8 0,8 0,9 0,7 0,7 0,7 1 Tabela 2: Wartości funkcji f dla przypadków testowych (1) funkcji f 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 0,7 1 0,8 0,8 0,89 0,67 0,89 1 0,78 0,89 0,67 1 0,88 0,71 0,57 Tabela 3: Wartości funkcji f dla przypadków testowych (2) Mając tabele z policzonymi wartościami funkcji f z poprzednich raportów należy przyjąć kryteria funkcji g, wg których przyporządkowane zostaną priorytety do przypadków testowych. Taką czynność wykonuje zwykle kierownik, menadżer czy analityk testów (w większych firmach). Przykładowy wzór funkcji g został przedstawiony poniżej: l, f(t i ) 0,9 g(t i ) = { m, f(t i ) (0,7; 0,9) (5) h, f(t i ) 0,7 Wobec tego po dziesięciu poprzednich iteracjach, testy (przypadki testowe) będą miały priorytety przedstawione w tabeli 4 i tabeli 5. Zgodnie z funkcją g, kolejność wykonywania testów w następnej iteracji będzie następująca: 1) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 16, 21, 26, 30 - priorytet wysoki; 2) 18, 19, 20, 22, 24, 25, 28, 29 - priorytet średni; 3) 11, 15, 17, 23, 27 - priorytet niski. priorytetu 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 h l h m h h l m m m l h h h l Tabela 4: Wyznaczone wartości priorytetów dla przypadków testowych (1) priorytetu 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 h l m m m h m l m m h l m m h Tabela 5: Wyznaczone wartości priorytetów dla przypadków testowych (2) 3

Mając macierz A(T) ze wszystkimi przypadkami, można postępować analogicznie. Przedziały, zgodnie z którymi funkcja g nadaje priorytety przypadkom testowym, mogą być dowolne dobierane. Mogą one zależeć od tego, jak dużą pewność co do jakości testowanego oprogramowania chce mieć osoba za nie odpowiedzialna. Nasuwa się pytanie: co zrobić, jeśli czas przeznaczony dla testów jest ograniczony, podczas gdy istnieje dużo przypadków z wysokim lub średnim priorytetem? Podjęcie decyzji należy do osoby odpowiedzialnej za zapewnienie odpowiedniej jakości. Wprowadzenie miar jakości oprogramowania i funkcjonalności za pomocą macierzy raportów Miary jakości oprogramowania i porównywanie testów z poprzednimi iteracjami są bardzo ważne, ponieważ pozwalają zdecydować, czy testy oraz rozwój oprogramowania idzie w dobrym kierunku. Wykorzystanie macierzy A(T) może wprowadzić pewne miary jakości oprogramowania i umożliwić porównanie różnych wersji ze sobą. Patrząc na macierz jako całość, miarę jakości m(a(t)): A(T) [0; 1] można zdefiniować wzorem: m(a(t)) = p k m k i=1 j=1 γ(a ij ) p k m k (A(T) k ), (6) gdzie: p k - ilość raportów po iteracji k; m k - ilość przypadków testowych po iteracji k; (A(T) k ) liczba elementów macierzy A(T) po iteracji k, które mają wartość X; γ(a ij ) = { 1, jeśli a ij = 1 0, jeśli a ij {0, X}. Załóżmy, że chcemy porównać wersję oprogramowania między 7 oraz 8 iteracją wykorzystując tabelę 1 oraz przedstawiony wyżej wzór (6). Wobec tego należy obliczyć następujące wyrażenia: m 7 (A(T)) = 20 30 = 66,66%, m 8 (A(T)) = 26 30 = 86,66%. Po iteracji 8 jakość wersji po pierwszych testach była lepsza o 20%. Bardzo łatwo na podstawie powyższych wzorów wprowadzić sposób porównania konkretnych funkcji lub obszarów. Wystarczy ograniczyć się do przypadków związanych tylko z obszarem, który należy porównać. Wprowadzając oznaczenie m k (A(T S)): A(T) [0; 1] można zdefiniować miarę obszaru po iteracji k: gdzie: m k (T S) = h j=1 γ(a kj ) h (A(T S) k ), (7) T S - podzbiór przypadków testowych związanych z konkretną funkcją/obszarem; h - liczba elementów zbioru S. 4

Łatwo zauważyć, że wzór (7) to uogólnienie wzoru (6). Porównując kolejne wersje pod kątem konkretnych obszarów można również zestawić umiejętności programistów (w dużych projektach), co może pomóc w podjęciu decyzji o szkoleniu lub reorganizacji pracy programistów. Zalety stosowania macierzy raportów Z pewnością łatwo zauważyć kilka zalet zastosowania macierzy w celu priorytetyzacji przypadków testowych: 1. Metoda jest prosta i łatwo ją zaimplementować poprzez odpowiedni program komputerowy lub arkusz kalkulacyjny. 2. Można porównać ze sobą testy z różnych iteracji. 3. Istnieje możliwość porównania różnych funkcji i zaobserwowania na podstawie tego zestawienia jak zachowuje się jedna funkcja naprzeciwko innych w każdej iteracji oraz jak te funkcje zachowują się średnio względem siebie. 4. Można wprowadzić miarę jakości pojedynczej funkcji i jej zmian w cyklu życia oprogramowania. 5. Poszczególne wersje testowanej aplikacji mogą być porównywane jako całość z wersjami z innych iteracji. Autor Marek Żukowicz jest absolwentem matematyki na Uniwersytecie Rzeszowskim. Obecnie pracuje jako tester. Jego zainteresowania skupiają się wokół testowania, matematyki, zastosowania algorytmów ewolucyjnych oraz zastosowania matematyki w procesie testowania. Interesuje się również muzyką, grą na akordeonach oraz na perkusji. 5