0% found this document useful (0 votes)
12 views

Basics of Software Testing

Software testing is the evaluation process to ensure a software application meets specified requirements and functions correctly. Key objectives include defect identification, quality assurance, and validation, with various testing types such as manual, automated, functional, and non-functional testing. The document also provides interview preparation tips and common questions related to software testing roles.

Uploaded by

rek3
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views

Basics of Software Testing

Software testing is the evaluation process to ensure a software application meets specified requirements and functions correctly. Key objectives include defect identification, quality assurance, and validation, with various testing types such as manual, automated, functional, and non-functional testing. The document also provides interview preparation tips and common questions related to software testing roles.

Uploaded by

rek3
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 11

Basics of Software Testing

Software testing is the process of evaluating and verifying that a software application meets the
specified requirements and works as expected. It involves identifying bugs, ensuring the quality of the
software, and validating that the software performs as intended.
Key Objectives of Software Testing:
1. Defect Identification: Find bugs or defects in the software.
2. Quality Assurance: Ensure the software meets the required standards and specifications.
3. Validation and Verification: Confirm that the product is built correctly (verification) and is the
right product for the user (validation).
4. Performance and Security: Ensure the software is secure and performs well under various
conditions.
Types of Software Testing:
1. Manual Testing:
o Involves human interaction to test the software.

o Techniques include exploratory, black-box, and ad-hoc testing.

2. Automated Testing:
o Uses tools like Selenium, JUnit, or TestNG to execute test cases.

o Best for repetitive tasks and performance testing.

3. Functional Testing: Validates the software against functional requirements.


4. Non-Functional Testing: Includes performance, usability, and security testing.
5. Unit Testing: Testing individual components or modules.
6. Integration Testing: Testing combined modules or components.
7. System Testing: Testing the entire application as a whole.
8. Acceptance Testing: Determines whether the software is ready for release.

Sample Questions and Answers for Software Tester Interview


1. What is Software Testing?
 Answer: Software testing is the process of evaluating and verifying that a software application
or system works as intended. It ensures the software is defect-free, meets user requirements,
and functions correctly under various scenarios.

2. What are the different levels of testing?


 Answer:
1. Unit Testing: Tests individual components or modules.
2. Integration Testing: Tests the interaction between integrated modules.
3. System Testing: Tests the complete application for overall functionality.
4. Acceptance Testing: Confirms the software meets the business requirements.
3. What is the difference between Verification and Validation?
 Answer:
o Verification: Ensures the product is built correctly (focuses on processes and
specifications).
o Validation: Ensures the product meets user needs and expectations (focuses on the
final product).

4. What is the difference between Manual and Automated Testing?


 Answer:
o Manual Testing: Testing performed by a human without the use of automation tools.
Best for exploratory and usability testing.
o Automated Testing: Testing performed using tools and scripts. Best for regression,
load, and performance testing.

5. Can you explain Black-Box Testing and White-Box Testing?


 Answer:
o Black-Box Testing: Tests the software without knowledge of the internal code structure.
Focuses on input and output.
o White-Box Testing: Tests the internal code and logic. Requires knowledge of the
internal structure.

6. What are Test Cases?


 Answer: Test cases are documented scenarios that describe inputs, actions, and expected
results to validate whether a specific feature of the software works as intended.

7. What is Regression Testing?


 Answer: Regression testing ensures that new changes or updates in the code do not negatively
affect existing functionality.

8. What is the difference between Smoke Testing and Sanity Testing?


 Answer:
o Smoke Testing: A preliminary test to check if the basic functionalities of the application
work.
o Sanity Testing: Performed to verify that specific bugs have been fixed and the
application is working as expected.

9. What tools have you worked with for testing?


 Answer: Some popular testing tools include:
o Manual Testing: JIRA, TestRail.

o Automated Testing: Selenium, Appium, Postman, JUnit, TestNG.

o Performance Testing: JMeter, LoadRunner.

o Bug Tracking: Bugzilla, Trello.

10. What is the importance of Test Automation?


 Answer: Test automation reduces repetitive manual effort, ensures consistent test execution,
increases test coverage, and speeds up the release cycle.

11. What is a Defect Life Cycle?


 Answer: The defect life cycle represents the process a bug follows from identification to
resolution. Common stages are:
o New → Assigned → Open → Fixed → Retested → Closed (or Reopened if unresolved).

12. How do you prioritize test cases?


 Answer: Test cases are prioritized based on:
