Top down approach: In this approach, programmers are interconnecting main module with some of sub modules. In the place of remaining under constructing sub modules, programmers are using temporary programs called STUBS. These STUBS are also known as programs
Bottom up approach: In this approach, programmers are interconnecting sub modules without using under constructive main module. In this approach, programmers are using a temporary program instead of main module called DRIVER, which is also known as calling program
Hybrid approach: it is also known as sandwich approach. This is a combined approach of top down and bottom up approach.
Big Bang Approach: it is also known as system approach. In this approach, the programmers are inter connecting programs after completion of all programs development and unit testing.
Top down approach is follow able when the requirements are changing dynamically
Bottom Up approach: It is follow able when the customer requirements are constant but architecture is changing
Hybrid approach: It is follow able when the requirements and architecture both are constants
If our system consists of less number of interconnections in between the modules, at that situation big bang approach is follow able.
Black box testing:
System Testing: After completion of integration testing, development people release initial build to separate testing team in that organization. This separate testing team follows black box testing to validate the requirements of the customer in that build, the system testing classified into three divisions such as
1. Usability testing
2. Functional testing
3. Non Functional testing.
Usability testing: in general, the separate testing team is starting software testing through validation user friendliness. This usability is testing is classified into below sub tests.
User interface testing:
1. Ease to use [ understandability of screen of elements]
2. Look and feel [attractiveness of the screen elements]
3. Speed in interface [ less number of events to complete a task
During this test, test engineers are concentrating on above factors to be applied on every screen [i.e window] build
Manual support testing: in this separating testing team is validating the correctness and completeness of corresponding user manual or help document w.r.t to build operations. Receive build from developers
Receive build from developers
User Interface testing
Functional and Non Functional
Functional Testing: This part is a mandatory level in system testing phase. In this part the separate testing team is concentrating on “requirements meeting in build”
Functionality testing: It is also known as “Requirement testing” During this test, test engineers are validating the correctness of every functionality through below coverage’s.
1. GUI Coverage : changes in properties of objects in screen’s
Eg: 1st cursor highlighted in username, it will come to password and after that ok button. This total execution is under this coverage.
2. Error Handling Coverage: Preventing wrong operations. If we enter any wrong user id and password then it will give u error message as invalid password.
3. Input domain coverage: Correctness of size and type of inputs.
4. Output manipulations coverage : correctness of functionality outputs
5. Back end coverage or Data base coverage: The impact of front end operations on back end tables
6. Service level coverage: [order of functionality] :when the object should response and when it should not.
Input domain coverage: It is a part of functionality testing but test engineers, giving a special treatment with the help of mathematical notations such as
BVA: Boundary value analysis
ECP: Equivalence class partition
BVA like notation’s used for range on size of objects and ECP used for type of the object values
BVA changes :
A login process allows user id and password to authorize users. User id object is taking alpha numeric’s in low case from 4 to 18 characters long. The password object is taking alphabets in lower case from 4 to 8 characters long prepare BVA and ECP for user id and password.
ECP[Equivalence class partition]
a ----z A—Z
0----9 special characters and blank fields
Sanitation testing: It is also known as garbage testing. During this test, test engineers are detecting extra functionalities in that applications build w.r.t requirements.
Non functional Testing: After completion of all possible usability and functional test, testing team is concentrating on other quality factors to validate in that application or product [build].
Recovery testing : It is also known as reliability testing during this test, test engineers are validating that whether our application build is changing from abnormal state to normal state or not
Security testing: It is also known as penetration testing during test , test engineers are validating
2. Access control
3. Encrypt and decrypt
1. Authorization: For user validation to connect to application eg : login with password, digital signature, pin no ,finger prints etc.
2. Access Control : For authority of valid users to access specified services or functionality eg : administrator and user
3. Encrypt and decrypt : used for code conversion between client and server processes
Request (In the form of encrypt) Decrypt Response
Compatibility: It is also known as portability testing. During this test, test engineers are validating that whether our build is run on all customer expected plat forms or not. Plat form means that operating system, compiler, browser and other system software’s.
Configuration Testing: It is also known as hardware compatibility testing. During this test, test engineers are validating that whether our build is run with different technology hardware devices or not.
Eg: Different technology networks, different topology [arrangement of computers different technology printers etc.
Load Testing: The execution of our build under the customer expected configuration and customer expected load to estimate performance is called load testing or scalability testing or capability testing. Load or scale means the number of the number of concurrent users, which are accessing or operating our build
Stress Testing: The execution of our build under customer expected configuration and various levels from low to peak to estimate consistency or reliability in process is called stress testing. [ long time whether application is respond load or not]
Storage Testing: It is also known as memory testing. During this test, testing people are calculating peak limit of storage handled by our build to store user data.
Eg: ms-access technology builds support 2gb data base as maximum. In terms of bytes.
Data volume testing: During this test, testing people are calculating the size of data in terms of number of records handled by our build.
Parallel Testing: It is also known as competitive testing or comparative testing. During this test, test engineers are comparing our build with old versions of some product or with similar products in market to find competitiveness.
Installation testing: During this test, test engineers are validating correctness and completeness of installation process of our build into customer expected configuration systems.
User Acceptance Testing: To collect feed back from real customers or model customers, out project management is conducting user acceptance testing. There are two types of user acceptance testing such as alpha testing and beta testing.
Alpha Testing Beta Testing
1. In development site 1. In model customer site
2. By Real Customer 2. By Model Customer
3. For software application 3. For software product.
Release and maintenance: After completion of user acceptance testing and their modification project management is defining release team along with few developers and few testers and few software engineers . These release team is conducting engineers. These release team is conducting port testing in corresponding customer site.
During this part testing, release team members are observing below factors
1. Compact installation
2. Overall functionality
3. Input device handling [ eg : keyboard , mouse etc ]
4. Output device handling [ eg: monitors]
5. Secondary storage device handling [ floppy disk , CDROM]
6. o/s [operating system] error handling.
7. Co existence with other software in customer site environment to share common resources.
After completion of above observation release team is providing training sessions to end users in customer site.
During utilization of that software customer site people are sending change request to our company. To receive and perform that change, project management is defining ccb (change control board) along with few developers few testers and few hardware engineers.