SlideShare une entreprise Scribd logo
1  sur  2
Kartläggning av komplexa system
Ett komplext system, som t.ex. en dator, tablet eller smartphone, beter sig
inte alltid som man förväntar sig. Beroenden och delade resurser gör att en
förändring i en del av systemet kan ha omfattande och oanade konsekvenser
någon annanstans.
Låt oss anta att vi har ett sådant system, och får i uppgift att säkra att den
senaste veckans integrationer inte har påverkat systemet negativt.
Testledaren ber oss göra en riskanalys för att sedan återkommer med estimat
för hur mycket testning som bör utföras för att mitigera risken. Vi tittar på
vilka integrationer som har gjorts, vilken eventuell påverkan de kan ha på
komplexa systemet, hur de individuella kodänd ringarna har testats innan
integration, vilka riskområden som identifierats vid tidigare systemtester,
och en massa andra faktorer. Vi tycker att vi har en bra bild av hur
integrationerna slår på systemet och planerar vår testning därefter, som vi
sen skickar till testledaren.
Det låter rätt enkelt i teorin. Problemet är då att verkligheten, i det här fallet
ett komplext system, sällan är så enkel.
Ett komplext system, per definition, är oförutsägbart. Att försöka förutse det
komplexa systemet genom riskanalys blir problematiskt. Man kan så klart
göra en massa antaganden om systemet och göra en grov estimering av vad
som kommer att behöva göras, men så fort man försöker detaljplanera vad
som behöver testas baserat på antaganden och gissningar är det lätt att något
går fel.
Hur går man då vidare med detta? Ett teoretiskt tillvägagångssätt är att
skingra komplexiteten genom att kartlägga hela systemet; beroenden,
resursanvändning, timing, osv. och på detta sätt göra det enklare att välja ut
vad som ska testas. Men det är en monumental uppgift, som växer med
systemets storlek och komplexitet. Små, enskilda delar av systemet kan
kartläggas och förstås i detalj, men sällan mer än så.
Ytterligare ett teoretiskt tillvägagångssätt är att skaffa supertestare som helt
enkelt förstår systemet så bra, och har sådan insikt, att problemet inte längre
blir komplext.
Ett annat sätt, som är mer praktiskt till sin natur, är att börja med en väldigt
grov planering, där testaktiviteten alltid inleds med en utforskande
testsession vars mål är att tillfälligt skingra systemets komplexitet , för att i
sin tur tillåta en mer detaljerad planering. Jag säger tillfälligt skingra,
eftersom den information vi får bara gäller för den version av systemet vi har
just nu, och inte den version som kommer nästa vecka med en massa nya
integrationer. Bilden nedan illustrerar kanske resonemanget bättre.

Detta betyder alltså att tiden och kostnaden innan den faktiska vanliga
testexekveringen påbörjas är högre. Det innebär också att testledaren
inledningsvis får en grövre planering än vad han kanske vill ha. Och detta
upprepas för varje testaktivitet.
Vinsten däremot blir en mer effektiv testning av det komplexa systemet, och
en detaljerad planering som inte är baserad på (lika mycket) antaganden och
gissningar.
Den grundläggande utforskande testning har då som syfte att , med hjälp av
den förståelse för det komplexa systemet man har inledningsvis, gå igenom
systemet för att hitta de områden där risken för introducerade fel är stor, så
att man kan planera tillräckligt med testning för att mitigera denna risk.
Detta var några av mina reflektioner kring ämnet. Inget direkt nytt, men
kanske väcker resonemanget några nya frågeställningar.

/Johan Hoberg

Contenu connexe

Plus de Johan Hoberg

Quality Intelligence: Transparency & Visibility
Quality Intelligence: Transparency & VisibilityQuality Intelligence: Transparency & Visibility
Quality Intelligence: Transparency & VisibilityJohan Hoberg
 
Building a QA Mindset
Building a QA Mindset Building a QA Mindset
Building a QA Mindset Johan Hoberg
 
Building High Quality Software
Building High Quality Software Building High Quality Software
Building High Quality Software Johan Hoberg
 
Testit 2017 - Exploratory Testing for Everyone
Testit 2017 - Exploratory Testing for EveryoneTestit 2017 - Exploratory Testing for Everyone
Testit 2017 - Exploratory Testing for EveryoneJohan Hoberg
 