1. Critical functionalities: Features that are crucial to the application's operation.
2. Risk level: Areas prone to frequent bugs or failures.
3. Customer requirements: Features important for end-users.

13. What is Exploratory Testing?


 Answer: Exploratory testing is an unscripted testing approach where testers explore the
application to identify defects and assess its behavior without predefined test cases.

14. What is Boundary Value Analysis?


 Answer: A test design technique that involves testing at the boundaries of input ranges to
uncover potential edge-case defects.

15. Can you describe a challenging situation you faced while testing and how you resolved it?
 Answer: Example: “During a project, I encountered a critical bug in the production environment.
I collaborated with the development team to reproduce the issue, documented the steps clearly,
and performed rigorous regression testing after the fix to ensure no further defects were
introduced.”

Preparation Tips:
1. Understand Testing Fundamentals: Be clear about the basics of testing methodologies and
tools.
2. Familiarize with Tools: Practice using tools like Selenium, JIRA, or Postman.
3. Prepare Real-World Examples: Be ready to explain challenges and solutions from previous
experiences.
4. Soft Skills: Showcase problem-solving, communication, and analytical thinking.
Good luck with your interview!
Here’s an expanded explanation of software testing types with examples tailored to a Junior Demand
Tester role:

Functional Testing
 Definition: Verifies that software features and functionalities work according to the
requirements.
 Example for a Junior Demand Tester: Check that the "Add to Cart" button on an e-commerce
site correctly adds the selected item to the shopping cart.
 Tools: Manual testing or tools like Selenium.

Non-Functional Testing
 Definition: Tests the software’s non-functional aspects like performance, scalability, and
usability.
 Example for a Junior Demand Tester: Measure the page load time of a product catalog when
accessed by multiple users.
 Tools: JMeter for performance testing.

Regression Testing
 Definition: Ensures new updates or bug fixes don’t break existing functionality.
 Example for a Junior Demand Tester: After developers fix a login bug, test the login page and
surrounding features like password reset or account creation to confirm they still work.
 Tools: Automated test scripts in Selenium.

Exploratory Testing
 Definition: Unscripted testing to explore the software and identify potential issues.
 Example for a Junior Demand Tester: Navigate through a new e-commerce feature without
pre-written test cases to find unexpected behaviors, such as incorrect discount calculations.
 Tools: Performed manually.

Acceptance Testing
 Definition: Determines if the system meets the business requirements and is ready for release.
 Example for a Junior Demand Tester: Validate that the checkout process flows smoothly and
matches the customer's expectations for usability.
 Tools: TestRail for test case management.

Smoke Testing
 Definition: A quick test to check if the basic functionalities of an application work.
 Example for a Junior Demand Tester: Confirm that the homepage loads correctly, the login
form is functional, and key links work.
 Tools: Can be manual or automated.

Sanity Testing
 Definition: A focused test on new functionalities or fixes to verify they work as expected.
 Example for a Junior Demand Tester: After adding a new payment method (e.g., PayPal), test
the checkout process using PayPal to ensure proper integration.
 Tools: Performed manually or with tools like Postman for API testing.

Integration Testing
 Definition: Tests how different modules or systems interact.
 Example for a Junior Demand Tester: Ensure that an online booking system correctly
integrates with a third-party payment gateway like Stripe.
 Tools: Tools like Postman (for APIs) or manual testing.

System Testing
 Definition: Testing the complete system as a whole to ensure it meets requirements.
 Example for a Junior Demand Tester: Test an entire e-commerce platform by simulating a
customer journey: browsing products, adding them to the cart, checking out, and receiving an
email confirmation.
 Tools: Can use automation tools for repetitive tasks.

Unit Testing
 Definition: Focuses on individual components or units of code.
 Example for a Junior Demand Tester: Test that the "Calculate Total" function correctly sums
up the prices of items in a cart.
 Tools: Not commonly done by testers; primarily a developer's task using JUnit or NUnit.

Usability Testing
 Definition: Ensures the application is user-friendly and intuitive.
 Example for a Junior Demand Tester: Observe users attempting to navigate through the
account creation process to identify areas of confusion or difficulty.
 Tools: Session recording tools like Hotjar.

Load Testing
 Definition: Determines how the system behaves under expected load conditions.
 Example for a Junior Demand Tester: Simulate 1,000 concurrent users browsing a website to
