One Shot Revesion
Software Testing

- ☆1Software EngineeringTestingExplain the difference between Unit Testing and Integration Testing.Combined Bank, SO(IT-24), 26 | Senior Officer (IT)
Difference between Unit Testing and Integration Testing
Unit Testing Integration Testing Tests individual Module, Function, or Class. Tests the interaction between two or more integrated Modules. Performed before Integration Testing. Performed after Unit Testing. Usually performed by Developers. Performed by Developers or QA Testers. Focuses on the correctness of a single unit. Focuses on data flow and communication between modules. Uses Stubs and Drivers when required. Uses integrated modules to detect interface-related defects. Easy to identify and fix defects. Detects interface, communication, and integration defects. Example
Unit Testing: Testing the login validation function independently.
Integration Testing: Testing whether the Login Module correctly communicates with the Database Module and User Authentication Module. - ☆2Software EngineeringTestingBlack box and white box testing.Islami, QA(Engineer), 25 | Bank

- ☆3Software EngineeringTestingTesting is an activity that is performed to verify correct behavior of a program. Testing should be conducted in all the stages of program development. Describe different types of tests conducted in the implementation stage.CB, O(IT), 20 | Officer (IT)
During the Implementation Stage of the Software Development Life Cycle (SDLC), different types of testing are performed to verify that the software functions correctly and meets the specified requirements.
1. Unit Testing
Unit Testing is performed to test individual modules, functions, or classes independently. It is usually conducted by developers to ensure that each unit works correctly.
2. Integration Testing
Integration Testing verifies that multiple modules work together correctly after integration. It checks the interfaces and data flow between modules.
3. System Testing
System Testing evaluates the complete integrated software system to ensure that it meets all functional and non-functional requirements.
4. Acceptance Testing
Acceptance Testing is performed by customers or end users to verify that the software satisfies business requirements and is ready for deployment. It includes User Acceptance Testing (UAT).
These testing types ensure that the software is reliable, error-free, and ready for deployment by identifying defects at different levels of the implementation stage.
Software Development Life Cycle (SDLC)-এর Implementation Stage-এ Software সঠিকভাবে কাজ করছে কিনা এবং নির্ধারিত Requirement পূরণ করছে কিনা তা নিশ্চিত করার জন্য বিভিন্ন ধরনের Testing করা হয়।
১. Unit Testing
Unit Testing-এ Software-এর প্রতিটি Module, Function বা Class আলাদাভাবে পরীক্ষা করা হয়। সাধারণত এটি Developer দ্বারা সম্পন্ন করা হয়।
২. Integration Testing
Integration Testing-এ একাধিক Module একত্রে যুক্ত করার পরে তাদের মধ্যে Interface এবং Data Flow সঠিকভাবে কাজ করছে কিনা তা পরীক্ষা করা হয়।
৩. System Testing
System Testing-এ সম্পূর্ণ Integrated Software System পরীক্ষা করা হয়, যাতে Functional এবং Non-Functional Requirement পূরণ হয়েছে কিনা নিশ্চিত করা যায়।
৪. Acceptance Testing
Acceptance Testing সাধারণত Customer বা End User দ্বারা পরিচালিত হয়, যাতে নিশ্চিত করা যায় যে Software ব্যবসায়িক Requirement পূরণ করছে এবং ব্যবহারের জন্য প্রস্তুত। এর মধ্যে User Acceptance Testing (UAT) অন্তর্ভুক্ত।
Unit Testing, Integration Testing, System Testing এবং Acceptance Testing Implementation Stage-এর গুরুত্বপূর্ণ ধাপ। এগুলোর মাধ্যমে বিভিন্ন স্তরে Defect শনাক্ত করা যায় এবং নির্ভরযোগ্য Software তৈরি নিশ্চিত করা হয়।
- ☆4Data Center & VirtualizationTestingDefine test plan and Test case.Pubali, SQA, 23 |
A Test Plan is a formal document that defines the testing strategy, objectives, scope, resources, schedule, and activities required to test a software application. It serves as a roadmap for the testing process and ensures that all testing activities are carried out systematically.
Contents of a Test Plan
• Testing objectives and scope.
• Testing strategy and approach.
• Resources and responsibilities.
• Test schedule and milestones.
• Entry and exit criteria.
• Risks and assumptions.What is a Test Case?
A Test Case is a document that describes a specific scenario to verify whether a particular feature or function of a software application works as expected. It contains the input data, execution steps, expected result, and actual result.
Contents of a Test Case
• Test Case ID.
• Test Scenario or Description.
• Preconditions.
• Test Steps.
• Input Data.
• Expected Result.
• Actual Result.
• Pass/Fail Status.
Test Plan হলো একটি আনুষ্ঠানিক Document, যেখানে Software Testing-এর Strategy, Objective, Scope, Resource, Schedule এবং বিভিন্ন Testing Activity বর্ণনা করা থাকে। এটি পুরো Testing Process-এর জন্য একটি Roadmap হিসেবে কাজ করে।
Test Plan-এর প্রধান বিষয়বস্তু
• Testing-এর Objective এবং Scope।
• Testing Strategy এবং Approach।
• Resource এবং দায়িত্ব বণ্টন।
• Test Schedule এবং Milestone।
• Entry Criteria এবং Exit Criteria।
• Risk এবং Assumption।Test Case কী?
উত্তর:
Test Case হলো একটি Document, যেখানে Software-এর নির্দিষ্ট Feature বা Function সঠিকভাবে কাজ করছে কিনা তা যাচাই করার জন্য নির্দিষ্ট Test Scenario, Input, Execution Step এবং Expected Result উল্লেখ থাকে।
Test Case-এর প্রধান বিষয়বস্তু
• Test Case ID।
• Test Scenario বা Description।
• Preconditions।
• Test Steps।
• Input Data।
• Expected Result।
• Actual Result।
• Pass/Fail Status।উদাহরণ
Test Case: User Login যাচাই করা।
Input: সঠিক Username এবং Password।
Expected Result: User সফলভাবে System-এ Login করবে।
- ☆5Software EngineeringTestingWrite difference between Verification and Validation.Pubali, SQA, 23 |
Difference Between Verification and Validation
Verification Validation Verification checks whether the software is built according to the specified requirements. Validation checks whether the software meets the user's needs and expectations. It answers the question: "Are we building the product right?" It answers the question: "Are we building the right product?" Performed during the development phase. Performed after the software is developed or during testing. Does not require executing the software. Requires executing the software. Uses techniques such as Review, Inspection, and Walkthrough. Uses techniques such as Functional Testing, System Testing, and User Acceptance Testing (UAT). Focuses on finding defects in design and documents. Focuses on finding defects in the actual software product. It is a Static Testing process. It is a Dynamic Testing process. Example
Verification: Reviewing the Software Design Document to ensure it follows the requirements.
Validation: Running the software to verify that the login functionality works correctly for users.
Verification এবং Validation-এর মধ্যে পার্থক্য
Verification Validation Software নির্ধারিত Requirement অনুযায়ী তৈরি হয়েছে কিনা তা যাচাই করে। Software ব্যবহারকারীর Need এবং Expectation পূরণ করছে কিনা তা যাচাই করে। প্রশ্নের উত্তর দেয়: "Are we building the product right?" প্রশ্নের উত্তর দেয়: "Are we building the right product?" Development Phase-এ সম্পন্ন হয়। Software তৈরি হওয়ার পরে বা Testing-এর সময় সম্পন্ন হয়। Software Execute করার প্রয়োজন হয় না। Software Execute করে পরীক্ষা করা হয়। Review, Inspection এবং Walkthrough ব্যবহার করা হয়। Functional Testing, System Testing এবং User Acceptance Testing (UAT) ব্যবহার করা হয়। Design এবং Document-এর ত্রুটি শনাক্ত করার উপর গুরুত্ব দেয়। চলমান Software-এর ত্রুটি শনাক্ত করার উপর গুরুত্ব দেয়। এটি একটি Static Testing Process। এটি একটি Dynamic Testing Process। উদাহরণ
Verification: Software Design Document Review করে Requirement সঠিকভাবে অনুসরণ করা হয়েছে কিনা যাচাই করা।
Validation: Software চালিয়ে Login Function সঠিকভাবে কাজ করছে কিনা পরীক্ষা করা।
- ☆6Software EngineeringTestingDifference between White Box testing and Black Box testing.Pubali, SQA, 23 |

