Implementation, testing and results notes — Unit 4
Free unit-wise study notes on implementation, testing and results for Minor Project and Industrial Training, Semester 7 of B.Tech — Computer Science & Engineering — key concepts, examples, important questions and a revision checklist for semester exams.
Testing, deployment and version control
Notebook — 7 pages
Page 1
Wink Notes
B.Tech CSE — 7th Semester
Minor Project and Industrial Training
— Unit - 4 —
1. The Importance of Testing
Testing is not an afterthought; it is a fundamental part of the development lifecycle. It proves that the software meets the SRS and works correctly under various conditions.
⇒1.1 The Cost of Bugs
A bug found during the requirement phase costs 1tofix.Thesamebugfoundduringimplementationcosts10. If that bug reaches production and is found by a customer, it costs $100+ to fix (support costs, reputation damage). Testing catches bugs early.
Page 2
Wink Notes
B.Tech CSE — 7th Semester
Minor Project and Industrial Training
— Unit - 4 —
2. Levels of Testing
⇒2.1 Unit Testing
Testing individual functions or methods in isolation. If a function calculates taxes, a unit test passes it '100' and asserts the result is exactly '105'. These are usually automated and run by developers.
⇒2.2 Integration Testing
Testing how different modules work together. Does the backend properly communicate with the database? Does the React frontend parse the JSON from the Node.js API correctly?
⇒2.3 System Testing
Testing the entire integrated system as a whole against the original SRS requirements.
Page 3
Wink Notes
B.Tech CSE — 7th Semester
Minor Project and Industrial Training
— Unit - 4 —
3. White-Box vs Black-Box Testing
⇒3.1 White-Box Testing
The tester knows the internal structure and code of the application. They design test cases to ensure every line of code (statement coverage) and every IF/ELSE branch (branch coverage) is executed at least once.
⇒3.2 Black-Box Testing
The tester treats the application as a black box. They only know the required inputs and expected outputs, without caring how the code works internally. Excellent for UI testing and User Acceptance Testing (UAT).
Page 4
Wink Notes
B.Tech CSE — 7th Semester
Minor Project and Industrial Training
— Unit - 4 —
4. Version Control (Git)
Version Control Systems (VCS) track changes to source code over time. Git is the undisputed industry standard.
⇒4.1 Why Git is Essential
History: You can revert the entire project to exactly how it looked last Tuesday if a new bug is introduced.
Collaboration: Multiple developers can work on the same file simultaneously. Git safely merges their changes.
Branching: You can create an isolated 'branch' to experiment with a new feature without breaking the main working code.
Submitting a zip file called `final_project_v3_REAL_FINAL.zip` is unacceptable in industry. The project examiner will look at your GitHub repository's commit history to verify steady progress.
Page 5
Wink Notes
B.Tech CSE — 7th Semester
Minor Project and Industrial Training
— Unit - 4 —
5. Deployment
Deployment is the process of moving your code from your local laptop to a server where users can access it over the internet.
⇒5.1 Modern Deployment
In the past, deployment meant manually FTP-ing files to a server. Today, it is highly automated.
PaaS (Platform as a Service): Services like Heroku, Vercel, or Render allow you to link your GitHub repository. When you push new code to Git, the platform automatically detects it, builds the project, and deploys it live.
Containerization: Packaging the app using Docker ensures that it runs exactly the same way on the deployment server as it did on your local laptop, eliminating the 'It works on my machine' excuse.
Page 6
Wink Notes
B.Tech CSE — 7th Semester
Minor Project and Industrial Training
— Unit - 4 —
6. Continuous Integration / Continuous Deployment
CI/CD is the ultimate expression of automated testing and deployment.
⇒6.1 The CI/CD Pipeline
Using tools like GitHub Actions or Jenkins:
1. A developer pushes code to GitHub.
2. CI: A cloud server automatically downloads the code and runs all the Unit Tests. If any test fails, the code is rejected.
3. CD: If the tests pass, the server automatically deploys the code to the production web server.
This allows teams to deploy new features 50 times a day safely, without human intervention.
Page 7
Wink Notes
B.Tech CSE — 7th Semester
Minor Project and Industrial Training
— Unit - 4 —
7. Unit Summary
Testing: Unit (individual functions), Integration (module interaction), System (whole application). White-box (internal logic) vs Black-box (input/output).
Version Control: Git is mandatory for tracking history, branching features, and enabling team collaboration.
Deployment: Moving code to production, often utilizing Docker containers and PaaS providers for consistency.
CI/CD: Automating the pipeline so that pushing code triggers automated tests and immediate deployment if successful.