Validation: The process of evaluation software at the end of software development to ensure compliance with intended usage
Verification: The process of determining whether the products of a given phase of the software development process fulfill the requirements established during the previous phase
Software testing is defined as an activity to check whether the actual results match the expected results and to ensure that the software system is defect free
Regression testing ensures whether the addition of new features causes a decline in the functionality of an application
Unit testing ensures each individual unit or component performs as expected
Functional testing checks each function against functional requirements
Integration testing groups together two or more modules of an application
Stress testing assesses the strength of software by testing how much load it can take
Security testing ensures software is free of vulnerabilities
Performance testing test the performance, speed and scalability
Acceptance Testing evaluates the entire system against the desired requirements
Software Testing is Important because if there are any bugs or errors in the software, it can be identified early and can be solved before delivery of the software product
Properly tested software product ensures reliability, security and high performance which further results in time saving, cost effectiveness and customer satisfaction
Functional Test: Test for – all the links in web pages, database connections, forms used for submitting or getting information from the user in the web pages, Cookie testing, etc
Usability testing is the process by which the human-computer interaction characteristics of a system are measured, and weaknesses are identified for correction
Performance Test: Testing that assesses how well the software performs in terms of speed, stability, and resource usage
Security Test examples include URL, Password, Inputs (login username, password, input text boxes), and Web directories and files should not be accessible directly unless they are given the download option.
CAPTCHA, SSL, and Log file are also part of the Security Test.
Compliance Test: Testing that ensures the software complies with legal, industry, or regulatory standards.
Test for compliance includes – • Accessibility • Privacy • Usability • Localization • Security • Performance • Supportability • Interoperability • Portability • Scalability • Backward compatibility • Forward compatibility • Disaster recovery • Business continuity • Compliance with industry standards • Compliance with regulatory standards
Interface Test: For web testing, the server-side interface should be tested by verifying that the communication is done properly.
The compatibility of the server with software, hardware, network, and database should be tested.
Test Plan is a blueprint of how the testing activity is going to take place in the project.
Software deployment refers to the process of making the application work on a target device, whether it be a test server, production environment or a user's computer or mobile device.
Deployment involves moving software from one controlled environment to another.
An environment is a subset of IT infrastructure used for a particular purpose.
According to the ISO/IEC 2000 standard definition, a release is: A collection of one or more new or changed services or service components deployed into the live environment as a result of one or more changes.
Blue/Green Deployment is a type of deployment strategy, the new version of the software runs alongside the old version.
In Blue/Green Deployment, the stable or the older version of the application is always blue or red, while the newer version is green or black.
In canary deployment, the deployment team sets up the new version and then gradually shifts the production traffic from the older version to the newer version.
In deployment strategy, the dev team shuts down the old version of the application entirely, deploys the new version, and then reboots the whole system.
Deployment strategy is cheaper and mainly used when the software firm wants to change the application from scratch.
The ramped deployment strategy gradually changes the older version to the new version.
Rolling upgrade deployment strategy gives zero downtime also enables performance monitoring.
In shadow deployment, the new version of the application receives real-world traffic alongside the old version and doesn’t impact the response.