ensure it doesn’t crash.
 Tools: JMeter, LoadRunner.
Stress Testing
 Definition: Evaluates the system's behavior under extreme conditions.
 Example for a Junior Demand Tester: Simulate a sudden influx of 10,000 users to see if the
application crashes or slows down.
 Tools: JMeter, LoadRunner.

Security Testing
 Definition: Identifies vulnerabilities in the application.
 Example for a Junior Demand Tester: Test if users can access restricted areas without proper
credentials.
 Tools: OWASP ZAP.

Compatibility Testing
 Definition: Ensures the software works on different browsers, devices, and operating systems.
 Example for a Junior Demand Tester: Verify that an e-commerce website functions correctly
on Chrome, Firefox, and Safari.
 Tools: BrowserStack, Sauce Labs.

End-to-End Testing
 Definition: Tests the flow of an application from start to finish.
 Example for a Junior Demand Tester: Test an e-commerce site from logging in, searching for
a product, adding it to the cart, checking out, and receiving a confirmation email.
 Tools: Manual or automated tools like Selenium.

Localization Testing
 Definition: Ensures the software is adapted for different regions, languages, or cultural
standards.
 Example for a Junior Demand Tester: Verify that currency, date formats, and text translations
display correctly when the application is set to French or German.
 Tools: Manual testing or specialized localization tools.

Junior Demand Tester – Day-to-Day Activities


As a Junior Demand Tester, your responsibilities could include:
1. Reviewing requirements to understand testing needs.
2. Writing and executing test cases for specific features.
3. Reporting bugs using tools like JIRA or Bugzilla.
4. Collaborating with developers and other testers to clarify requirements.
5. Performing exploratory, functional, and regression testing.
6. Learning automation tools for future growth.
Tips for Junior Demand Testers:
1. Learn Tools: Familiarize yourself with testing tools like Selenium, Postman, and JIRA.
2. Practice Writing Test Cases: Write test cases for common scenarios (e.g., login forms, search
bars).
3. Understand the SDLC and STLC: Software Development Life Cycle and Software Testing Life
Cycle are essential concepts.
4. Be Detail-Oriented: Spotting inconsistencies and bugs requires attention to detail.
5. Communicate Clearly: Ensure bug reports are clear, concise, and include all necessary details
for developers.
This diverse knowledge will help you excel as a Junior Demand Tester and grow in your testing career.
Tahák na pohovor na pozíciu softvérového testera

1. Základné definície
 Softvérové testovanie: Proces overovania a hodnotenia softvéru, aby sa zabezpečilo, že
spĺňa požiadavky a je bez chýb.
 Bug/Defekt: Chyba alebo nedostatok v softvéri, ktorý spôsobuje nesprávne alebo neočakávané
správanie.
 SDLC (Softvérový životný cyklus): Fázy vývoja softvéru: plánovanie, návrh, vývoj, testovanie,
nasadenie a údržba.
 STLC (Softvérový testovací životný cyklus): Fázy testovania: analýza požiadaviek,
plánovanie testovania, tvorba testovacích prípadov, nastavenie prostredia, vykonávanie testov a
uzavretie testovania.

2. Typy testovania
 Manuálne testovanie: Testovanie vykonávané ručne bez použitia automatizačných nástrojov.
 Automatizované testovanie: Testovanie pomocou nástrojov alebo skriptov (napr. Selenium).
 Funkčné testovanie: Overuje, či softvér funguje podľa požiadaviek.
 Nefunkčné testovanie: Kontroluje výkon, použiteľnosť a bezpečnosť softvéru.
 Regresné testovanie: Zaisťuje, že nové zmeny nepoškodia existujúcu funkcionalitu.
 Integračné testovanie: Testovanie interakcií medzi integrovanými modulmi.
 Jednotkové testovanie: Testovanie jednotlivých častí kódu (väčšinou vykonáva vývojár).
 Smoke testovanie: Rýchla kontrola, či aplikácia funguje.
 Sanity testovanie: Zamerané retestovanie konkrétnej funkcionality.
 Akceptačné testovanie: Overenie, či produkt spĺňa požiadavky používateľa.

3. Techniky navrhovania testov


 Black-Box Testing: Testovanie zamerané na vstupy a výstupy bez znalosti vnútorného kódu.
 White-Box Testing: Testovanie vnútorných štruktúr a logiky aplikácie.
 Boundary Value Analysis: Testovanie na hraniciach rozsahu vstupných hodnôt.
 Equivalence Partitioning: Rozdelenie vstupov na platné a neplatné kategórie.
 Decision Table Testing: Testovanie na základe podmienok a akcií.
 Exploratívne testovanie: Neformálne testovanie s cieľom nájsť neočakávané chyby.