Don’t celebrate failure. Don’t celebrate success. Celebrate commitment, owner...
Don’t celebrate failure. Don’t celebrate success. Celebrate commitment, owner...Don’t celebrate failure. Don’t celebrate success. Celebrate commitment, owner...
Don’t celebrate failure. Don’t celebrate success. Celebrate commitment, owner...Johan Hoberg
 
Moving from scripted regression testing to exploratory testing
Moving from scripted regression testing to exploratory testingMoving from scripted regression testing to exploratory testing
Moving from scripted regression testing to exploratory testingJohan Hoberg
 
Building High Quality Software
Building High Quality SoftwareBuilding High Quality Software
Building High Quality SoftwareJohan Hoberg
 
Quality, Testing & Agile Methodologies
Quality, Testing & Agile MethodologiesQuality, Testing & Agile Methodologies
Quality, Testing & Agile MethodologiesJohan Hoberg
 
Defining Test Competence
Defining Test CompetenceDefining Test Competence
Defining Test CompetenceJohan Hoberg
 
Why all deadlines are bad for quality
Why all deadlines are bad for qualityWhy all deadlines are bad for quality
Why all deadlines are bad for qualityJohan Hoberg
 
Do we really need game testers?
Do we really need game testers?Do we really need game testers?
Do we really need game testers?Johan Hoberg
 
Hardware/Software Integration Testing
Hardware/Software Integration TestingHardware/Software Integration Testing
Hardware/Software Integration TestingJohan Hoberg
 
Defining Test Competence
Defining Test CompetenceDefining Test Competence
Defining Test CompetenceJohan Hoberg
 
Giving feedback & Scrum
Giving feedback & ScrumGiving feedback & Scrum
Giving feedback & ScrumJohan Hoberg
 
Communicated deadlines = bad quality
Communicated deadlines = bad qualityCommunicated deadlines = bad quality
Communicated deadlines = bad qualityJohan Hoberg
 
The Tester Role & Scrum
The Tester Role & ScrumThe Tester Role & Scrum
The Tester Role & ScrumJohan Hoberg
 

Plus de Johan Hoberg (20)

Quality Intelligence: Transparency & Visibility
Quality Intelligence: Transparency & VisibilityQuality Intelligence: Transparency & Visibility
Quality Intelligence: Transparency & Visibility
 
Building a QA Mindset
Building a QA Mindset Building a QA Mindset
Building a QA Mindset
 
What is QI?
What is QI?What is QI?
What is QI?
 
Building High Quality Software
Building High Quality Software Building High Quality Software
Building High Quality Software
 
Testit 2017 - Exploratory Testing for Everyone
Testit 2017 - Exploratory Testing for EveryoneTestit 2017 - Exploratory Testing for Everyone
Testit 2017 - Exploratory Testing for Everyone
 
Don’t celebrate failure. Don’t celebrate success. Celebrate commitment, owner...
Don’t celebrate failure. Don’t celebrate success. Celebrate commitment, owner...Don’t celebrate failure. Don’t celebrate success. Celebrate commitment, owner...
Don’t celebrate failure. Don’t celebrate success. Celebrate commitment, owner...
 
Moving from scripted regression testing to exploratory testing
Moving from scripted regression testing to exploratory testingMoving from scripted regression testing to exploratory testing
Moving from scripted regression testing to exploratory testing
 
Building High Quality Software
Building High Quality SoftwareBuilding High Quality Software
Building High Quality Software
 
Quality, Testing & Agile Methodologies
Quality, Testing & Agile MethodologiesQuality, Testing & Agile Methodologies
Quality, Testing & Agile Methodologies
 
QI, not QA
QI, not QAQI, not QA
QI, not QA
 
Defining Test Competence
Defining Test CompetenceDefining Test Competence
Defining Test Competence
 
Why all deadlines are bad for quality
Why all deadlines are bad for qualityWhy all deadlines are bad for quality
Why all deadlines are bad for quality
 
QI, not QA
QI, not QAQI, not QA
QI, not QA
 
Do we really need game testers?
Do we really need game testers?Do we really need game testers?
Do we really need game testers?
 
