Software Testing: Black Box, White Box, and More
Criteria for Choosing Black Box Data
Values should include easy, typical, realistic, extreme, and illegal values.
Techniques Using Black Box Testing
- Boundary value analysis
- Equivalence partitioning
White Box Testing of Warrant
- Run at least once all the paths of each module.
- Use decisions at their true and false values.
- Run all loops.
- Use internal data structures.
Flow Graph
Represents the program flow control and is used to more easily trace the paths.
Cyclomatic Complexity
Represents the number of independent
Read MoreSoftware Architecture: Principles, Patterns, and Practices
ANSI/IEEE Standard 471-2000:
Architecture is the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution.
Perry and Wolf: Software Architecture = { Elements, Form, Rationale }
History of Software Architecture
- Agile Manifesto: In February 2001, 17 software developers met at the Snowbird resort in Utah to discuss lightweight development methods.
- Agile is not incompatible with or somehow
Software Development Methods: Testing, Agile, and Plan-Driven Approaches
Testing
Development Testing: The system is tested during development to discover bugs and defects. System designers and programmers are likely to be involved in the testing process.
Release Testing: A separate testing team tests a complete version of the system before it is released to the users. The goal is to check that the system meets the requirements of stakeholders.
User Testing: Users test the system in their own environment. Acceptance testing is one type of user testing where the customer
Read MoreSoftware Architecture and User Interface Design Principles
What is Software Architecture?
Software architecture refers to the fundamental structure of a software system. It comprises software components, the externally visible properties of those components, and the relationships between them.
What Does Software Architecture Enable for the Software Engineer?
- Analyze the effectiveness of the design in meeting the stated requirements.
- Consider architectural alternatives at a stage where making design changes is relatively easy.
- Reduce the risks associated with
Software Configuration Management Plan (SCMP) Essentials
Comprehensive Sheet for SCMP (Software Configuration Management Plan)
The Software Configuration Management Plan (SCMP) is critical to maintaining control over project artifacts, ensuring consistency, traceability, and controlled evolution of the software. Here’s a step-by-step detailed breakdown into all essential sections, with examples and implementation details.
1. Introduction
Purpose:
- Define the goals of configuration management (CM) for the project.
- Establish processes and tools to control changes,
Scrum Framework: Roles, Events, and Project Benefits
Introduction to Scrum
- Self-organization is key
- Collaboration instead of working against each other
- Fewer but clearly defined roles and rules
- Scrum is an empirical approach, a learning approach
- Inspired by practices in Rugby and Japan
Classic Projects vs. Agile Projects
Classic Projects
- A lot of documentation required
- Long time between releases
- No changes expected
- Slight communication and collaboration (handover)
- Bad quality, missing functionality, and dissatisfaction
Agile Projects
- Only needed documentation required
- Development