4. Bežné nástroje
 Sledovanie chýb: JIRA, Bugzilla, Trello.
 Správa testov: TestRail, Zephyr.
 Automatizácia: Selenium, TestNG, Postman (API), Appium (mobilné).
 Výkon: JMeter, LoadRunner.
 Kompatibilita: BrowserStack, Sauce Labs.

5. Testovacie artefakty
 Testovací prípad: Krok za krokom opis, ako overiť konkrétnu funkcionalitu.
 Testovací plán: Dokument popisujúci rozsah, ciele a zdroje testovania.
 Testovací scenár: Vysoká úroveň predstavy, čo sa má testovať.
 Testovací skript: Automatizovaný kód na vykonávanie testov.
 Report o chybe: Dokumentácia detailov defektu vrátane krokov na jeho reprodukciu.

6. Príklady otázok a odpovedí


1. Otázka: Aké sú rôzne typy testovania?
o Odpoveď: Manuálne, automatizované, funkčné, nefunkčné, jednotkové, integračné,
regresné, smoke, sanity a akceptačné testovanie.
2. Otázka: Aký je rozdiel medzi verifikáciou a validáciou?
o Odpoveď: Verifikácia overuje, či je produkt správne vyvinutý (zamerané na proces),
validácia zaisťuje, že produkt spĺňa požiadavky používateľa (zamerané na výsledok).
3. Otázka: Čo je regresné testovanie?
o Odpoveď: Testovanie, ktoré zaisťuje, že nové zmeny alebo opravy neovplyvnili
existujúce funkcionality.
4. Otázka: Čo je testovací prípad?
o Odpoveď: Dokument, ktorý obsahuje kroky, vstupy a očakávané výsledky na overenie
funkcionality softvéru.
5. Otázka: Ako by ste prioritizovali testovacie prípady?
o Odpoveď: Na základe kritických funkcionalít, vplyvu na používateľov a rizikových
oblastí.
6. Otázka: Aký je rozdiel medzi Smoke a Sanity testovaním?
o Odpoveď: Smoke testovanie je základná kontrola funkčnosti aplikácie, sanity testovanie
overuje špecifické opravy alebo funkcionality.

7. Životný cyklus chyby


1. Nová (New): Chyba bola identifikovaná.
2. Priradená (Assigned): Pridelená vývojárovi.
3. Otvorená (Open): Vývojár na nej pracuje.
4. Opravená (Fixed): Chyba bola vyriešená.
5. Retestovaná (Retested): Tester overil opravu.
6. Uzavretá (Closed): Chyba bola úspešne vyriešená.
7. Znovu otvorená (Reopened): Ak chyba nebola vyriešená.

8. Kľúčové metriky
 Hustota defektov: Počet chýb na veľkosť modulu.
 Pokrytie testovania: Percento požiadaviek, ktoré boli otestované.
 Pomer detekcie chýb: Pomer medzi chybami zistenými počas testovania a v produkcii.

9. Otázky na správanie
1. Ako riešite situáciu, keď unikne chyba do produkcie?
o Odpoveď: „Analyzujem, prečo chyba unikla, aktualizujem testovacie prípady a zlepším
pokrytie testovania.“
2. Ako pracujete pod časovým tlakom?
o Odpoveď: „Prioritizujem kritické testy, otvorene komunikujem s tímom a zameriavam sa
na testovanie na základe rizika.“

10. Tipy na prípravu


 Naučte sa nástroje: Oboznámte sa s nástrojmi, ktoré sú relevantné pre danú pozíciu.
 Pochopte modely Agile a Waterfall: Poznajte ich fázy testovania.
 Pripravte testovacie prípady: Buďte pripravení napísať a vykonať testovacie prípady počas
pohovoru.
 Poznajte nástroje na hlásenie chýb: Precvičte si vytváranie podrobných reportov o chybách.
 Mäkké zručnosti: Preukážte komunikačné, tímové a analytické schopnosti.

Použite tento tahák na rýchlu prípravu pred pohovorom a prispôsobte odpovede konkrétnym
požiadavkám danej pozície. Veľa šťastia! 🚀

You might also like