Install
openclaw skills install qa-skillGenerate comprehensive test cases and quality assurance documentation from SwiftUI iOS code. Use when iOS application code is available and needs testing strategies, test cases, and quality validation. This skill receives input from dev-skill and completes the auto-dev-pipeline by providing testing coverage.
openclaw skills install qa-skillThis skill analyzes SwiftUI iOS application code and generates comprehensive test cases, testing strategies, and quality assurance documentation. It ensures code quality, identifies potential issues, and provides testing coverage for the entire application.
import XCTest
@testable import ProjectName
class TaskViewModelTests: XCTestCase {
var viewModel: TaskViewModel!
var mockDataService: MockDataService!
override func setUp() {
super.setUp()
mockDataService = MockDataService()
viewModel = TaskViewModel(dataService: mockDataService)
}
func testAddTask() {
// Given
let initialCount = viewModel.tasks.count
let newTask = Task(title: "Test Task")
// When
viewModel.addTask(newTask)
// Then
XCTAssertEqual(viewModel.tasks.count, initialCount + 1)
XCTAssertEqual(viewModel.tasks.last?.title, "Test Task")
}
func testDeleteTask() { ... }
func testToggleCompletion() { ... }
func testFilterByCategory() { ... }
}
import XCTest
class ProjectNameUITests: XCTestCase {
var app: XCUIApplication!
override func setUp() {
super.setUp()
app = XCUIApplication()
app.launch()
}
func testTaskCreationFlow() {
// Given: App is launched
XCTAssertTrue(app.navigationBars["Tasks"].exists)
// When: Tap add button
app.buttons["Add"].tap()
// Then: Add task screen appears
XCTAssertTrue(app.textFields["Task Title"].exists)
// When: Enter task details and save
app.textFields["Task Title"].tap()
app.textFields["Task Title"].typeText("Test UI Task")
app.buttons["Save"].tap()
// Then: Task appears in list
XCTAssertTrue(app.staticTexts["Test UI Task"].exists)
}
func testTaskCompletion() { ... }
func testCategoryFiltering() { ... }
func testReminderSettings() { ... }
}
class DataServiceIntegrationTests: XCTestCase {
func testDataPersistence() {
// Given: Fresh data service
let dataService = DataService()
// When: Save data
let task = Task(title: "Integration Test")
dataService.saveTask(task)
// Then: Data should be retrievable
let retrieved = dataService.loadTasks()
XCTAssertEqual(retrieved.count, 1)
XCTAssertEqual(retrieved.first?.title, "Integration Test")
}
}
# Test Plan: [App Name]
## 1. Testing Scope
- Features to be tested
- Features out of scope
- Testing environments
## 2. Test Strategy
- Testing types and approaches
- Test data requirements
- Entry/exit criteria
## 3. Test Cases
### 3.1 Functional Tests
- [TC-001] Task Creation
- Preconditions: App launched, no tasks
- Steps: Tap + → Enter title → Tap Save
- Expected: Task appears in list
- Priority: P0
### 3.2 Non-Functional Tests
- [TC-101] Performance: App launch < 2 seconds
- [TC-102] Memory: < 100MB peak usage
- [TC-103] Accessibility: VoiceOver compatible
# Test Report: [App Name] v1.0
## Executive Summary
- Total test cases: XX
- Passed: XX
- Failed: XX
- Blocked: XX
- Test coverage: XX%
## Detailed Results
### Functional Testing
- Feature A: 10/10 passed
- Feature B: 8/10 passed (2 failed)
- Feature C: 5/5 passed
### Issues Found
1. **High Priority**: Crash when deleting last task
2. **Medium Priority**: UI misalignment on iPhone SE
3. **Low Priority**: Typo in settings screen
## Recommendations
- Fix high priority issues before release
- Address medium priority in next sprint
- Document low priority for future
Code Input: SwiftUI todo app with categories and reminders
Generated Test Coverage:
TaskViewModelTests: Add/delete/toggle tasksCategoryViewModelTests: Filter by categoryReminderServiceTests: Schedule/cancel remindersDataServiceTests: CRUD operationstestTaskCreationFlow: Complete user journeytestCategoryManagement: Add/edit/delete categoriestestReminderSetup: Configure and test reminderstestSharingFunctionality: Share tasks via share sheettestDataPersistence: Verify data survives app restarttestNotificationIntegration: Test reminder deliverytestICloudSync: Verify cross-device synchronizationAfter generating test cases, this skill automatically:
qa-output/ directorydev-skill