What is a Build? All 3 are the result of product compilation - build - immediate result of the compilation - has enumeration for INTERNAL use - release - the build meant to go to the production - keeps the internal enumeration of the build - version - enumeration given to the outside world/users - EXTERNAL Black box testing - Testing from user perspective, versus the source code perspective (white box) White box testing - Testing from source code perspective, bugs are identified and reported at the source code level Gray box testing - an extention of Black Box testing using complete/partial knowledge of software architecture/structure. Comes with tools and/or languages. (Postman, devtools) ==Examples of Gray Box Testing - parsing/analyzing log files with (c#, perl, javascript, manually) - REST API (web services) testing with Postman, with javascript... - data integrity (data saved properly in the database records) Functionality Testing - making sure all the requirements (features) are properly implemented (verification) Regression testing - making sure nothing was broken as a result of modifying the code - Workload (operations/Mb per second): - Performance degradation Performance testing - monitor performance degradation of the SYSTEM under SPECIFIC workload (within the working limits, 70% of MAX) for a set time (f.e. 4 hours) Load testing? - Performance testing with focus on database/backend performance (within expected/Specific load) Stress? - Performance testing at EXTREME load - LoadRunner - provides lots of data for formal certification - Jmeter - used for non-formal testing Volume testing: - testing of the application being able to function with data/file of specified size/volume Exploratory testing - intuitive testing with the purpose of better understandig of how the application works (planning, executing, learning-AHA moment) Ad hoc (non-systematic) testing is a subset of Exploratory where planning, executing and learning are happening at the same time User Acceptance Test? - Done by SMExperts (not QA) on behalf of users, last testing before delivery to the customer; developed for a client (not for the open market) Beta-testing? - EXTERNAL User Acceptance testing (for open market applications) Crowd testing? - testing software updates/new versions on a smaller part of user base in anticipation of complains/bugs reported Build acceptance - (Smoke testing; sanity check) - making sure there are no COMPILATION problems and the build is in testable condition (might be sent to QA) - no catastrophic exits LEVELS OF TESTING: What is Unit testing? - White box testing. Isolating other unites of software and concentrating on a single unit Integration testing? - Testing 2 or more units together (white box). Black box: 2+ functional modules/features System testing? - Testing the entire system (application) with no regards to individual units -End-to-End testing? - system level test similar to execution of a use case - testing a completed business transaction What is API Testing? - White box testing of libraries (APIs) developed to be reused multiple times in that project Rest API testing - (gray box) testing REST API services (how the app communicates from server side to client side). Could be done manually (Postman) or automated API = Application programming Interface (libraries) string ReturnURLValue (int age; string income; string whitehouse) Test harness (automated testing framework) - the application/environment for building and executing automated tests Browser compatibility testing (cross-browser)? - web page looks/works regardless of the browser used to see the page Operating system (cross-platform) Compatibility? - web page looks/works the same in the browser while moving to other operating systems Windows: Edge, MSIE, Chrome, FireFox, Opera, Safari macos: Safari, Chrome, Firefox, etc. Define Equivalence class? - group of inputs with an exact same EXPECTED output - we need 1 test case for the class Equivalence partitioning? - the process of identifying classes and their boundaries Boundary testing? - 2 test cases per boundary - the output changes when we cross the boundary Boundary Value Analysis? - the process of identifying the boundaries/classes What is error handling testing (exception handling)? - has nothing to do with what user will experience - exception is a catastrophic CODE problem - dividing by ZERO, for example - program should terminate - error handling is a part of the application CODE - white box testing Localization testing - testing of translation, currencies, time/date, and other country/language specific issues Internationalization testing - making sure that the application is adjustable to various languages, locations, time/date, etc.