- ☆7Software EngineeringTestingWhat is defect report? Define test harness?Pubali, SQA, 23 |
A Defect Report (also called a Bug Report) is a document used to record and track defects found during software testing. It provides complete information about the defect so that developers can identify, fix, and verify the issue efficiently.
Contents of a Defect Report
• Defect ID.
• Defect Summary or Title.
• Description of the defect.
• Steps to reproduce the defect.
• Expected Result.
• Actual Result.
• Severity and Priority.
• Status (Open, Fixed, Closed, etc.).
• Reporter and Assigned Developer.Example
If a user enters a valid username and password but cannot log in, the tester records the issue in a Defect Report with all necessary details.
What is a Test Harness?
Answer:
A Test Harness is a collection of software, test data, Test Drivers, and Test Stubs used to execute and test a software component automatically. It provides an environment for running tests and comparing the actual results with the expected results.
Components of a Test Harness
• Test Driver.
• Test Stub.
• Test Data.
• Test Scripts.
• Result Comparison and Reporting Tools.Example
During Unit Testing, a Test Harness uses a Test Driver to call a function and a Test Stub to simulate dependent modules, then compares the actual output with the expected output.
Defect Report (বা Bug Report) হলো একটি Document, যেখানে Software Testing-এর সময় পাওয়া ত্রুটির (Defect) বিস্তারিত তথ্য সংরক্ষণ করা হয়। এটি Developer-কে সমস্যা শনাক্ত, সমাধান এবং পুনরায় যাচাই করতে সাহায্য করে।
Defect Report-এর প্রধান বিষয়বস্তু
• Defect ID।
• Defect Summary বা Title।
• Defect-এর Description।
• Defect পুনরায় তৈরি করার Step (Steps to Reproduce)।
• Expected Result।
• Actual Result।
• Severity এবং Priority।
• Status (Open, Fixed, Closed ইত্যাদি)।
• Reporter এবং Assigned Developer।উদাহরণ
যদি কোনো User সঠিক Username এবং Password দেওয়ার পরও Login করতে না পারে, তাহলে Tester সেই সমস্যাটি Defect Report-এ সকল প্রয়োজনীয় তথ্যসহ লিপিবদ্ধ করবে।
Test Harness কী?
উত্তর:
Test Harness হলো Software, Test Data, Test Driver এবং Test Stub-এর সমন্বয়ে গঠিত একটি Testing Environment, যা কোনো Software Component-কে স্বয়ংক্রিয়ভাবে Test করতে ব্যবহৃত হয়। এটি Actual Result এবং Expected Result তুলনা করে Test-এর ফলাফল নির্ণয় করে।
Test Harness-এর উপাদান
• Test Driver।
• Test Stub।
• Test Data।
• Test Script।
• Result Comparison এবং Reporting Tool।উদাহরণ
Unit Testing-এর সময় একটি Test Harness, Test Driver ব্যবহার করে Function Call করে এবং Test Stub ব্যবহার করে নির্ভরশীল Module-এর আচরণ অনুকরণ (Simulate) করে। এরপর Expected Result-এর সাথে Actual Result তুলনা করে Test-এর ফলাফল নির্ধারণ করে।
- ☆8Software EngineeringTestingDescribes different Cycle of STLC.Pubali, SQA, 23 |
Software Testing Life Cycle (STLC) is a sequence of activities performed during the software testing process to ensure that the software meets the specified quality requirements. Each phase has specific objectives and deliverables.
Phases of STLC
1. Requirement Analysis
The testing team analyzes the software requirements to identify testable requirements, testing scope, and possible risks.2. Test Planning
A Test Plan is prepared, which defines the testing strategy, resources, schedule, tools, responsibilities, and estimated effort.3. Test Case Development
Testers design Test Cases, prepare Test Data, and review them to ensure complete test coverage.4. Test Environment Setup
The required hardware, software, network, database, and testing tools are configured to create the testing environment.5. Test Execution
The prepared Test Cases are executed. The actual results are compared with the expected results, and any defects found are reported.6. Defect Reporting and Tracking
Detected defects are recorded in a Defect Report, assigned to developers, fixed, and retested until they are resolved.7. Test Closure
Testing activities are completed, test reports are prepared, lessons learned are documented, and the testing process is formally closed.
Software Testing Life Cycle (STLC) হলো Software Testing-এর একটি ধারাবাহিক Process, যেখানে বিভিন্ন ধাপে Testing সম্পন্ন করে Software-এর Quality নিশ্চিত করা হয়। প্রতিটি Phase-এর নির্দিষ্ট Objective এবং Deliverable থাকে।
STLC-এর ধাপসমূহ
১. Requirement Analysis
এই ধাপে Testing Team Software Requirement বিশ্লেষণ করে Testable Requirement, Testing Scope এবং সম্ভাব্য Risk নির্ধারণ করে।২. Test Planning
এই ধাপে একটি Test Plan তৈরি করা হয়, যেখানে Testing Strategy, Resource, Schedule, Tool, Responsibility এবং Estimated Effort নির্ধারণ করা হয়।৩. Test Case Development
এই ধাপে Test Case, Test Data প্রস্তুত করা হয় এবং Review-এর মাধ্যমে সেগুলো যাচাই করা হয়।৪. Test Environment Setup
Testing-এর জন্য প্রয়োজনীয় Hardware, Software, Network, Database এবং Testing Tool Configure করা হয়।৫. Test Execution
প্রস্তুতকৃত Test Case Execute করা হয়। Actual Result এবং Expected Result তুলনা করে Defect শনাক্ত করা হয়।৬. Defect Reporting and Tracking
শনাক্ত হওয়া Defect একটি Defect Report-এ সংরক্ষণ করা হয়, Developer-এর কাছে পাঠানো হয়, Fix করার পরে পুনরায় Retest করা হয়।৭. Test Closure
Testing সম্পন্ন হওয়ার পরে Test Report তৈরি করা হয়, অভিজ্ঞতা (Lessons Learned) সংরক্ষণ করা হয় এবং Testing আনুষ্ঠানিকভাবে সমাপ্ত করা হয়।
- ☆9Software EngineeringTestingDefine software testing level. show that unit, integration, system and user acceptance testing. How these are complemented of each otherSonali Bank, ADA, 26 | ADA
Software Testing Level : Software Testing Levels are the different stages of testing used to verify and validate that software works correctly and meets requirements.
Types of Testing Levels
1. Unit Testing
- Definition: Testing of the smallest individual unit (function/module) of a program.
- Purpose: To check each part works correctly.
- Performed by: Developer.
2. Integration Testing
- Definition: Testing of combined modules to verify interaction between them.
- Purpose: To find interface/communication errors.
3. System Testing
- Definition: Testing of the complete system as a whole.
- Purpose: To ensure system meets functional and non-functional requirements.
4. User Acceptance Testing (UAT)
- Definition: Final testing performed by end users.
- Purpose: To confirm system meets business needs and is ready for deployment.
How They Complement Each Other
- Unit Testing: Ensures each component is correct.
- Integration Testing: Ensures components work together.
- System Testing: Ensures the whole system works properly.
- UAT: Ensures system satisfies user requirements.
- These levels work step-by-step from small parts to full system, ensuring complete quality assurance.
Software Testing Level: Software Testing Level হলো software পরীক্ষা করার
Testing Level-এর ধরন
1. Unit Testing
- সংজ্ঞা: software-এর সবচেয়ে ছোট অংশ (function/module) পরীক্ষা করা।
- উদ্দেশ্য: প্রতিটি অংশ সঠিকভাবে কাজ করছে কিনা দেখা।
- কে করে: developer।
2. Integration Testing
- সংজ্ঞা: একাধিক module একসাথে কাজ করছে কিনা পরীক্ষা করা।
- উদ্দেশ্য: module-এর মধ্যে communication error খুঁজে বের করা।
3. System Testing
- সংজ্ঞা: পুরো system একসাথে পরীক্ষা করা।
- উদ্দেশ্য: system requirement অনুযায়ী কাজ করছে কিনা নিশ্চিত করা।
4. User Acceptance Testing (UAT)
- সংজ্ঞা: end user দ্বারা শেষ ধাপের পরীক্ষা।
- উদ্দেশ্য: system business requirement পূরণ করছে কিনা নিশ্চিত করা।
এগুলো কিভাবে একে অপরকে Complement করে
- Unit Testing: ছোট অংশের ভুল খুঁজে বের করে।
- Integration Testing: module-এর মধ্যে সমস্যা ধরতে সাহায্য করে।
- System Testing: পুরো system ঠিকমতো কাজ করছে কিনা নিশ্চিত করে।
- UAT: user-এর চাহিদা পূরণ হচ্ছে কিনা যাচাই করে।
- সবগুলো ধাপ ধাপে ধাপে কাজ করে এবং সম্পূর্ণ quality assurance নিশ্চিত করে।
- ☆10Software EngineeringTestingVerification and validation are two process areas at CMMI level 3. For both of these areas (a) provide a definition (b) a description of how you can fulfill these areas in your software testing activities.BB, AME, 23 | AME/ANE/AE
(a) Definition
Verification: Verification is the process of evaluating work products such as requirements, design, and code against predefined standards and specifications. It answers the question: “Are we building the product correctly?”
Validation: Validation focuses on evaluating the final product to ensure it meets user needs and expectations. It answers the question: “Are we building the right product?”
(b) Implementation of Verification and Validation in Software Testing
Verification Activities
Requirement Analysis: Functional and non-functional requirements are reviewed to identify testable requirements. A Requirement Traceability Matrix (RTM) is created to ensure each requirement is covered by test cases.
Test Planning and Documentation: A test plan is prepared defining scope, objectives, tools, and schedules to verify alignment with requirements.
Test Case Design and Development: Test cases are designed to verify individual components, including unit testing of modules.
Test Environment Setup: The test environment is configured to simulate real conditions, and smoke testing is performed.
Validation Activities
System Testing: The complete system is tested to validate overall functionality.
User Acceptance Testing (UAT): End users test the system to ensure it meets real-world requirements.
Performance and Usability Testing: Confirms system performance and user experience.
Test Execution and Bug Reporting: Test cases are executed, defects are logged, and fixes are retested.
Test Closure and Reporting: Test results are analyzed and documented, and lessons learned are discussed.
(ক) সংজ্ঞা
Verification: Verification হলো requirements, design ও code-এর মতো work product নির্দিষ্ট standard ও specification অনুযায়ী ঠিক আছে কিনা তা যাচাই করার প্রক্রিয়া। এটি প্রশ্নের উত্তর দেয়: “আমরা কি product ঠিকভাবে তৈরি করছি?”
Validation: Validation হলো চূড়ান্ত product ব্যবহারকারীর চাহিদা ও প্রত্যাশা পূরণ করছে কিনা তা নিশ্চিত করা। এটি প্রশ্নের উত্তর দেয়: “আমরা কি সঠিক product তৈরি করছি?”
(খ) Software Testing-এ Verification এবং Validation বাস্তবায়ন
Verification কার্যক্রম
Requirement Analysis: Functional ও non-functional requirement বিশ্লেষণ করে testable requirement নির্ধারণ করা হয় এবং RTM তৈরি করা হয়।
Test Planning ও Documentation: Scope, objective, tool ও schedule নির্ধারণ করে test plan তৈরি করা হয়।
Test Case Design ও Development: প্রতিটি module যাচাইয়ের জন্য test case ও unit test তৈরি করা হয়।
Test Environment Setup: বাস্তব পরিবেশের মতো test environment তৈরি করে smoke test চালানো হয়।
Validation কার্যক্রম
System Testing: সম্পূর্ণ system যাচাই করা হয়।
User Acceptance Testing (UAT): End-user দ্বারা system যাচাই করা হয়।
Performance ও Usability Testing: System-এর performance ও ব্যবহারযোগ্যতা নিশ্চিত করা হয়।
Test Execution ও Bug Reporting: Test চালিয়ে bug শনাক্ত ও fix যাচাই করা হয়।
Test Closure ও Reporting: Test result বিশ্লেষণ ও documentation করা হয় এবং ভবিষ্যতের উন্নয়নের জন্য আলোচনা করা হয়।