Hardware/Software Integration Testing
Hardware/Software Integration TestingHardware/Software Integration Testing
Hardware/Software Integration Testing
 
Defining Test Competence
Defining Test CompetenceDefining Test Competence
Defining Test Competence
 
Giving feedback & Scrum
Giving feedback & ScrumGiving feedback & Scrum
Giving feedback & Scrum
 
Communicated deadlines = bad quality
Communicated deadlines = bad qualityCommunicated deadlines = bad quality
Communicated deadlines = bad quality
 
The Tester Role & Scrum
The Tester Role & ScrumThe Tester Role & Scrum
The Tester Role & Scrum
 
Testing & Scrum
Testing & ScrumTesting & Scrum
Testing & Scrum
 

Kartläggning av Komplexa System

  • 1. Kartläggning av komplexa system Ett komplext system, som t.ex. en dator, tablet eller smartphone, beter sig inte alltid som man förväntar sig. Beroenden och delade resurser gör att en förändring i en del av systemet kan ha omfattande och oanade konsekvenser någon annanstans. Låt oss anta att vi har ett sådant system, och får i uppgift att säkra att den senaste veckans integrationer inte har påverkat systemet negativt. Testledaren ber oss göra en riskanalys för att sedan återkommer med estimat för hur mycket testning som bör utföras för att mitigera risken. Vi tittar på vilka integrationer som har gjorts, vilken eventuell påverkan de kan ha på komplexa systemet, hur de individuella kodänd ringarna har testats innan integration, vilka riskområden som identifierats vid tidigare systemtester, och en massa andra faktorer. Vi tycker att vi har en bra bild av hur integrationerna slår på systemet och planerar vår testning därefter, som vi sen skickar till testledaren. Det låter rätt enkelt i teorin. Problemet är då att verkligheten, i det här fallet ett komplext system, sällan är så enkel. Ett komplext system, per definition, är oförutsägbart. Att försöka förutse det komplexa systemet genom riskanalys blir problematiskt. Man kan så klart göra en massa antaganden om systemet och göra en grov estimering av vad som kommer att behöva göras, men så fort man försöker detaljplanera vad som behöver testas baserat på antaganden och gissningar är det lätt att något går fel. Hur går man då vidare med detta? Ett teoretiskt tillvägagångssätt är att skingra komplexiteten genom att kartlägga hela systemet; beroenden, resursanvändning, timing, osv. och på detta sätt göra det enklare att välja ut vad som ska testas. Men det är en monumental uppgift, som växer med systemets storlek och komplexitet. Små, enskilda delar av systemet kan kartläggas och förstås i detalj, men sällan mer än så. Ytterligare ett teoretiskt tillvägagångssätt är att skaffa supertestare som helt enkelt förstår systemet så bra, och har sådan insikt, att problemet inte längre blir komplext. Ett annat sätt, som är mer praktiskt till sin natur, är att börja med en väldigt grov planering, där testaktiviteten alltid inleds med en utforskande testsession vars mål är att tillfälligt skingra systemets komplexitet , för att i sin tur tillåta en mer detaljerad planering. Jag säger tillfälligt skingra,
  • 2. eftersom den information vi får bara gäller för den version av systemet vi har just nu, och inte den version som kommer nästa vecka med en massa nya integrationer. Bilden nedan illustrerar kanske resonemanget bättre. Detta betyder alltså att tiden och kostnaden innan den faktiska vanliga testexekveringen påbörjas är högre. Det innebär också att testledaren inledningsvis får en grövre planering än vad han kanske vill ha. Och detta upprepas för varje testaktivitet. Vinsten däremot blir en mer effektiv testning av det komplexa systemet, och en detaljerad planering som inte är baserad på (lika mycket) antaganden och gissningar. Den grundläggande utforskande testning har då som syfte att , med hjälp av den förståelse för det komplexa systemet man har inledningsvis, gå igenom systemet för att hitta de områden där risken för introducerade fel är stor, så att man kan planera tillräckligt med testning för att mitigera denna risk. Detta var några av mina reflektioner kring ämnet. Inget direkt nytt, men kanske väcker resonemanget några nya frågeställningar. /Johan Hoberg